Skip to main content

Подписки на события

Механизм обработки событий объектов метаданных без изменения исходного кода. Работают строго ПОСЛЕ основного обработчика и только для событий объектов метаданных.

Ключевые моменты

ОписаниеВажно
Объект метаданныхПодпискиНаСобытияЦентрализованное хранилище
НеинтрузивностьБез изменения кода объектовРабота с типовыми конфигурациями
Момент выполненияПосле основного обработчика событияВажный нюанс архитектуры
Только объектные событияНе для событий формТолько события объектов метаданных

Практическое применение

Типовые сценарии:

  1. Дополнительная проверка — валидация после основной логики
  2. Логирование/аудит — запись действий в журнал
  3. Интеграция — вызов внешних систем
  4. Расширение функционала — добавление бизнес-правил

Ответы на ключевые вопросы

1. В какой момент отрабатывают подписки на события?

После отработки основного обработчика события объекта.

Последовательность выполнения:
1. Событие возникает (например, ПередЗаписью)
2. Выполняется обработчик в модуле объекта
3. Выполняются ВСЕ подписки на это событие
4. Продолжается стандартный процесс

Ограничения и проблемы

Что НЕЛЬЗЯ в подписках:

  1. Изменять порядок событий — только "после основного"
  2. Обрабатывать события форм — только объекты метаданных
  3. Гарантировать порядок выполнения между подписками

Технические ограничения:

  1. Производительность — много подписок замедляют работу
  2. Отладка — сложнее отследить источник ошибки
  3. Конфликты — несколько подписок могут мешать друг другу

Особенности реализации

Требования к общим модулям:

  • Сервер: Да
  • Внешнее соединение: Да (для COM)

Рекомендации по использованию

Использовать подписки, когда:

  • ✅ Нужно расширить типовую конфигурацию
  • ✅ Логика общая для разных объектов
  • ✅ Хочется избежать изменения исходного кода
  • ✅ Нужен централизованный контроль обработки

Не использовать, когда:

  • ❌ Можно добавить логику в модуль объекта
  • ❌ Нужно обработать событие ДО основного кода
  • ❌ Работа с формами или необъектными событиями

Стандарт:

  • Отключение при загрузке — проверка ОбменДанными.Загрузка