Интеграция системы «1С:Документооборот» (1С:ДО) с типовыми программными продуктами, такими как ERP, Комплексная автоматизация или Управление торговлей, подробно описана в официальных методических материалах. Однако на практике разработчики часто сталкиваются с необходимостью связать систему документооборота с уникальной самописной конфигурацией («нетленкой»), разработанной под специфику конкретного предприятия. В этой статье мы подробно разберем, как правильно подойти к этой задаче, какие инструменты использовать и как обойти ключевые технические ограничения.
Основным штатным инструментом для связывания любой конфигурации на платформе 1С:Предприятие с системой документооборота является Библиотека интеграции с документооборотом (БИД), ранее известная как DMIL (Document Management Integration Library). БИД предоставляет готовый набор механизмов для организации бесшовной интеграции.
Перед тем как начать внедрение, проанализируем архитектуру вашей самописной конфигурации. Ключевое значение имеют тип используемых форм и версия платформы:
DMIL 1.0.5.хх. Старые версии библиотеки корректно работают с современными релизами ДО 2.1 при сохранении обратной совместимости.Многие разработчики совершают ошибку, полагая, что БИД можно просто перенести в любую конфигурацию как обособленный набор объектов. Это не так. Библиотека БИД жестко завязана на другую важнейшую библиотеку — Библиотеку стандартных подсистем (БСП).
Если в вашей самописной базе БСП полностью отсутствует, перед внедрением БИД вам придется пройти через процедуру интеграции базовых подсистем БСП. В частности, БИД требует наличия следующих подсистем:
Пользователи — для корректного сопоставления учетных записей сотрудников.КонтактнаяИнформация — для передачи адресов, телефонов и контрагентов.РаботаСФайлами — для передачи и хранения прикрепленных сканов и документов.ОбновлениеВерсииИБ — для контроля версий метаданных при обновлении конфигурации.Внедрение БСП в старую «нетленку» — задача трудоемкая, требующая тщательного тестирования и возможного отключения режима совместимости конфигурации.
Для облегчения процесса разработки фирма 1С поставляет специальный продукт — «Демонстрационная конфигурация "Библиотека интеграции с 1С:Документооборотом"». Рекомендуем развернуть эту базу на тестовом стенде и использовать ее как основной справочник по программному коду. В ней наглядно показано, как разработчик может связать произвольные справочники и документы с объектами ДО на уровне кода.
Стандартная бесшовная интеграция позволяет связывать реквизиты объектов без написания кода через интерфейс «Правила интеграции». Однако этот механизм имеет существенные ограничения. Например, стандартные правила не умеют передавать табличные части документов напрямую.
Для решения этой проблемы мы можем использовать программную доработку через переопределяемые модули библиотеки. Рассмотрим пример использования общего модуля ИнтеграцияС1СДокументооборотПереопределяемый для ручной подготовки данных перед отправкой в ДО. Нам потребуется перехватить событие заполнения реквизитов и рассчитать сумму по табличной части документа:
// В общем модуле ИнтеграцияС1СДокументооборотПереопределяемый
Процедура ПриЗаполненииРеквизитовОбъектаДО(ДанныеИсточника, ДанныеПриемника) Экспорт
// Проверим, что источником является наш самописный документ "ЗаявкаНаРасход"
Если ТипЗнч(ДанныеИсточника) = Тип("ДокументСсылка.ЗаявкаНаРасход") Тогда
// Рассчитаем общую сумму по табличной части документа
ОбщаяСумма = 0;
Для Каждого СтрокаТЧ Из ДанныеИсточника.Товары Цикл
ОбщаяСумма = ОбщаяСумма + СтрокаТЧ.Сумма;
КонецЦикла;
// Передаем вычисленное значение в реквизит объекта Документооборота
ДанныеПриемника.Вставить("Сумма", ОбщаяСумма);
КонецЕсли;
КонецПроцедуры
Этот подход позволяет гибко настраивать интеграцию любой сложности, включая передачу иерархических структур данных, сопоставление контрагентов по сложным алгоритмам и динамическое определение согласующих лиц.
Что делать, если ваша самописная конфигурация работает на старой платформе, не содержит БСП, а внедрение библиотек экономически нецелесообразно или технически невозможно? В такой ситуации мы можем использовать альтернативный путь — прямое обращение к SOAP веб-сервису DMService, который по умолчанию встроен в «1С:Документооборот».
Рассмотрим пример подключения к веб-сервису ДО напрямую из кода самописной конфигурации для программного взаимодействия:
// Функция инициализации подключения к 1С:ДО через Web-сервис
Функция ПодключитьсяКДокументообороту(АдресПодключения, ИмяПользователя, ПарольПользователя)
Попытка
// Создаем определение WS-ссылки к опубликованной базе ДО
Определения = Новый WSОпределения(АдресПодключения + "/ws/DMService?wsdl", ИмяПользователя, ПарольПользователя);
// Создаем прокси для взаимодействия с веб-сервисом
ПроксиДО = Новый WSПрокси(Определения, "http://www.1c.ru/dm", "DMService", "DMServiceSoap");
ПроксиДО.Пользователь = ИмяПользователя;
ПроксиДО.Password = ПарольПользователя; // в зависимости от версии платформы может использоваться Пароль
Возврат ПроксиДО;
Исключение
ЗаписьЖурналаРегистрации("ИнтеграцияДО", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат Неопределено;
КонецПопытки;
КонецФункции
Используя полученный объект ПроксиДО, мы можем вызывать любые экспортируемые методы веб-сервиса ДО. Например, можно передавать файлы, создавать задачи, изменять статусы согласования документов и синхронизировать справочники. Плюсом этого подхода является полная независимость от БСП и БИД, а минусом — необходимость самостоятельного описания всей логики разбора XML-пакетов и построения пользовательского интерфейса в вашей самописной системе.
Таким образом, выбор метода интеграции напрямую зависит от состояния вашей текущей базы данных. Для современных конфигураций идеальным выбором станет использование БИД, в то время как для исторических наследуемых систем оптимальным решением будет прямая работа через API веб-сервисов.