Как настроить интеграцию 1С:ERP с 1С:Документооборот и почему не регистрируются изменения в очереди обмена?

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

При настройке взаимодействия между конфигурациями 1С:ERP Управление предприятием и 1С:Документооборот разработчики часто сталкиваются с ситуацией, когда объекты (справочники или документы) создаются и изменяются в ERP, но в 1С:Документооборот не передаются. При этом регистр сведений ОчередьСообщенийВ1СДокументооборот и таблицы регистрации изменений плана обмена остаются абсолютно пустыми, даже если для объектов включена авторегистрация. Разберем по шагам, как устроена эта подсистема, почему данные могут не фиксироваться и как правильно организовать двусторонний обмен.

Анализ механизма регистрации изменений и работы очереди сообщений

Рассмотрим, как работает типовой механизм бесшовной интеграции. В отличие от стандартного механизма распределенных информационных баз (РИБ), где факт включения авторегистрации в плане обмена безусловно создает запись в таблице изменений, в библиотеке интеграции с 1С:Документооборотом логика контролируется программно через подписки на события и сопоставление правил.

Посмотрим на пример запроса, с помощью которого система проверяет наличие зарегистрированных изменений и сопоставляет их с правилами:


ВЫБРАТЬ
    ТаблицаИзменения.Ссылка КАК Объект,
    ПравилаЗаполнения.ПравилоЗаполнения КАК ПравилоЗаполнения,
    ПравилаЗаполнения.ЕстьУсловия КАК ЕстьУсловия,
    ЕСТЬNULL(ОбъектыИнтегрированныеС1СДокументооборотом.ТипОбъектаДокументооборота, ПравилаЗаполнения.ТипОбъектаДокументооборота) КАК ТипОбъектаДокументооборота,
    ЕСТЬNULL(ОбъектыИнтегрированныеС1СДокументооборотом.ИдентификаторОбъектаДокументооборота, "") КАК ИдентификаторОбъектаДокументооборота
ИЗ
    %1.Изменения КАК ТаблицаИзменения
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПравилаЗаполнения КАК ПравилаЗаполнения
    ПО (ПравилаЗаполнения.ТипОбъектаПотребителя = "%1")
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбъектыИнтегрированныеС1СДокументооборотом КАК ОбъектыИнтегрированныеС1СДокументооборотом
    ПО ТаблицаИзменения.Ссылка = ОбъектыИнтегрированныеС1СДокументооборотом.Объект
ГДЕ
    ТаблицаИзменения.Узел = &Узел
    И ЕСТЬNULL(ОбъектыИнтегрированныеС1СДокументооборотом.ТипОбъектаДокументооборота, ПравилаЗаполнения.ТипОбъектаДокументооборота) = ПравилаЗаполнения.ТипОбъектаДокументооборота
ИТОГИ ПО
    Объект

Выясним главные причины, почему таблица изменений и очередь сообщений могут оставаться пустыми:

  1. Отсутствуют или не активированы правила интеграции: в справочнике Правила интеграции с 1С:Документооборотом для конкретного объекта ERP должно быть создано, настроено и включено соответствующее правило сопоставления. Если правила нет, подписка на событие при записи объекта пропускает регистрацию.
  2. Не инициализирован узел плана обмена: в информационной базе должен быть корректно настроен и активен предопределенный или рабочий узел плана обмена бесшовной интеграции, а сама функциональная опция интеграции должна быть включена в общих настройках.
  3. Ошибки в подписках на события: регистрация изменений выполняется обработчиками событий перед записью или при записи. Если объект записывается в режиме Загрузка = Истина или в рамках транзакции возникает ошибка, регистрация изменений отменяется.

Автоматическое создание документов и бизнес-процессов в 1С:Документооборот

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

  1. Асинхронная отправка данных: при включенной интеграции и настроенных правилах заполнения объекты после записи регистрируются к обмену. Регламентное задание фонового обмена с 1С:Документооборотом считывает очередь и через веб-сервис DMService создает соответствующий внутренний или входящий документ на стороне 1С:ДО.
  2. Автоматический запуск бизнес-процессов: запуск процессов по созданным документам в 1С:Документооборот выполняется подсистемой обработки произошедших событий. На стороне ДО настраивается правило: при создании документа заданного вида запускается регламентное задание Обработка произошедших событий, которое автоматически стартует бизнес-процесс по предопределенному шаблону (например, согласование или исполнение).

Подключение собственных (нетиповых) объектов к интеграции

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

  1. Определяемые типы: включим наш объект в состав определяемых типов библиотеки интеграции, таких как ИнтегрируемыйОбъектС1СДокументооборотом, ВладелецПрисоединенныхФайлов и смежные типы ссылок.
  2. Подписки на события: добавим новый объект в состав подписок на события, отвечающих за регистрацию изменений для обмена с 1С:Документооборотом (обработка при записи и при установке пометки удаления).
  3. Модули форм и менеджера: внедряем вызовы процедур общих модулей интеграции для отображения статусов, панели связанных процессов и задач 1С:Документооборота непосредственно в форме нашего документа ERP.

Организация обратной интеграции и синхронизация статусов

Рассмотрим, как передать результаты согласования и исполнения обратно в 1С:ERP, чтобы автоматически менять статусы документов. Для этого используется механизм сопоставления состояний:

  1. В настройках интеграции в ERP заполняется таблица соответствия состояний процессов ДО (например, Согласован, Не согласован, Утвержден) статусам документа в ERP.
  2. Синхронизация выполняется либо вызовом веб-сервиса со стороны 1С:Документооборота при завершении задачи бизнес-процесса, либо регламентным заданием в ERP, которое опрашивает входящие сообщения и обновляет записи в регистре состояний связанных объектов.
← На главную