21 KiB
sidebar_position, sidebar_label, title
| sidebar_position | sidebar_label | title |
|---|---|---|
| 3 | Подписки на события | Подписки на события |
Для доработки объектов через подписки на события в БПР есть подсистема ПодпискиНаСобытия. Состав подсистемы:
Общие модули:
-
рздПодпискиНаСобытияДокументы
-
рздПодпискиНаСобытияСправочники
-
рздПодпискиНаСобытияПовтИсп
Подписки на события:
-
рздДокументыОбработкаЗаполнения
-
рздДокументыОбработкаПроведения
-
рздДокументыПередЗаписью
-
рздДокументыПриЗаписи
-
рздДокументыПриКопировании
-
рздСправочникиОбработкаЗаполнения
-
рздСправочникиПередЗаписью
-
рздСправочникиПриЗаписи
-
рздСправочникиПриКопировании
Подсистема позволяет не добавлять лишний раз метаданные подписки на события.
Реализация подписки на примере задачи “Реализовать собственные проверки в событие перед записью справочника сотрудника”:
- В модуле рздПодпискиНаСобытияПовтИсп в методе СправочникиПередЗаписью добавить соответствие:
Соответствие.Вставить(Тип("СправочникОбъект.Сотрудники"),"рздПодпискиНаСобытияСправочники.СотрудникиПередЗаписью");
- В модуле рздПодпискиНаСобытияСправочники в области ПередЗаписью реализовать экспортный метод СотрудникиПередЗаписью.
ВАЖНО, чтобы в реализованном методе была переадресация на общий модуль для текущего объекта (рздСотрудникиСервер) и данный метод имел шаблон, как в модулях Локализация.
Пример шаблона модуля (копировать его 1 в 1 не нужно, нужно добавить методы, которые нужны на текущий момент):
Шаблон модуля
``` #Область ПрограммныйИнтерфейс#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
#Область СобытияОбъекта
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый документ. // Отказ - Булево - Признак проведения документа. // Если в теле процедуры-обработчика установить данному параметру значение Истина, // то проведение документа выполнено не будет. // РежимПроведения - РежимПроведенияДокумента - В данный параметр передается текущий режим проведения. // Процедура ОбработкаПроведения(Объект, Отказ, РежимПроведения) Экспорт
Движения = Объект.Движения;
ДополнительныеСвойства = Объект.ДополнительныеСвойства;
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Если в теле процедуры-обработчика установить данному параметру значение Истина, // то будет выполнен отказ от продолжения работы после выполнения проверки заполнения. // ПроверяемыеРеквизиты - Массив - Массив путей к реквизитам, для которых будет выполнена проверка заполнения. // Процедура ОбработкаПроверкиЗаполнения(Объект, Отказ, ПроверяемыеРеквизиты) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект. // ДанныеЗаполнения - Произвольный - Значение, которое используется как основание для заполнения. // СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения стандартной (системной) обработки события. // Процедура ОбработкаЗаполнения(Объект, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Признак отказа от записи. // Если в теле процедуры-обработчика установить данному параметру значение Истина, // то запись выполнена не будет и будет вызвано исключение. // Процедура ОбработкаУдаленияПроведения(Объект, Отказ) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Признак отказа от записи. // Если в теле процедуры-обработчика установить данному параметру значение Истина, // то запись выполнена не будет и будет вызвано исключение. // РежимЗаписи - РежимЗаписиДокумента - В параметр передается текущий режим записи документа. Позволяет определить в теле процедуры режим записи. // РежимПроведения - РежимПроведенияДокумента - В данный параметр передается текущий режим проведения. // Процедура ПередЗаписью(Объект, Отказ, РежимЗаписи, РежимПроведения) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Признак отказа от записи. // Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись выполнена не будет и будет вызвано исключение. // Процедура ПриЗаписи(Объект, Отказ) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // ОбъектКопирования - ДокументОбъект - Исходный документ, который является источником копирования. // Процедура ПриКопировании(Объект, ОбъектКопирования) Экспорт
КонецПроцедуры
#КонецОбласти
#Область СобытияФормы
Процедура ФормаДокумента_ПриЧтениинаСервере(Форма, ТекущийОбъект) Экспорт
ФормаДокумента_СоздатьРеквизиты(Форма);
ФормаДокумента_ЗаполнитьРеквизиты(Форма);
ФормаДокумента_СоздатьЭлементыФормы(Форма);
КонецПроцедуры
#КонецОбласти
#Область Проведение
// Описывает учетные механизмы используемые в документе для регистрации в механизме проведения. // // Параметры: // МеханизмыДокумента - Массив - список имен учетных механизмов, для которых будет выполнена // регистрация в механизме проведения. // Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытий
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый документ. // Отказ - Булево - Признак проведения документа. // Если в теле процедуры-обработчика установить данному параметру значение Истина, // то проведение документа выполнено не будет. // РежимПроведения - РежимПроведенияДокумента - В данный параметр передается текущий режим проведения. // Процедура ОбработкаПроведения(Объект, Отказ, РежимПроведения) Экспорт
Движения = Объект.Движения;
ДополнительныеСвойства = Объект.ДополнительныеСвойства;
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Если в теле процедуры-обработчика установить данному параметру значение Истина, // то будет выполнен отказ от продолжения работы после выполнения проверки заполнения. // ПроверяемыеРеквизиты - Массив - Массив путей к реквизитам, для которых будет выполнена проверка заполнения. // Процедура ОбработкаПроверкиЗаполнения(Объект, Отказ, ПроверяемыеРеквизиты) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект. // ДанныеЗаполнения - Произвольный - Значение, которое используется как основание для заполнения. // СтандартнаяОбработка - Булево - В данный параметр передается признак выполнения стандартной (системной) обработки события. // Процедура ОбработкаЗаполнения(Объект, ДанныеЗаполнения, СтандартнаяОбработка) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Признак отказа от записи. // Если в теле процедуры-обработчика установить данному параметру значение Истина, // то запись выполнена не будет и будет вызвано исключение. // Процедура ОбработкаУдаленияПроведения(Объект, Отказ) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Признак отказа от записи. // Если в теле процедуры-обработчика установить данному параметру значение Истина, // то запись выполнена не будет и будет вызвано исключение. // РежимЗаписи - РежимЗаписиДокумента - В параметр передается текущий режим записи документа. Позволяет определить в теле процедуры режим записи. // РежимПроведения - РежимПроведенияДокумента - В данный параметр передается текущий режим проведения. // Процедура ПередЗаписью(Объект, Отказ, РежимЗаписи, РежимПроведения) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // Отказ - Булево - Признак отказа от записи. // Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись выполнена не будет и будет вызвано исключение. // Процедура ПриЗаписи(Объект, Отказ) Экспорт
КонецПроцедуры
// Вызывается из соответствующего обработчика документа // // Параметры: // Объект - ДокументОбъект - Обрабатываемый объект // ОбъектКопирования - ДокументОбъект - Исходный документ, который является источником копирования. // Процедура ПриКопировании(Объект, ОбъектКопирования) Экспорт
КонецПроцедуры
#КонецОбласти
#Область ПодключаемыеКоманды
// Определяет список команд создания на основании. // // Параметры: // КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании // Параметры - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.Параметры // Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
КонецПроцедуры
// Добавляет команду создания документа "Авансовый отчет". // // Параметры: // КомандыСозданияНаОсновании - см. СозданиеНаОснованииПереопределяемый.ПередДобавлениемКомандСозданияНаОсновании.КомандыСозданияНаОсновании // Процедура ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
КонецПроцедуры
// Определяет список команд отчетов. // // Параметры: // КомандыОтчетов - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов // Параметры - См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры // Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КонецПроцедуры
// Заполняет список команд печати. // // Параметры: // КомандыПечати - см. УправлениеПечатью.СоздатьКоллекциюКомандПечати // Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
#КонецОбласти
#Область Печать
// Формирует печатные формы. // // Параметры: // МассивОбъектов - Массив - ссылки на объекты, которые нужно распечатать; // ПараметрыПечати - Структура - дополнительные настройки печати; // КоллекцияПечатныхФорм - ТаблицаЗначений - сформированные табличные документы (выходной параметр) // ОбъектыПечати - СписокЗначений - значение - ссылка на объект; // представление - имя области в которой был выведен объект (выходной параметр); // ПараметрыВывода - Структура - дополнительные параметры сформированных табличных документов (выходной параметр). // Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Проведение
// Процедура дополняет тексты запросов проведения документа. // // Параметры: // Запрос - Запрос - Общий запрос проведения документа. // ТекстыЗапроса - СписокЗначений - Список текстов запроса проведения. // Регистры - Строка, Структура - Список регистров проведения документа через запятую или в ключах структуры. // Процедура ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры)
КонецПроцедуры
#КонецОбласти
#Область Печать
#КонецОбласти
#КонецОбласти
</details>