Как временно отключить подписку на события в 1С:Управление торговлей 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

При работе с конфигурацией УТ 10.3 разработчики часто сталкиваются с необходимостью временного отключения ПодпискиНаСобытия. Например, при создании копии базы для тестирования или при выполнении массовых операций загрузки данных, когда срабатывание подписки может привести к нежелательным последствиям — таким как запись данных в сторонние базы или избыточная нагрузка. Рассмотрим, как эффективно реализовать управление этим механизмом.

Можно ли отключить подписку без конфигуратора?

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

Способ 1: Использование управляющего условия (Константа или Регистр)

Самый надежный способ — внедрить в процедуру-обработчик подписки проверку на наличие настройки, которую можно изменить в пользовательском режиме. Разберем шаги по реализации этого метода:

  1. Создайте Константу (например, ИспользоватьПодпискуНаСобытия) или РегистрСведений, который будет хранить статус включения.
  2. Назначьте соответствующие права (Роли), чтобы администратор имел доступ к изменению этой константы.
  3. Внесите изменение в модуль, где находится процедура, указанная в ПодпискеНаСобытие.

Пример программного кода, который необходимо добавить в процедуру-обработчик:


Процедура ПриЗаписиДокумента(Источник, Отказ)
    Если Не Константы.ИспользоватьПодпискуНаСобытия.Получить() Тогда
        Возврат;
    КонецЕсли;

    // Далее идет основной код подписки
    // ...
КонецПроцедуры

Таким образом, когда вам потребуется временно отключить логику, вы просто измените значение константы в режиме 1С:Предприятие, и код подписки будет прекращать работу на первом же этапе.

Способ 2: Использование расширений конфигурации

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

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

Порядок действий:

Важные рекомендации при работе

При использовании любого из предложенных методов помните о рисках:

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

← На главную