Подписки на событие в 1С

При работе с информационной базой 1С нередко возникает необходимость привязать новый алгоритм к событию, связанному с изменением объекта. В 7 версии программы для запуска обработчика приходилось переписывать исходный код программы, что приводило к проблемам при обновлении конфигурации.

Проанализировав отзывы пользователей, разработчики в восьмерке реализовали новый объект, получивший название «Подписка на событие». В этой статье мы постараемся раскрыть :

  • Настройку подписок;
  • Создание;
  • Особенности функционирования.

Создание новой подписки

Как и любой другой объект метаданных, подписка на событие в 1С добавляется из конфигуратора.

Находится эти элементы в ветке дерева «Общие» (Рис.1).  

Рис.1

Для добавления нового обработчика необходимо:

  1. Активировав левой кнопкой мыши строку «Подписки на события», нажать Insert, либо, кликнув там же правой кнопкой, добавить новый объект;
  2. В появившемся окне (Рис.2) необходимо задать Имя, которое бы максимально точно отражало назначение обработки; ис.2
  3. На этом этапе необходимо выбрать источник, то есть то место, возникновение действия в котором будет служить толчком к началу обработки (следует учитывать, что если установить в этом поле составной тип данных, то в поле «Событие» будут отображаться только события, общие для всех объектов);
  4. В зависимости от выбора источника будет составлен выпадающий список поля «Событие» (понятно, что для элемента справочника не может быть процедуры ПриПроведении, а для менеджера перечислений обработчика ПриЗаписи);
  5. Последним полем для заполнения является поле «Обработчик», где необходимо указать процедуру или функцию в общем модуле, которая будет содержать код, описывающий заданный алгоритм (при этом общий модуль (Рис.3) должен иметь признак «Серверный» ).

Рис.3

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

Особенности функционирования подписок

Одним из главных вопросов, возникающих у пользователей начинающих работать с объектом «Подписка на события», является вопрос о порядке вызова процедур. Зачастую именно здесь кроются ошибки, связанные с тем, что процедура не срабатывает или срабатывает через раз.

На примере процедуры ПриЗаписи()  для любого документа можно увидеть порядок вызова обработчиков.

Так, если в модуле объекта документ, существует эта процедура и параллельно с ней существует обработка, вызываемая из подписки и обрабатывающая то же самое событие, в первую очередь будет отработан модуль документа. Если в ходе выполнения ПриЗаписи() в модуле документа, параметр Отказ по каким-либо причинам примет значение Истина, подписка гарантировано не сработает.

В случае, когда существует несколько объектов-подписок, одинаковых для одного источника и одного события, отследить порядок выполнения очень сложно. И, если в ходе выполнения, хотя бы одного обработчика, будет вызвана исключительная ситуация, часть процедур останется не выполненной.

Таким образом, последовательность обработок можно задать следующей схемой:

  1. Обрабатываются события модуля объекта;
  2. Обрабатываются подписки, связанные непосредственно с текущим типом данных;
  3. Отрабатывается код, привязанный к общему типу.

Очень важно запомнить, что ни в коем случае в процедуры, исполняемые при записи, при проведении нельзя вставлять код, меняющий данные объекта-источника, это может привести к ненужному зацикливанию. Лучше подобный код использовать в процедурах ПередЗаписью.

Обработчик события открытия формы

Возрастающая популярность управляемых форм, используемых в 8 версии программы, а так же проблемы связанные с обновлением этих объектов с сохранением собственных изменений, привели к тому, что, начиная с платформы 8.2.15, в программе появилось событие ОбработкаПолученияФормы. Именно сюда можно вставлять код, изменяющий и заменяющий типовые формы.

Некоторые особенности данного обработчика:

  • Событие не сработает в случае, если в конфигурации открываемая типовая форма прописана строго;
  • Событие может быть реализовано только для управляемых форм;
  • Общий модуль, содержащий этот обработчик должен не только иметь признак «Сервер», но и содержать установленный флажок в поле «Вызов сервера».

Важно учитывать, что эта подписка вызывается не для конкретного объекта, а для его менеджера, то есть поле источник должно содержать это слово (Рис.4)

Рис.4

Подводя итог вышесказанному, хочется сказать, что «Подписка на событие» крайне полезный и нужный для разработчика инструмент, позволяющий без серьезных вмешательств в конфигурацию реализовывать собственные цели и задачи.


Добавить комментарий

Ваш e-mail не будет опубликован.

*

code


Маркировка лекарств: вышла редакция 2.1 «1С:Медицина. Больничная аптека»
Фирма «1С» выпустила новую редакцию программного продукта «1С: Медицина. Больничная аптека» с поддержкой системы маркировки лекарств ...
За стеклом: «Ашан» внедряет ПО для учета посещаемости сотрудников
Торговая сеть «Ашан Ритейл Россия» начала использовать интеллектуальную систему учета времени работы своих сотрудников. Программное обеспечение было разработано специалистами ИТ-компании ...
Онлайн-кассы: продажа через торговые автоматы и комментарии экспертов из ФНС
Сегодня расскажем об изменениях в законодательстве, касающихся продаж через торговые автоматы; внесенных в реестр новых моделях фискальных накопителей, а также ...
Инвестиции в блокчейн: Wall Street Journal как бы намекает
Американское деловое издание The Wall Street Journal опубликовало список из 25 перспективных ИТ-проектов, в которые стоит вложить деньги в этом ...
Гудбай Ebay? Таможня хочет обложить пошлиной все иностранные покупки
Федеральная таможенная служба задумалась о том, чтобы поддержать отечественных онлайн-ритейлеров. Наилучшей идеей для этого ведомство посчитало введение пошлины за любой ...
Создаем сайт ресторана на OneScript
В статье изучаются возможности http-сервисов OneScript по созданию web-приложений на примере сайта ресторана ...
Управление состоянием формы через конечный автомат
Взаимодействие пользователя с интерфейсом приводит к изменению состояния формы и её элементов. Элементы отражают текущее состояние формы через свойства: видимости, ...
Разъяснение порядка заполнения 6-НДФЛ.
Разъяснение порядка заполнения 6-НДФЛ. Письмо ФНС от 8 июня 2018 г. № БС-4-11/11115@ ...
Проект. Планируется бессрочно установить тариф взносов на ОПС.
Планируется бессрочно установить тариф взносов на обязательное пенсионное страхование. Проект ФЗ № 489169-7 ...
Проект. Планируется утвердить новые коэффициенты к размерам платы за НВОС.
Планируется утвердить новые коэффициенты к размерам платы за НВОС. Проект Постановления Правительства РФ "О внесении изменений в Постановление Правительства Российской ...
Свершилось: обмен с ФГИС «Меркурий» встроили в типовые конфигурации 1С
В связи с введением 1 июля 2018 года обязательной электронной сертификации продукции животного происхождения, разработчики фирмы «1С» реализовали в основных ...
«Эльбрус» не за горами: создан сервер, поддерживающий российские процессоры
Отечественные процессоры все еще остаются скорее теоретической разработкой, чем практичным инструментом для повсеместного использования. Но «Ростех» намерен изменить такое положение ...
Непрофстандартные: ИТ-специалист и сегодня – больше призвание, чем профессия
На XIII Международном конгрессе ИТ-директоров «Белые ночи» одной и центральных тем стала кадровая политика в сфере ИТ. Аналитик Инфостарта побеседовал ...
«Лабораторию Касперского» хотят выгнать из Европы, но в компании не унывают
«Лаборатория Касперского» может потерять европейский рынок из-за отказа главы компании Евгения Касперского сотрудничать с Европолом. Однако в компании не отчаиваются ...
Для создателей будущего: новые разработки от Intel представлены на Computex 2018
Концептуальный ноутбук, линейка игровых устройств, 28-ядерный процессор, твердотельный накопитель и многое другое от Intel было представлено на Тайбэйской международной выставке ...