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

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%

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

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

55778 50200 руб.

04.08.2015    166455    333    277    

373

SALE! 20%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 22338 руб.

12.06.2017    141506    798    297    

419

SALE! 10%

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

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

35000 31500 руб.

15.12.2021    24010    169    51    

127

SALE! 10%

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

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

35000 31500 руб.

23.07.2020    51235    228    69    

185

SALE! 10%

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

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

53111 47800 руб.

03.12.2020    36583    94    66    

89

SALE! 10%

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

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

55778 50200 руб.

29.10.2018    56205    59    105    

61

SALE! 10%

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171170    303    257    

378

SALE! 15%

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

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

15300 13005 руб.

18.02.2016    186871    589    509    

526
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. blindcat2006 92 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
Сообщение было скрыто модератором.
...
Оставьте свое сообщение