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