ООО "Рассвет". Преимущество первых
Изменение конфигураций 1С (регламент)
Хранилище конфигурации
Все конфигурации должны быть подключены к хранилищам конфигураций
Расширения допускается не подключать к хранилищам
Разработчики
Каждый разработчик должен работать под своим именем. Для этого он должен получить у Администратора хранилища логин/пароль и право захвата объектов в конфигурации
Обновление рабочей конфигурации происходит под универсальным пользователем. Под этим пользователем не допускается внесение изменений в конфигурацию
Базы для разработчиков
Каждому разработчику необходимо иметь собственную копию базы с конфигурацией, которую ему необходимо изменять
Для получения копии необходимо обратиться к Администратору баз данных
После получения копии ее необходимо отключить от хранилища и подключить с логином/паролем, полученным Администратором хранилища
После этого можно захватывать объекты
Захват объектов в хранилище
Разработчик должен захватывать только те объекты, которые ему необходимо изменять
Нельзя надолго захватывать корень хранилища, т.к. другие разработчики не смогут в это время добавлять новые объекты
Создание новых объектов конфигурации
Новый объект конфигурации должен иметь префикс PRO_ (независимо от разработчика, подрядчика)
Подсистема
Новый объект конфигурации должен быть размещен в подсистеме PRO_…
Если требуется добавить объект в штатную подсистему, то необходимо сначала создать в этой подсистеме подсистему PRO_…
Исключения
Исключениями являются объекты, входящие в обновляемые подсистемы сторонних разработчиков, таких как: Diadoc. PAPI, ПИТ и т.п.
Если объекты таких подсистем не находятся на поддержке и не планируется их обновление, префикс должен быть PRO_
Добавление собственных реквизитов и табличных частей в стандартные объекты
Если реквизит или табличная часть добавляется в стандартный объект конфигурации, то он должен иметь префикс PRO_
Если реквизит или табличная часть добавляется в собственный объект конфигурации, специальных префиксов у него быть не должно
Как создать новый объект конфигурации
Т.к. захват корня хранилища может быть произведен только одним разработчиком в один момент времени, важно, чтобы эта процедура занимала минимальное время.
Недопустимо надолго захватывать корень хранилища
Захватить корень хранилища и подсистемы, в которых будет размещен объект
Создать все объекты, которые необходимы для решения задачи, в том числе подсистемы. Включить все объекты в необходимые подсистемы
Создать роли на доступ к объектам, включить новые роли в те же подсистемы, в которые включен новый объект
Если новый объект - Константа, разместить ее на общей форме PRO_Настройки, расположив в группе по смыслу значения
Проверить, что конфигурация собирается без ошибок (особенно при создании регистров). Это необходимо делать до создания модулей всех реквизитов объектов (кроме обязательных)
Поместить в хранилище все созданные объекты, оставив захваченными
Отпустить корень хранилища
Как заменить реквизит или объект на новый
Бывают ситуации, когда необходимо перенести реквизит из расширения в основную конфигурацию, или заменить один реквизит другим (был текстовый реквизит, стал перечислением, ссылкой и т.п.). Общий алгоритм следующий:
Переименовать старый реквизит - добавить в начало префикс Удалить_
При переименовании учесть изменение кода модулей
Добавить новый реквизит с новым типом
Изменить код модулей таким образом, чтобы он работал с новым реквизитом
Написать обработку заполнения данных из старого реквизита в новый
Передать обработку Главному разработчику для выполнения после обновления рабочей конфигурации
Расширения
Расширения могут быть использованы в двух случаях:
Поставщик конфигурации реализовал исправление ошибки
Для внесения срочного изменения конфигурации
В дальнейшем функционал расширения должен пройти рефакторинг и внесение в основную конфигурацию
Дополнительные обработки и отчеты
Дополнительные отчеты и обработки (далее просто Обработки) допускается использовать для очень редко выполняемых задач.
Текст внешней обработки не может быть автоматически протестирован при изменении / обновлении конфигурации, поэтому нет никаких гарантий работоспособности обработок на длительном периоде.
Все отчеты и обработки, запускаемые хотя бы раз в квартал, должны быть перенесены в основную конфигурацию.
Примером обработки, которая не будет перенесена в основную конфигурацию является обработка Диадок. Она поддерживается компанией-разработчиком, не изменяет структуру базы данных.
При разработке отчета и обработки
В процессе разработки обработки необходимо создать объект в конфигурации, после чего его можно выгрузить во внешнюю обработку/отчет для доработки, оставив объект конфигурации в захваченном виде.
При завершении разработки объект в конфигурации заменить на внешнюю обработку/отчет и поместить в хранилище
Комментарий в тексте модуля
Комментарии должны содержать специальные символы для идентификации кода при обновлении.
Комментарии должны быть достаточно понятными, чтобы пояснять работу модуля или комментируемого оператора.
Тексты комментариев должны составляться по правилам русского языка, в деловом стиле, быть эмоционально сдержанными и не содержать слов, не относящихся к функциональности программы.
//++PRO, Создает прокси на основе определения веб-сервиса и связывает
// его с точкой подключения веб-сервиса.
...
Код программы
...
//--PRO
Программирование
Стандартные объекты не изменяем
Если необходимо изменить стандартный объект
Изменить модуль стандартного объекта
Все изменения должны находится в блоке, у которого написан комментарий
//++PRO Дата и фамилия изменившего, краткое описание что изменено и зачем
//Например, добавлено автоматическое заполнение Направления деятельности из договора,
//чтобы не было проблем при взаиморасчетах
Код...
//--PRO
Изменить форму стандартного объекта
Все изменения вносятся программно в модуле объекта. В процедуре ПриСозданииНаСервере вызывается функция модуля PRO__СобытияФорм
в модуле объекта формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
...
//++PRO
PRO__СобытияФорм.ПриСозданииНаСервере(ЭтаФорма);
//--PRO
...
КонецПроцедуры
в общем модуле:
Процедура ПриСозданииНаСервере(ЭтаФорма) Экспорт
ИмяФормы = ЭтаФорма.ИмяФормы;
Если ИмяФормы = "Справочник.Контрагенты.Форма.ФормаЭлемента" Тогда
ПриСозданииНаСервереКорреспонденты(ЭтаФорма);
ИначеЕсли ИмяФормы = ... Тогда
...
КонецЕсли;
КонецПроцедуры
Процедура ПриСозданииНаСервереКорреспонденты(ЭтаФорма)
НовыйЭлемент = ЭтаФорма.Элементы.Добавить("PRO_Поклажедатель", Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппаСтраницы);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
НовыйЭлемент.ПутьКДанным = "Объект.PRO_Поклажедатель";
КонецПроцедуры
Добавить процедуру/функцию в стандартный модуль объекта
Все процедуры/функции должны начинаться с префикса PRO_…, например PRO_РасчетЗадолженностиНаДату(ДатаЗадолженности)
НЕ писать комментарий перед процедурой/функцией, если необходимо добавить комментарий, то написать его внутри процедуры
Правильно
Неправильно
Добавление нескольких процедур и функций
Если в штатный модуль добавлено более 2-х собственных процедур/функций, то их необходимо объединить в область и все новые процедуры/функции располагать в этой области
Проверка свойств перед записью с последующим отказом
При отказе записи объекта ОБЯЗАТЕЛЬНО формировать сообщение пользователю о причине отказа
Правильно
Неправильно
Связанные статьи
© Rassvet ltd, 2024, phone: 8 800 777-62-36, www.rassvet.ooo, www.mobile-1c.ru