Бесшовная интеграция через обмен по правилам - миссия выполнима

24.01.20

Интеграция - Обмен между базами 1C

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

С помощью несложной доработки «штатного» обмена по правилам можно добиться требуемого результата. Данная заметка посвящена одной конкретной задаче, в рамках этого проекта – установке «бесшовной» связи, между синхронизируемыми по правилам КД2 объектами ДО и ЕРП.

Вводная.

Имеем: ЕРП 2.4 + Документооборот КОРП, между которыми:

  1. Настроена бесшовная интеграция.
  2. Настроен  штатный обмен по правилам (КД2).

Сначала, в штатном обмене была выполнена доработка: выгружать из ДО в ЕРП зарегистрированные договоры; т.е., элементы справочника ДО «ВнутренниеДокументы», расположенные в определенной папке «Договоры», выгружаются в справочник «ДоговорыКонтрагентов» ЕРП.

Описание этой достаточно тривиальной доработки не входит в цель данной заметки – будет интерес, в двух словах опишу в комментариях, тут просто приведу фрагмент добавленного в типовые правила нового ПКО:

Объекты сопоставляются по сочетанию реквизитов Номер+Валюта+Контрагент.

Задача.

При синхронизации (по правилам обмена), информация из реквизитов объекта ДО переносится в ЕРП. Но при этом, необходимо также, чтобы в ЕРП, в карточке договора, на вкладке «Документооборот» автоматически устанавливалась связь с объектом документооборота:

Для новых (создаваемых обменом) договоров, эта связь также должна устанавливаться автоматически.

 

Решение.

Предварительные соображения:

  1. В ЕРП, на вкладке «Документооборот» в карточке объекта (см. скрин выше), можно подсмотреть, каким образом создается связь между объектами ЕРП и ДО. Поковырявшись, приходим к тому, что основное волшебство заключается в такой строке кода:
                ИнтеграцияС1СДокументооборотВызовСервера.ДобавитьСвязь(ID,
                               Тип,
                               Ссылка);

где «ID» - GUID объекта ДО, «Тип» в нашем случае будет строчка "DMInternalDocument", «Ссылка» – ссылка на объект ЕРП.

Примечание:  для добавления связи необходимо, чтобы «канал» бесшовной связи с ДО был активен – как это сделать, подглядел в этой процедуре:

	ИнтеграцияС1СДокументооборотКлиент.ПроверитьПодключение(…);

Отсюда нам надо то, что можем выполнить на сервере.

Чтобы не тащить весь код, я в коде прописал пользователя и пароль и сразу устанавливаю соединение (см. в итоговом коде).

 

  1. При штатной синхронизации (по правилам обмена) в ЕРП, в регистр сведений «СоответствияОбъектовИнформационныхБаз» добавляется запись, сопоставляющая синхронизированные объекты ЕРП и ДО:

Здесь:

  • Измерения:
    • УникальныйИдентификаторПриемникаGUID объекта ДО
    • УникальныйИдентификаторИсточникассылка на объект ЕРП
    • ТипПриемника – в нашем случае это строка «СправочникСсылка.ВнутренниеДокументы»
    • ТипИсточника – в нашем случае это строка «СправочникСсылка.ДоговорыКонтрагентов»
    • УзелИнформационнойБазы – узел плана обмена «ОбменУправлениеПредприятиемДокументооборот20», соответствующий базе ДО (код = «DO»).
  • Ресурсы:
    • УникальныйИдентификаторИсточникаСтрокойGUID объекта ЕРП.

С помощью этого регистра, для загруженного в ЕРП объекта, мы можем узнать GUID соответствующего объекта ДО.

 

Идея решения:

Для каждого загруженного объекта-договора, запустить тот же механизм, который отрабатывает по клику на гиперссылку «создать» на вкладке «Документооборот» в ЕРП  (передав туда сведения из регистра сведений «СоответствияОбъектовИнформационныхБаз»).

Еще одно соображение.

В обмен один и тот же договор может попасть более одного раза. Поэтому, прежде чем запускать процедуру установки связи, стоит проверить – а не создана ли уже такая связь?

В использованной нами процедуре ИнтеграцияС1СДокументооборотВызовСервера.ДобавитьСвязь видно, что факт добавления «бесшовной» связи с объектом ДО, в ЕРП отражается в регистре сведений «ОбъектыИнтегрированныеС1СДокументооборотом»:

РегистрыСведений.ОбъектыИнтегрированныеС1СДокументооборотом.ДобавитьСвязь(ID, Тип, ИнтегрированныйОбъект);

Этот регистр имеет три измерения:

Собственно, по наличию/отсутствию записи в этом регистре и можно определять наличие/отсутствие связи между объектами ДО и ЕРП.

 

Реализация:

  1. Инициируем в обработчике «Перед загрузкой данных» конвертации новый параметр МассивЗагруженныхДоговоров.
Параметры.Вставить("МассивЗагруженныхДоговоров", Новый Массив);
  1. В обработчике «ПослеЗагрузки» ПКО договоров, надо сохранить загруженные объекты в этот массив – для удобства вынесем эту короткую процедуру в отдельный алгоритм, назовем его «ДобавитьОбъектВМассивПриНеобходимости»:
Если ОбъектНайден Тогда
	Параметры.МассивЗагруженныхДоговоров.Добавить(Ссылка);
Иначе     
	Параметры.МассивЗагруженныхДоговоров.Добавить(Объект.ПолучитьСсылкуНового());
КонецЕсли;

 

Не забыли вызвать алгоритм в обработчике «После загрузки» ПКО:

выполнить(Алгоритмы.ДобавитьОбъектВМассивПриНеобходимости);

 

  1. Пишем код (опять же, удобно поместить все в отдельный алгоритм; назовем его «СоздатьСвязиСОбъектамиДО»), который собственно будет все выполнять. В запросе сразу отсекаем объекты, для которых уже установлены связи:

 

	Узел = ПланыОбмена.ОбменУправлениеПредприятиемДокументооборот20.НайтиПоКоду("DO");
	
	Если ЗначениеЗаполнено(Узел) Тогда
		
		// открываем "канал связи"
		ИспользуетсяАутентификацияОС = Ложь;
		ИмяПользователя = "Тот-Кого-нельзя-называть";
		Пароль = "Волан-Де-Морт";
		ТекстСообщенияОбОшибке = "";
		
		Если ИнтеграцияС1СДокументооборотВызовСервера.ПроверитьПодключение(
			, 
			ИмяПользователя,
			Пароль,
			ТекстСообщенияОбОшибке) Тогда
			
			ИнтеграцияС1СДокументооборотВызовСервера.УстановитьНастройкиАвторизацииВПараметрыСеанса(
				ИмяПользователя, Пароль, ИспользуетсяАутентификацияОС);
				
			// Получаем, запросом по ссылкам на загруженные объекты, сведения из регистра сведений «СоответствияОбъектовИнформационныхБаз» 
			ТипОбъектаДокументооборота = "DMInternalDocument";
			Запрос = Новый Запрос;
			Запрос.Текст = 
				"ВЫБРАТЬ
				|	соотв.УникальныйИдентификаторИсточника КАК Ссылка,
				|	соотв.УникальныйИдентификаторИсточникаСтрокой КАК GUID,
				|	соотв.УникальныйИдентификаторПриемника КАК ID
				|ИЗ
				|	РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК соотв
				|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбъектыИнтегрированныеС1СДокументооборотом КАК УжеИнтегрированные
				|		ПО соотв.УникальныйИдентификаторИсточника = УжеИнтегрированные.Объект
				|		И соотв.УникальныйИдентификаторПриемника = УжеИнтегрированные.ИдентификаторОбъектаДокументооборота
				|		И УжеИнтегрированные.ТипОбъектаДокументооборота = &ТипОбъектаДокументооборота
				|ГДЕ
				|	соотв.УникальныйИдентификаторИсточника В(&МассивСсылок)
				|	И соотв.ТипПриемника = &ТипПриемника
				|	И соотв.ТипИсточника = &ТипИсточника
				|	И соотв.УзелИнформационнойБазы = &УзелИнформационнойБазы
				|	И УжеИнтегрированные.ИдентификаторОбъектаДокументооборота ЕСТЬ NULL";
			
			Запрос.УстановитьПараметр("ТипИсточника", "СправочникСсылка.ДоговорыКонтрагентов");
			Запрос.УстановитьПараметр("ТипПриемника", "СправочникСсылка.ВнутренниеДокументы");
			Запрос.УстановитьПараметр("УзелИнформационнойБазы", Узел);
			Запрос.УстановитьПараметр("МассивСсылок", Параметры.МассивЗагруженныхДоговоров);
			Запрос.УстановитьПараметр("ТипОбъектаДокументооборота", ТипОбъектаДокументооборота);
			
			РезультатЗапроса = Запрос.Выполнить();
			
			Выборка = РезультатЗапроса.Выбрать();
			
			Пока Выборка.Следующий() Цикл
			
				GUID = Строка(Выборка.Ссылка.УникальныйИдентификатор());
				
				Если GUID = Выборка.GUID Тогда
					
					// Передаем исполнение в штатную процедуру создания связи с объектом ДО				
					ИнтеграцияС1СДокументооборотВызовСервера.ДобавитьСвязь(Выборка.ID,
						ТипОбъектаДокументооборота,
						Выборка.Ссылка);
					
				КонецЕсли;
			
			КонецЦикла;
			
		Иначе
				
			// Cообщаем об ошибках в ЖР
			ИмяСобытия = "Загрузка договоров из Документооборот";
			Комментарий = ТекстСообщенияОбОшибке; //"Не удалось найти установить подключение к Документооборот!";
			ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Предупреждение,,,Комментарий);
			
		КонецЕсли;
		
	Иначе
		
		// Cообщаем об ошибках в ЖР
		ИмяСобытия = "Загрузка договоров из Документооборот";
		Комментарий = "Не удалось найти узел Документооборот по коду ""DO""!";
		ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Предупреждение,,,Комментарий);
		
	КонецЕсли; 
	
  1. Добавляем вызов алгоритма в обработчике «После загрузки данных» конвертации:
выполнить(Алгоритмы.СоздатьСвязиСОбъектамиДО);

 

Готово.

Замечание: На стороне ДО, результат создания связи можно увидеть в регистре сведений ДО «СвязиОбъектовИнтегрированныхСистем»:

Здесь, «Идентификатор внешнего объекта» - это GUID объекта ЕРП.

 

P.S. Разумеется, описанный прием не ограничивается только организацией договорной работы между системами ЕРП и ДО.

Бесшовная интеграция обмен Документооборот синхронизация

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

50722 руб.

04.08.2015    160245    368    268    

349

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    135519    730    291    

391

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    20592    137    38    

93

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

38500 34650 руб.

15.04.2019    68807    179    139    

111

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 руб.

23.07.2020    46741    199    64    

162

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В продаже с 2014г. | Воспользовались более 122 предприятий! | Перенос данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных)

50722 45650 руб.

31.10.2014    231857    124    327    

296

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6. Переносятся остатки, документы и справочная информация

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

В продаже с 2018г. | Воспользовались более 41 предприятия! | Правила конвертации (КД 2) для переноса данных из БП 3 в УНФ | Переносятся все виды документов, начальные остатки и вся возможная справочная информация | Есть фильтр по организациям | Оперативно обновляем на новые релизы | Оказываем техподдержку | В комплект файлов входит инструкция, авторская версия обработки "Универсальный обмен...", актуальные правила переноса данных и архив старых версий переноса | Учет в БП 3 должен быть корректным, некорректные данные не переносятся | Можно бесплатно проверить на вашем сервере до покупки!

50722 руб.

10.07.2018    67736    41    123    

46

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

48278 43450 руб.

03.12.2020    34402    81    58    

78
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. blindcat2006 90 26.01.20 20:13 Сейчас в теме
А где картинки?
Прикрепленные файлы:
+
2. e-9 60 27.01.20 09:45 Сейчас в теме
(1) очень хороший вопрос. Спасибо, перезалил!
...видимо, тут так бывает - при редактировании после публикации (ну забыл поменять реальные логин/пароль на придуманные) теряются картинки. При этом я их вижу - браузер из кэша берет.
blindcat2006; +1
3. advokat90 23.04.21 11:15 Сейчас в теме
Добрый день, Евгений!

Расскажите, пожалуйста, про доработку штатного обмена для выгрузки из ДО в ERP зарегистрированных договоров. Актуальная для меня задача, хотелось бы не наделать ошибок.
+
4. e-9 60 23.04.21 15:19 Сейчас в теме
(3) Если с КД2 работали - ничего необычного. В ДО добавляем в нужный план обмена (ОбменУправлениеПредприятиемДокументооборот20) справочник ВнутренниеДокументы, соответственно дописываем правила регистрации и правила конвертации.
+
5. advokat90 28.04.21 15:51 Сейчас в теме
(4) Спасибо за ответ!

У меня просто справочник ВнутренниеДокументы состоит почти из гигантского количества элементов, и его обработка на предмет выгрузки только лишь интересующих меня договоров занимает чуть больше, чем вечность. Я так понимаю у Вас с этим проблемы не было?
+
6. e-9 60 29.04.21 07:35 Сейчас в теме
(5) "...дописываем правила регистрации..." - пропишите в них условия для отбора лишь интересующих договоров
+
7. advokat90 04.05.21 14:25 Сейчас в теме
(6) Евгений, правильно ли я понял, что из КД были выгружены настроенные ПКО и ПРО, после чего в ДО загружены в план обмена "ОбменУправлениеПредприятиемДокументооборот20" и далее по этим правилам осуществляется синхронизация?
+
8. e-9 60 05.05.21 06:47 Сейчас в теме
(7) можно конечно и в план обмена в макеты закинуть - но проще же в режиме предприятия
+
9. пользователь 19.05.23 15:13
Сообщение было скрыто модератором.
...
Оставьте свое сообщение