Как добавить нетиповой справочник в бесшовную интеграцию между 1С:ERP 2.5 и 1С:Документооборот 3.0?

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

При внедрении связки 1С:ERP 2.5 и 1С:Документооборот 3.0 часто возникает задача автоматизации процессов для объектов, которые не предусмотрены в типовой поставке — для этого подойдёт модуль интеграции 1С:ERP с 1С:Документооборот 3.0. Например, это может быть специфический справочник "Рекламации" или "Проекты", созданный с нуля. По умолчанию система "не видит" такие объекты в справочнике "Правила интеграции", и они недоступны для настройки. Рассмотрим подробнее, как программно расширить возможности бесшовной интеграции (БИД) и зарегистрировать в ней новый объект.

Шаг 1: Подготовка расширения и работа с определяемыми типами

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

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

Проанализируем ситуацию: простого добавления объекта в типы недостаточно. Система использует кэширование и программные проверки при открытии форм настроек. Поэтому перейдем к следующему этапу — программной регистрации.

Шаг 2: Программная регистрация в переопределяемых модулях

Для того чтобы объект появился в выпадающем списке выбора при создании правил интеграции, необходимо внести изменения в процедуры серверных переопределяемых модулей. В контексте БИД 3.0 нас интересует модуль ИнтеграцияС1СДокументооборотПереопределяемый. Нам нужно переопределить процедуру ПриОпределенииОбъектовСПоддержкойДокументооборота.

Разберем по шагам, как должен выглядеть код в этом модуле:


Процедура ПриОпределенииОбъектовСПоддержкойДокументооборота(Объекты) Экспорт
    
    // Добавляем наш новый справочник в массив интегрируемых объектов
    Если Объекты.Найти("Справочник.МойНовыйСправочник") = Неопределено Тогда
        Объекты.Добавить("Справочник.МойНовыйСправочник");
    КонецЕсли;
    
КонецПроцедуры

Также важно настроить параметры интеграции для этого объекта. За это отвечает процедура ПриОпределенииПараметровИнтегрируемогоОбъекта. Здесь мы указываем, какие именно функции ДО будут доступны для нашего справочника: процессы, задачи, связи (включая отчет по связанным документам и их файлам) или хранение файлов — для этого подойдёт модуль учета проектов и задач для 1С:Документооборот.


Процедура ПриОпределенииПараметровИнтегрируемогоОбъекта(ИмяОбъекта, Параметры) Экспорт
    
    Если ИмяОбъекта = "Справочник.МойНовыйСправочник" Тогда
        Параметры.ИспользоватьБизнесПроцессыИЗадачи = Истина;
        Параметры.ИспользоватьСвязанныеДокументы = Истина;
        Параметры.ИспользоватьХранениеФайлов = Истина;
    КонецЕсли;
    
КонецПроцедуры

После внесения этих изменений система начнет "узнавать" наш объект как полноценного участника обмена.

Шаг 3: Настройка командного интерфейса на форме объекта

Выясним причину, по которой кнопка "Документооборот" не появляется на форме справочника автоматически. В современных версиях ERP кнопки БИД внедряются программно, но для этого в модуле формы объекта должны быть прописаны соответствующие вызовы. Проанализируем типичный алгоритм добавления команд:

В модуле формы справочника в процедуре ПриСозданииНаСервере необходимо вызвать инициализацию команд документооборота. Посмотрим на пример:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Инициализация команд бесшовной интеграции
    ПараметрыИнтеграции = ИнтеграцияС1СДокументооборотКлиентСервер.ПараметрыИнтеграции();
    ПараметрыИнтеграции.ОбъектСсылка = Объект.Ссылка;
    ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере(ЭтаФорма, ПараметрыИнтеграции);
    
КонецПроцедуры

Также необходимо добавить клиентские обработчики для этих команд. Как правило, это делается через стандартное описание обработчика команды Подключаемый_ВыполнитьКомандуИнтеграции, который будет перенаправлять вызов в библиотеку БИД.

Шаг 4: Настройка в пользовательском режиме (ERP и ДО)

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

  1. Откроем раздел Администрирование — Настройки интеграции с 1С:Документооборотом.
  2. Перейдем в список Правила интеграции.
  3. Нажмем "Создать" и в поле "Объект 1С:ERP" выберем наш справочник (теперь он там появится) — поможет подсистема учета рекламаций для 1С:ERP.
  4. В поле "Объект 1С:Документооборота" выберем Документ предприятия (важное отличие версии ДО 3.0 от 2.1).
  5. Укажем конкретный Вид документа из 1С:Документооборот.

Важный момент: в самом 1С:Документооборот 3.0 для выбранного Вида документа обязательно должна быть установлена галочка "Использовать в интеграции". Если этого не сделать, ERP не сможет сопоставить поля.

Шаг 5: Особенности XDTO и обмена данными

Бесшовная интеграция в ДО 3.0 работает через веб-сервис DMService и использует пакеты DM20. Если ваш нетиповой справочник содержит специфические реквизиты (например, "Сумма контракта", "Приоритет" или множественные дополнительные реквизиты), которые вы хотите передать в ДО, убедитесь, что в правилах интеграции настроено корректное сопоставление.

Если стандартных полей ДО не хватает, придется расширять XDTO-пакет в обеих базах, но для простого справочника это требуется редко. Чаще всего достаточно сопоставить реквизиты вашего справочника с Дополнительными реквизитами вида документа в ДО.

Использование планов обмена

Рассмотрим вопрос, который часто путают: нужно ли добавлять объект в планы обмена? Для самой бесшовной интеграции план обмена не требуется, так как данные передаются "на лету" через веб-сервис. Однако, если вы хотите, чтобы при изменении наименования справочника в ERP оно автоматически обновлялось в карточке документа ДО (синхронизация НСИ), то объект стоит включить в стандартный обмен данными через EnterpriseData. Но помните, что это две разные технологии, которые работают параллельно.

Таким образом, мы по шагам разобрали процесс добавления нетипового объекта. Главное — помнить о триаде: Определяемые типы, Переопределяемые модули и Настройка правил в пользовательском режиме (после чего с объектами смогут полноценно работать все сотрудники согласно их ранжированию).

← На главную