Справка Инфо-Бухгалтер 10

Генерация событий

Генерация событий может встречаться в любом месте исходных текстов алгоритмов прикладного блока. Например, при добавлении операции в журнал можно генерировать событие передачи этой операции другому блоку. Никакой фильтрации, диспетчеризации и обработки событий на этапе их генерации не происходит. Это позволяет избежать логических конфликтов обработки событий. Даже если событие не будет обработано - это будет являться проблемой взаимодействия прикладных блоков, но на логике работы самого прикладного блока, пославшего событие, не отразится.

Создание события обеспечивается наличием типа СОБЫТИЕ во внутреннем языке (в подключаемом модуле RVMC). При создании события указывается имя события, имя семейства, к которому принадлежит это событие, имя блока, посылающего событие, а также набор параметров. Идентификаторы, задающие имя событие, имя семейства и имя блока, используются в файлах описания событий (*.evd). Семейство можно использовать для обработки событий по умолчанию и фильтрации: например, в файле описания можно указать обработчик для целого семейства или для отдельных событий. В качестве параметров можно передавать любые значения. При этом любые передаваемые параметры могут рассматриваться и как входные, и как выходные: обработчик события может изменять параметры, и событие будет получено другими обработчиками уже с измененным набором параметров. При достаточно большом объеме параметров особенно важно отслеживать путь передачи события. Например, если передаваемые блоку параметры не требуется получать обратно, индексную переменную, хранящую параметры, рекомендуется очистить. Генерация события обеспечивается наличием функций СОБЫТИЕ_ДЛЯ_ВСЕХ и СОБЫТИЕ_ДЛЯ_БЛОКА. Первая функция передает событие всем блокам, зарегистрированным в файлах описаний, вторая - только указанным блокам. Функции не возвращают значений, соответственно, обработка ошибок и контроль за правильностью выполнения алгоритма возлагается на разработчиков. К примеру, можно передавать параметр, изменение значения которого будет указывать на то, что событие обработалось соответствующим образом.


См. также: