====== API логических модулей ====== Обработки логических модулей размещаются в каталоге ExtFiles\LogicalModules.\\ В основной форме обработки необходимо реализовать определенный API.\\ Реквизиты и методы API логических модулей делится на обязательные и функциональные. ===== Обязательные реквизиты и методы API ===== Основная форма обработки экспортирует следующие реквизиты и методы.\\ Реквизиты: _Источник - произвольный тип, при выполнении обработчика устанавливается объект-источник вызова. _Отказ - булево, используется для отказа дальнейшего выполнения кода в источнике. _РезультатВызова - произвольный тип, используется для получения результата в постобработчике после выполнения функции источника. Методы: Функция ИнициализироватьМодуль(ПоЗависимости = Ложь) экспорт ... КонецФункции Процедура ДеИнициализироватьМодуль() Экспорт ... КонецПроцедуры ==== Функция ИнициализироватьМодуль ==== Функция является обязательной к экспорту. Вызывается при инициализации внешнего логического модуля.\\ Параметры:\\ * ПоЗависимости -- Тип -- Булево. По умолчанию данный параметр не передается в метод. Необходим для определения, вызвался ли данный метод напрямую или по зависимости из стороннего логического модуля.\\ В данной функции выполняется подписка на определенные обработчики в конфигурации или в защищенной компоненте.\\ Чтобы подписать модуль логики на обработку определенного события нужно выполнить код: МенеджерОбъектов.ПолучитьОбщийОбъект("LogicalModules").НазначитьОбработчик(ИмяСобытия, ЭтаФорма, Неопределено); ИмяСобытия - строка, определяющая конкретный обработчик, например "Авторизация.ВнешнееСобытие.ПредОбработка". ==== Процедура ДеИнициализироватьМодуль ==== Процедура является обязательной к экспорту. Вызывается при деинициализации внешнего логического модуля.\\ В данной процедуре выполняется код при завершении работы модуля.\\ Обязательно выполнить отключение подключенных обработчиков: МенеджерОбъектов.ПолучитьОбщийОбъект("LogicalModules").СнятьОбработчик(ИмяСобытия, ЭтаФорма); ===== Функциональные методы API ===== Функциональные методы API содержат методы, которые позволяют расширить функционал программного обеспечения.\\ Данные методы делятся на 2 типа: предобработчик (выполняется в начале функции, позволяют полностью переопределить оригинальную функцию) и постобработчик (выполняется в конце функции, позволяет переопределить результат оригинальной функции).\\ Для работы данных методов необходимо:\\ 1. подписать модуль логики на определенный пред-постобработчик (см. ИнициализироватьМодуль).\\ 2. разместить в модуле, на который был подписан обработчик, экспортную функцию или процедуру, которая вызывается из оригинальной конфигурации или из защищенной компоненты.\\ Например, Процедура Авторизация_ВнешнееСобытие_ПредОбработка(Источник, Событие, Данные) Экспорт __Отказ = Ложь; ... _Отказ = __Отказ; КонецПроцедуры