Skip to main content

Программная доработка форм

Все доработки типовых форм осуществляются программным способом. Для этого в БПР есть общий модуль рздУправлениеФормой и подсистема МодификацияКонфигурации, которая состоит из следующих модулей:

  • рздМодификацияКонфигурацииСервер

  • рздМодификацияКонфигурацииКлиент

  • рздМодификацияКонфигурацииКлиентСерверПовтИсп

Если в конфигурации есть общий модуль СобытияФорм или МодификацияКонфигурацииПереопределяемый тогда в нужном событие указывается переадресация на модуль БПР, если данных модулей нет, то переадресация указывается в самой форме:

рздМодификацияКонфигурацииСервер.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);

Регистрация события осуществляется в модуле рздМодификацияКонфигурацииКлиентСерверПовтИсп в методе :

ДобавитьОбработчикСобытия(События,
"ПриЧтенииНаСервере",
"Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента",
"рздМодификацияКонфигурацииСервер.РеализацияТоваровУслуг_ФормаДокумента_ПриЧтениинаСервере");

Имя метода задается по шаблону: ИмяОбъекта_ИмяФормы_ИмяСобытия.

В методе должна быть проверка, что форма программно уже была обработана. Далее метод должен быть переадресован на общий модуль для текущего объекта (рздСотрудникиСервер) и данный метод имел определенный шаблон.

Также хорошей практикой является разделение на отдельные методы по созданию, заполнению реквизитов и созданию элементов формы.

Процедура РеализацияТоваровУслуг_ФормаДокумента_ПриЧтениинаСервере(Форма, ТекущийОбъект) Экспорт

Если рздУправлениеФормой.ФормаПодготовлена(Форма) Тогда
Возврат;
КонецЕсли;

рздРеализацияТоваровУслуг.ФормаДокумента_ПриЧтениинаСервере(Форма, ТекущийОбъект);

КонецПроцедуры

Пример модуля (копировать его 1 в 1 не нужно, нужно добавить методы которые нужны на текущий момент):

#Область ПрограммныйИнтерфейс

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс

#Область СобытияОбъекта

Процедура ПередЗаписью(Объект, Отказ) Экспорт

КонецПроцедуры

Процедура ПриЗаписи(Объект, Отказ) Экспорт

КонецПроцедуры

#КонецОбласти

#Область СобытияФормы

Процедура ФормаДокумента_ПриЧтениинаСервере(Форма, ТекущийОбъект) Экспорт

ФормаДокумента_СоздатьРеквизиты(Форма);
ФормаДокумента_ЗаполнитьРеквизиты(Форма);
ФормаДокумента_СоздатьЭлементыФормы(Форма);

КонецПроцедуры

#КонецОбласти

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#КонецОбласти