При внедрении связки 1С:ERP 2.5 и 1С:Документооборот 3.0 часто возникает задача автоматизации процессов для объектов, которые не предусмотрены в типовой поставке — для этого подойдёт модуль интеграции 1С:ERP с 1С:Документооборот 3.0. Например, это может быть специфический справочник "Рекламации" или "Проекты", созданный с нуля. По умолчанию система "не видит" такие объекты в справочнике "Правила интеграции", и они недоступны для настройки. Рассмотрим подробнее, как программно расширить возможности бесшовной интеграции (БИД) и зарегистрировать в ней новый объект.
Прежде всего, разберем, как 1С:ERP понимает, какие объекты могут участвовать в интеграции. Для этого используется механизм определяемых типов. Чтобы не снимать основную конфигурацию с поддержки, создадим расширение и добавим в него следующие определяемые типы:
Проанализируем ситуацию: простого добавления объекта в типы недостаточно. Система использует кэширование и программные проверки при открытии форм настроек. Поэтому перейдем к следующему этапу — программной регистрации.
Для того чтобы объект появился в выпадающем списке выбора при создании правил интеграции, необходимо внести изменения в процедуры серверных переопределяемых модулей. В контексте БИД 3.0 нас интересует модуль ИнтеграцияС1СДокументооборотПереопределяемый. Нам нужно переопределить процедуру ПриОпределенииОбъектовСПоддержкойДокументооборота.
Разберем по шагам, как должен выглядеть код в этом модуле:
Процедура ПриОпределенииОбъектовСПоддержкойДокументооборота(Объекты) Экспорт
// Добавляем наш новый справочник в массив интегрируемых объектов
Если Объекты.Найти("Справочник.МойНовыйСправочник") = Неопределено Тогда
Объекты.Добавить("Справочник.МойНовыйСправочник");
КонецЕсли;
КонецПроцедуры
Также важно настроить параметры интеграции для этого объекта. За это отвечает процедура ПриОпределенииПараметровИнтегрируемогоОбъекта. Здесь мы указываем, какие именно функции ДО будут доступны для нашего справочника: процессы, задачи, связи (включая отчет по связанным документам и их файлам) или хранение файлов — для этого подойдёт модуль учета проектов и задач для 1С:Документооборот.
Процедура ПриОпределенииПараметровИнтегрируемогоОбъекта(ИмяОбъекта, Параметры) Экспорт
Если ИмяОбъекта = "Справочник.МойНовыйСправочник" Тогда
Параметры.ИспользоватьБизнесПроцессыИЗадачи = Истина;
Параметры.ИспользоватьСвязанныеДокументы = Истина;
Параметры.ИспользоватьХранениеФайлов = Истина;
КонецЕсли;
КонецПроцедуры
После внесения этих изменений система начнет "узнавать" наш объект как полноценного участника обмена.
Выясним причину, по которой кнопка "Документооборот" не появляется на форме справочника автоматически. В современных версиях ERP кнопки БИД внедряются программно, но для этого в модуле формы объекта должны быть прописаны соответствующие вызовы. Проанализируем типичный алгоритм добавления команд:
В модуле формы справочника в процедуре ПриСозданииНаСервере необходимо вызвать инициализацию команд документооборота. Посмотрим на пример:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Инициализация команд бесшовной интеграции
ПараметрыИнтеграции = ИнтеграцияС1СДокументооборотКлиентСервер.ПараметрыИнтеграции();
ПараметрыИнтеграции.ОбъектСсылка = Объект.Ссылка;
ИнтеграцияС1СДокументооборот.ПриСозданииНаСервере(ЭтаФорма, ПараметрыИнтеграции);
КонецПроцедуры
Также необходимо добавить клиентские обработчики для этих команд. Как правило, это делается через стандартное описание обработчика команды Подключаемый_ВыполнитьКомандуИнтеграции, который будет перенаправлять вызов в библиотеку БИД.
Теперь, когда программная часть готова, перейдем в пользовательский интерфейс 1С:ERP. Нам нужно выполнить следующие действия:
Важный момент: в самом 1С:Документооборот 3.0 для выбранного Вида документа обязательно должна быть установлена галочка "Использовать в интеграции". Если этого не сделать, ERP не сможет сопоставить поля.
Бесшовная интеграция в ДО 3.0 работает через веб-сервис DMService и использует пакеты DM20. Если ваш нетиповой справочник содержит специфические реквизиты (например, "Сумма контракта", "Приоритет" или множественные дополнительные реквизиты), которые вы хотите передать в ДО, убедитесь, что в правилах интеграции настроено корректное сопоставление.
Если стандартных полей ДО не хватает, придется расширять XDTO-пакет в обеих базах, но для простого справочника это требуется редко. Чаще всего достаточно сопоставить реквизиты вашего справочника с Дополнительными реквизитами вида документа в ДО.
Рассмотрим вопрос, который часто путают: нужно ли добавлять объект в планы обмена? Для самой бесшовной интеграции план обмена не требуется, так как данные передаются "на лету" через веб-сервис. Однако, если вы хотите, чтобы при изменении наименования справочника в ERP оно автоматически обновлялось в карточке документа ДО (синхронизация НСИ), то объект стоит включить в стандартный обмен данными через EnterpriseData. Но помните, что это две разные технологии, которые работают параллельно.
Таким образом, мы по шагам разобрали процесс добавления нетипового объекта. Главное — помнить о триаде: Определяемые типы, Переопределяемые модули и Настройка правил в пользовательском режиме (после чего с объектами смогут полноценно работать все сотрудники согласно их ранжированию).