Отладка правил обмена в УТ 10.3.

1. Aleksandr_prof 193 19.05.21 09:12 Сейчас в теме
Необходимо выполнить отладку алгоритма загрузки данных в УТ 10.3. Обмен происходит с БП 3.0 через файлы. В УТ обмен находится в "Сервис - обмен данными с продуктами на платформе 8.2 - обмены данными".
И второй вопрос: как можно повторно отладить загрузку, если данные успешно загружены? Вижу только вариант такой: восстановление из резервной копии. А хотелось бы как-то изменить факт загрузки и дату последней успешной загрузки.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. viki_glebova 19.05.21 09:29 Сейчас в теме +0.3 $m
(1)Выгрузите правила обмена и через обработку сможете отладить
https://infostart.ru/1c/articles/205460/
https://infostart.ru/1c/articles/410529/
4. Aleksandr_prof 193 19.05.21 10:54 Сейчас в теме
(2) Первая статья не подходит, потому что мне нужна отладка загрузки. Вторая статья тоже не подходит. У меня в УТ нет регистра "Правила для обмена данными"...
8. viki_glebova 19.05.21 11:08 Сейчас в теме
(4)Как раз таки первая статья подходит. Изучите момент отладки выгрузки и загрузки. Они идентичны.
11. Aleksandr_prof 193 19.05.21 11:13 Сейчас в теме
(8) Я по ней делаю - ошибка, выше описал.
6. Torin 754 19.05.21 11:01 Сейчас в теме
(1)
Необходимо выполнить отладку алгоритма загрузки данных в УТ 10.3

(1)
как можно повторно отладить загрузку, если данные успешно загружены

- а для какой цели?
7. Aleksandr_prof 193 19.05.21 11:07 Сейчас в теме
(6) Выполнять отладку - для целей разработки, исправления ошибок, оптимизации.
Повторно отладить - чтобы повторно отладить. Ведь если сообщение загружено ранее, то эти документы уже могут быть в базе и может вообще не пройди загрузка. Получается нужно находить загруженные объекты, удалять их и загружать заново (для отладки).
10. Andrekaa 19.05.21 11:11 Сейчас в теме
(7)такое возможно вроде только для обмена по ED
а для вашего обмена просто заново можно загрузить сообщение и документы будут перезаписываться
3. Andrekaa 19.05.21 10:50 Сейчас в теме
в узле есть поле "номер принятого сообщения"
универсальным редактором уменьшите его и сообщение можно принять снова
5. Aleksandr_prof 193 19.05.21 11:01 Сейчас в теме
Вообще пытаюсь сделать так. В обработке "Универсальный обмен данными в формате XML 2.1.7" на вкладке загрузка выбираю файл обмена, формирую обработчики, подключаю обработку. И выдаёт ошибку:

Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта
Ошибка создания внешней обработки из файла с процедурами обработчиков событий.
Прикрепленные файлы:
9. Torin 754 19.05.21 11:11 Сейчас в теме
(5)
Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта
Ошибка создания внешней обработки из файла с процедурами обработчиков событий.


Отладка обработчиков выгрузки КД2 Обработчик: "ПослеЗагрузкиПравилОбмена"
12. Aleksandr_prof 193 19.05.21 11:22 Сейчас в теме
(9) Не то. У меня другая ошибка. У меня проблема связана с тем, что я когда нажимаю кнопку "Сформировать обработчики выгрузки", создаю внешнюю обработку в конфигураторе и вставляю текст, а затем нажимаю "проверить синтаксис" (ради интереса) - там масса ошибок. Я их игнорирую, нажимаю кнопку сохранить. И при подстановке этого модуля у меня как раз и возникает ошибка:

Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта
Ошибка создания внешней обработки из файла с процедурами обработчиков событий.
13. viki_glebova 19.05.21 11:31 Сейчас в теме
(12)не надо ничего игнорировать. Как обработка должна проинициализироваться. Закоментируйте не нужное. Надо разбираться в ошибках.
14. Aleksandr_prof 193 19.05.21 11:56 Сейчас в теме
(13) Помогите разобраться. Хотя бы начать. Вот есть ошибка в том, что переменная УзелОбменаЗагрузкаДанных не определена. Сама эта переменная является параметром конвертации. Почему она тут неопределена? Если я её закомментирую - весь алгоритм полетит к чертям.
15. viki_glebova 19.05.21 12:49 Сейчас в теме
(14)Эти правила написаны для плана обмена. В этом то и вся проблема. Попробуйте эту переменную просто определить в модуле обработки.
16. Aleksandr_prof 193 19.05.21 14:58 Сейчас в теме
(15) В общем частично удалось разобраться. Это просто что-то из ряда вон выходящее. Пришлось убить 1 день своей жизни сделать следующее: выгрузить обработчики загрузки из обработки "Универсальный обмен". Также выгрузить обработчики загрузки из КД 2.0. Эти две обработки объединить в конфигураторе. Оставшиеся ошибки править вручную.
Теперь отладка работает. Но в структуре Параметры инициализированы не все параметры. Вы не помните, как программно инициализируется эта структура?
17. viki_glebova 19.05.21 15:50 Сейчас в теме
(16)При загрузке инициализируются только параметры у которых установлен флажок "При загрузке" на закладке параметры.
18. tusv 211 19.05.21 17:28 Сейчас в теме
(16) Не той обработкой пользуетесь.
Вот код для выгрузки из УТ 10
 Процедура ВыполнитьВыгрузку()
	
	Обработка = Обработки.КонвертацияОбъектовИнформационныхБаз.Создать();
	Обработка.УзелДляОбмена = УзелОбмена;
	Обработка.ФлагРежимОтладки = Истина;
	Обработка.РежимОбмена = "Выгрузка";
	Файл = Новый Файл(ИмяФайлаПравил);
	Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена;
	Если Файл.Существует() Тогда
		Обработка.ИмяФайлаПравилОбмена = ИмяФайлаПравил;
	КонецЕсли;	
	//Загрузим из Базы данных или конфигурации, если файл правил не выбран(
	#Область ЗагрузкаФайлаПравилИзБазыДанных
	Если не Файл.Существует() Тогда
		ИмяВремФайлаПравил = ПолучитьИмяВременногоФайла("xml");
		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("ИмяПланаОбмена",УзелОбмена.Метаданные().Имя);
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПравилаДляОбменаДанными.ПравилаXML КАК ПравилаXML
		|ИЗ
		|	РегистрСведений.ПравилаДляОбменаДанными КАК ПравилаДляОбменаДанными
		|ГДЕ
		|	ПравилаДляОбменаДанными.ИмяПланаОбмена = &ИмяПланаОбмена
		|	И ПравилаДляОбменаДанными.ВидПравил = ЗНАЧЕНИЕ(Перечисление.ВидыПравилДляОбменаДанными.ПравилаКонвертацииОбъектов)
		|	И ПравилаДляОбменаДанными.ИсточникПравил = ЗНАЧЕНИЕ(Перечисление.ИсточникиПравилДляОбменаДанными.Файл)";
		
		
		Выборка = Запрос.Выполнить().Выбрать();
		Если Выборка.Следующий() Тогда
			Обработка.ИмяФайлаПравилОбмена = ИмяВремФайлаПравил;
			ДД = Выборка.ПравилаXML.Получить();
			ДД.Записать(ИмяВремФайлаПравил);
			
		Иначе
			Правило = УзелОбмена.Метаданные().Макеты.Найти("ПравилаОбмена");
		    
			Если не Правило = Неопределено Тогда
				Правило = УзелОбмена.ПолучитьОбъект().ПолучитьМакет("ПравилаОбмена");
				Правило.Записать(ИмяВремФайлаПравил);
				Обработка.ИмяФайлаПравилОбмена = ИмяВремФайлаПравил;	
			КонецЕсли;	
		КонецЕсли;
	КонецЕсли;
	#КонецОбласти
	//)
	Обработка.ЗагрузитьПравилаОбмена();
	Обработка.ВыполнитьВыгрузкуДанных();
	Строка = СтрокаСЧислом(";Выгружен %1 объект;;Выгружено %1 объекта;Выгружено %1 объектов;Выгружено %1 объекта"
			,Обработка.СчетчикВыгруженныхОбъектов()
			,ВидЧисловогоЗначения.Количественное,"L=ru");
	
	Сообщить(Строка);	
	Если Не Файл.Существует() Тогда
		УдалитьФайлы(Обработка.ИмяФайлаПравилОбмена);
	КонецЕсли;	
		
КонецПроцедуры
Показать
19. Aleksandr_prof 193 19.05.21 18:33 Сейчас в теме
(18) Где взяли код? И какой обработкой надо пользоваться?
21. tusv 211 20.05.21 09:03 Сейчас в теме
20. RimidalV 20.05.21 02:49 Сейчас в теме
Для повторной выгрузки объектов, достаточно зарегистрировать нужные объекты БД на узле обмена.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот