Часто в работе администраторов и разработчиков 1С возникают ситуации, когда в журнале регистрации фиксируется запуск фонового задания, например, «Обмен с контрагентами. Отправка и получение электронных документов», при этом регламентное задание с аналогичным именем отключено. Пользователь утверждает, что «никуда не нажимал», а задание всё равно стартовало. Разберемся, где искать источник этой активности и как понять, что именно спровоцировало процесс.
Первым делом необходимо исключить осознанные или неосознанные действия пользователя в рабочем интерфейсе. В типовых конфигурациях, таких как 1С:Управление торговлей 11, обмен ЭДО может быть инициирован вручную из специальных рабочих мест.
«Отправить/получить» внутри этой обработки, что напрямую создает фоновое задание для выполнения обмена.НСИ и администрирование.НСИ — Обмен электронными документами — Обмен с контрагентами — Отложенная отправка ЭД. Даже если регламентное задание отключено, параметры этого механизма могут провоцировать вызов обмена при определенных условиях или при навигации пользователя по формам системы.Если ручные действия исключены, значит, процесс запускается программно. Рассмотрим, как проанализировать работу системы «под капотом».
Поскольку фоновое задание в 1С всегда запускается кодом на сервере, нам необходимо найти места вызова метода ФоновыеЗадания.Выполнить() или ФоновыеЗадания.ВыполнитьСПараметрами(). Выполним следующие шаги:
Глобальный поиск в Конфигураторе. Введите имя задания «ОбменСКонтрагентами» или ключевые фразы, связанные с ЭДО. Это позволит увидеть все модули, в которых инициализируется данный процесс.Подписок на события, которые реагируют на ПриЗаписи или ПослеЗаписи документов, участвующих в ЭДО (например, РеализацияТоваровУслуг или СчетФактура).Технологический журнал платформы 1С. Установите фильтрацию по событию BG (Background job) и имени фонового задания. Это позволит увидеть контекст вызова, включая серверный вызов, который инициировал создание фонового процесса.Когда вы анализируете код, обратите внимание на логику типовых общих модулей. Обычно запуск фонового задания выглядит следующим образом:
// Пример программного вызова фонового задания
ПараметрыЗадания = Новый Массив;
ПараметрыЗадания.Добавить(УчетнаяЗаписьЭДО);
ИмяЗадания = \"ОбменСКонтрагентами.ОтправкаИПолучение\";
ФоновыеЗадания.Выполнить(\"ОбменЭДО.ВыполнитьОбмен\", ПараметрыЗадания, , ИмяЗадания);
Разберем ситуацию: если вы обнаружили такое вхождение в общем модуле, посмотрите на СтекВызова (через отладку), чтобы понять, какая процедура вызывает этот метод. Если при проведении документа срабатывает подписка, вы увидите это в процессе отладки в момент записи документа.
Чтобы окончательно разобраться в причинах запуска задания, рекомендуем выполнить следующие действия:
Подписка на событие, возрастает до 99%.ПриОткрытии(), который проверяет наличие новых входящих документов ЭДО и запускает обмен в фоновом режиме.«Создавать контрагентов автоматически», «Отправлять документы на ознакомление» и «Отправлять входящие документы на утверждение». Даже при отключенном регламентном задании, наличие этих галочек может приводить к тому, что система будет инициировать фоновые процессы при любом удобном случае.Таким образом, для поиска «виновника» лучше всего комбинировать анализ Журнала регистрации с Глобальным поиском в Конфигураторе. Прямого лога «на какую кнопку нажал пользователь» в платформе нет, но анализ контекста вызова через Отладчик или Технологический журнал даст исчерпывающий ответ на ваш вопрос.