Хранилище конфигурации
...
Если объекты таких подсистем не находятся на поддержке и не планируется их обновление, префикс должен быть PRO_
Добавление собственных реквизитов и табличных частей в стандартные объекты
Если реквизит или табличная часть добавляется в стандартный объект конфигурации, то он должен иметь префикс PRO_
Если реквизит или табличная часть добавляется в собственный объект конфигурации, специальных префиксов у него быть не должно
Как создать новый объект конфигурации
...
Захватить корень хранилища и подсистемы, в которых будет размещен объект
Создать все объекты, которые необходимы для решения задачи, в том числе подсистемы. Включить все объекты в необходимые подсистемы
Создать роли на доступ к объектам, включить новые роли в те же подсистемы, в которые включен новый объект
Если новый объект - Константа, разместить ее на общей форме PRO_Настройки, расположив в группе по смыслу значения
Проверить, что конфигурация собирается без ошибок (особенно при создании регистров). Это необходимо делать до создания модулей всех реквизитов объектов (кроме обязательных)
Поместить в хранилище все созданные объекты, оставив захваченными
Отпустить корень хранилища
Как заменить реквизит или объект на новый
Бывают ситуации, когда необходимо перенести реквизит из расширения в основную конфигурацию, или заменить один реквизит другим (был текстовый реквизит, стал перечислением, ссылкой и т.п.). Общий алгоритм следующий:
Переименовать старый реквизит - добавить в начало префикс Удалить_
При переименовании уесть изменение кода модулей
Добавить новый реквизит с новым типом
Изменить код модулей таким образом, чтобы он работал с новым реквизитом
Написать обработку заполнения данных из старого реквизита в новый
После обновления выполнить обработку
Комментарий в тексте модуля
...
НЕ писать комментарий перед процедурой/функцией, если необходимо добавить комментарий, то написать его внутри процедуры
Правильно
Блок кода |
---|
&НаКлиенте Процедура PRO_РасчетЦен(Команда) //Добавлена команда расчета цен, 01.01.2020 Если Объект.Проведен=Истина Тогда PRO_ОбщегоНазначенияСервер.СформироватьОсновнойЗапросЦенообразования(Объект.Ссылка); Иначе Сообщить("Необходимо провести документ"); КонецЕсли; КонецПроцедуры |
Неправильно
Блок кода |
---|
//++PRO, добавлена команда расчета цен, 01.01.2020 &НаКлиенте Процедура PRO_РасчетЦен(Команда) Если Объект.Проведен=Истина Тогда PRO_ОбщегоНазначенияСервер.СформироватьОсновнойЗапросЦенообразования(Объект.Ссылка); Иначе Сообщить("Необходимо провести документ"); КонецЕсли; КонецПроцедуры //--PRO |
...
Примечание |
---|
Нельзя делать просто Отказ = Истина, необходимо ОБЯЗАТЕЛЬНО сообщить пользователю, что не так |
Правильно
Блок кода |
---|
&НаСервере Процедура ПередЗаписью(Отказ) Если ПорядокРасчетов <> Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов Тогда ОбщегоНазначения.СообщитьПользователю( "У договора может быть только порядок расчетов ""По договорам"", укажите это свойство на странице ""Расчеты и оформление"" в поле ""Детализация расчетов""", Ссылка,,, Отказ); КонецЕсли; КонецПроцедуры |
Неправильно
Блок кода |
---|
&НаСервере Процедура ПередЗаписью(Отказ) Если ПорядокРасчетов <> Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры //--PRO |
...