Как настроить бесшовную интеграцию 1С:Бухгалтерии КОРП и 1С:Документооборота и расширить список интегрируемых документов

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

При внедрении бесшовной интеграции между 1С:Бухгалтерией предприятия КОРП 3.0 (БП) и 1С:Документооборотом КОРП (ДО) специалисты часто сталкиваются с неприятным ограничением. В отличие от тяжелых систем класса ERP, где Библиотека интеграции с Документооборотом (БИД) изначально "дружит" практически со всеми документами, в Бухгалтерии КОРП "из коробки" доступен весьма скромный перечень документов (например, поступления, перемещения, доп. расходы). Такие важные документы, как Реализация товаров и услуг или Счет на оплату покупателю, в списке правил интеграции попросту отсутствуют.

Второй частой проблемой становится передача файлов: при запуске процессов согласования или создании связанных документов прикрепленные к исходному документу БП файлы не улетают в карточку ДО автоматически.

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

---

Часть 1: Расширяем список документов для интеграции в БП КОРП

Чтобы добавить новый документ (например, Документ.РеализацияТоваровУслуг) в правила бесшовной интеграции, нам потребуется внести изменения в метаданные. Рекомендуем делать это строго через расширение конфигурации, чтобы основная база оставалась на поддержке.

Выполним последовательно следующие шаги в конфигураторе:

Шаг 1. Настройка определяемых типов

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

  1. Найдите определяемый тип ИнтеграцияС1СДокументооборотДокументыОбъектыПереопределяемый (в некоторых редакциях БИД он может называться ИнтеграцияС1СДокументооборотИнтегрируемыеОбъекты).
  2. Добавьте в него тип ДокументОбъект.РеализацияТоваровУслуг (или другой необходимый вам документ).

Этот шаг критически важен, так как он автоматически включает документ в состав ключевых подписок на события БИД, отвечающих за регистрацию изменений и синхронизацию связей.

Шаг 2. Проверка подписок на события

Обязательно убедимся, что добавленный объект попал в состав источников для следующих системных подписок на события:

Шаг 3. Подключение общих команд к форме документа

Чтобы пользователи увидели заветные кнопки "Документооборот", "Процессы и задачи" или "Присоединенные файлы" на форме документа или в списках, нам нужно расширить типы параметров для общих команд БИД.

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

После этого кнопки интеграции автоматически появятся на командной панели формы документа БП.

---

Часть 2: Настраиваем автоматическую передачу прикрепленных файлов

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

Вариант А: Использование встроенной команды копирования файлов

Это самый простой "бескодовый" путь. При создании связанного документа в окне интеграции пользователю достаточно нажать кнопку Еще -> Копировать присоединенные файлы. В этот момент система сама считает файлы БСП из карточки БП и перенесет их во внутренний документ ДО. Минус метода — человеческий фактор (пользователи часто забывают нажимать эту кнопку).

Вариант Б: Использование ДО как файлового хранилища

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

Вариант В: Программный перенос файлов при создании связи (Рекомендуемый способ)

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

В Библиотеке интеграции с ДО за подготовку отправляемых данных отвечает общий модуль ИнтеграцияС1СДокументооборотПереопределяемый. Мы перехватим процедуру ПриЗаполненииПечатныхФорм (в старых версиях БИД это может быть метод ЗаполнитьПечатныеФормы в модуле менеджера справочника ПравилаИнтеграцииС1СДокументооборотом).

Рассмотрим пример кода расширения для автоматического сбора файлов из БСП и передачи их в пакет интеграции:


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

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

Проанализировав ситуацию, мы видим, что штатные механизмы БИД достаточно гибкие. Несмотря на то, что разработчики "1С" ограничили состав интегрируемых объектов в Бухгалтерии КОРП ради облегчения конфигурации, мы можем легко расширить этот функционал под свои бизнес-требования без изменения типовой конфигурации.

← На главную