При внедрении бесшовной интеграции между 1С:Бухгалтерией предприятия КОРП 3.0 (БП) и 1С:Документооборотом КОРП (ДО) специалисты часто сталкиваются с неприятным ограничением. В отличие от тяжелых систем класса ERP, где Библиотека интеграции с Документооборотом (БИД) изначально "дружит" практически со всеми документами, в Бухгалтерии КОРП "из коробки" доступен весьма скромный перечень документов (например, поступления, перемещения, доп. расходы). Такие важные документы, как Реализация товаров и услуг или Счет на оплату покупателю, в списке правил интеграции попросту отсутствуют.
Второй частой проблемой становится передача файлов: при запуске процессов согласования или создании связанных документов прикрепленные к исходному документу БП файлы не улетают в карточку ДО автоматически.
В этой статье мы подробно разберем по шагам, как решить обе эти проблемы с помощью механизмов расширения конфигурации.
---
Чтобы добавить новый документ (например, Документ.РеализацияТоваровУслуг) в правила бесшовной интеграции, нам потребуется внести изменения в метаданные. Рекомендуем делать это строго через расширение конфигурации, чтобы основная база оставалась на поддержке.
Выполним последовательно следующие шаги в конфигураторе:
Шаг 1. Настройка определяемых типов
Для начала нам нужно заявить системе, что наш документ в принципе может участвовать в интеграционных процессах. Для этого найдем в конфигурации определяемые типы и добавим в них объектный тип нашего документа:
ИнтеграцияС1СДокументооборотДокументыОбъектыПереопределяемый (в некоторых редакциях БИД он может называться ИнтеграцияС1СДокументооборотИнтегрируемыеОбъекты).ДокументОбъект.РеализацияТоваровУслуг (или другой необходимый вам документ).Этот шаг критически важен, так как он автоматически включает документ в состав ключевых подписок на события БИД, отвечающих за регистрацию изменений и синхронизацию связей.
Шаг 2. Проверка подписок на события
Обязательно убедимся, что добавленный объект попал в состав источников для следующих системных подписок на события:
ИнтеграцияС1СДокументооборотПередЗаписьюДокумента — отвечает за актуализацию связи объектов и запись связок.ИнтеграцияС1СДокументооборотОбработкаЗаполненияДокументы — позволяет автоматически заполнять реквизиты документа БП при его создании на основании данных из 1С:ДО.Шаг 3. Подключение общих команд к форме документа
Чтобы пользователи увидели заветные кнопки "Документооборот", "Процессы и задачи" или "Присоединенные файлы" на форме документа или в списках, нам нужно расширить типы параметров для общих команд БИД.
В конфигураторе перейдем к ветке Общие -> Общие команды. Найдем все команды, начинающиеся с префикса ИнтеграцияС1СДокументооборот.... Для ключевых команд нам необходимо добавить ссылочный тип нашего документа (например, ДокументСсылка.РеализацияТоваровУслуг) в свойство Тип параметра команды:
ИнтеграцияС1СДокументооборотСоздатьБизнесПроцессИнтеграцияС1СДокументооборотСоздатьДокументНаОснованииИнтеграцияС1СДокументооборотПрисоединенныеФайлыИнтеграцияС1СДокументооборотСвязанныеДокументыПосле этого кнопки интеграции автоматически появятся на командной панели формы документа БП.
---
По умолчанию при создании связанного документа в ДО 1С:Бухгалтерия предлагает отправлять печатные формы (макеты), генерируемые самой системой. Однако файлы, которые пользователь вручную прикрепил к документу в БП (например, скан-копия подписанного договора или спецификация во вложениях БСП), игнорируются. Рассмотрим три возможных варианта обхода этого поведения.
Это самый простой "бескодовый" путь. При создании связанного документа в окне интеграции пользователю достаточно нажать кнопку Еще -> Копировать присоединенные файлы. В этот момент система сама считает файлы БСП из карточки БП и перенесет их во внутренний документ ДО. Минус метода — человеческий фактор (пользователи часто забывают нажимать эту кнопку).
В настройках интеграции на стороне Бухгалтерии можно установить флаг "Файлы прикреплены к документам". При этом файлы физически будут лежать в базе ДО, а в БП будет лишь отображаться ссылка на них. Но и у этого способа есть минус: файлы сохраняются в служебных папках интеграции ДО и не привязываются напрямую к карточке конкретного процесса согласования, если он запускается вручную.
Для того чтобы файлы улетали в ДО автоматически и без лишних кликов в момент создания интеграционного объекта, напишем небольшой код в расширении.
В Библиотеке интеграции с ДО за подготовку отправляемых данных отвечает общий модуль ИнтеграцияС1СДокументооборотПереопределяемый. Мы перехватим процедуру ПриЗаполненииПечатныхФорм (в старых версиях БИД это может быть метод ЗаполнитьПечатныеФормы в модуле менеджера справочника ПравилаИнтеграцииС1СДокументооборотом).
Рассмотрим пример кода расширения для автоматического сбора файлов из БСП и передачи их в пакет интеграции:
&После("ПриЗаполненииПечатныхФорм")
Процедура ИТ_ПриЗаполненииПечатныхФорм(ОбъектИнтеграции, ПечатныеФормы)
// Проверяем, что работаем именно с интересующим нас типом документа
Если ТипЗнч(ОбъектИнтеграции) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
// Составим запрос к справочнику присоединенных файлов БСП для нашего документа
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Файлы.Ссылка КАК СсылкаНаФайл,
| Файлы.Наименование КАК ИмяФайла,
| Файлы.Расширение КАК Расширение
|ИЗ
| Справочник.РеализацияТоваровУслугПрисоединенныеФайлы КАК Файлы
|ГДЕ
| Файлы.ВладелецФайла = &ВладелецФайла
| И НЕ Файлы.ПометкаУдаления";
Запрос.УстановитьПараметр("ВладелецФайла", ОбъектИнтеграции);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
// Получаем двоичные данные файла средствами БСП
ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.СсылкаНаФайл);
Если ДвоичныеДанные <> Неопределено Тогда
// Добавляем файл в коллекцию отправки
НоваяФорма = ПечатныеФормы.Добавить();
НоваяФорма.ИмяФайла = Выборка.ИмяФайла + "." + Выборка.Расширение;
НоваяФорма.ДвоичныеДанные = ДвоичныеДанные;
// Помечаем, что этот файл обязателен для передачи
НоваяФорма.Выбрана = Истина;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Благодаря этому несложному алгоритму при отправке документа "Реализация товаров и услуг" на согласование в 1С:Документооборот, все прикрепленные к нему файлы (например, сканы УПД или доверенностей) автоматически прикрепятся к создаваемой карточке внутреннего или входящего документа ДО.
Проанализировав ситуацию, мы видим, что штатные механизмы БИД достаточно гибкие. Несмотря на то, что разработчики "1С" ограничили состав интегрируемых объектов в Бухгалтерии КОРП ради облегчения конфигурации, мы можем легко расширить этот функционал под свои бизнес-требования без изменения типовой конфигурации.