Необходимо выполнить отладку алгоритма загрузки данных в УТ 10.3. Обмен происходит с БП 3.0 через файлы. В УТ обмен находится в "Сервис - обмен данными с продуктами на платформе 8.2 - обмены данными".
И второй вопрос: как можно повторно отладить загрузку, если данные успешно загружены? Вижу только вариант такой: восстановление из резервной копии. А хотелось бы как-то изменить факт загрузки и дату последней успешной загрузки.
(2) Первая статья не подходит, потому что мне нужна отладка загрузки. Вторая статья тоже не подходит. У меня в УТ нет регистра "Правила для обмена данными"...
(6) Выполнять отладку - для целей разработки, исправления ошибок, оптимизации.
Повторно отладить - чтобы повторно отладить. Ведь если сообщение загружено ранее, то эти документы уже могут быть в базе и может вообще не пройди загрузка. Получается нужно находить загруженные объекты, удалять их и загружать заново (для отладки).
Вообще пытаюсь сделать так. В обработке "Универсальный обмен данными в формате XML 2.1.7" на вкладке загрузка выбираю файл обмена, формирую обработчики, подключаю обработку. И выдаёт ошибку:
Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта
Ошибка создания внешней обработки из файла с процедурами обработчиков событий.
Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта
Ошибка создания внешней обработки из файла с процедурами обработчиков событий.
12.
Aleksandr_prof
19319.05.21 11:22 Сейчас в теме
(9) Не то. У меня другая ошибка. У меня проблема связана с тем, что я когда нажимаю кнопку "Сформировать обработчики выгрузки", создаю внешнюю обработку в конфигураторе и вставляю текст, а затем нажимаю "проверить синтаксис" (ради интереса) - там масса ошибок. Я их игнорирую, нажимаю кнопку сохранить. И при подстановке этого модуля у меня как раз и возникает ошибка:
Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта
Ошибка создания внешней обработки из файла с процедурами обработчиков событий.
14.
Aleksandr_prof
19319.05.21 11:56 Сейчас в теме
(13) Помогите разобраться. Хотя бы начать. Вот есть ошибка в том, что переменная УзелОбменаЗагрузкаДанных не определена. Сама эта переменная является параметром конвертации. Почему она тут неопределена? Если я её закомментирую - весь алгоритм полетит к чертям.
16.
Aleksandr_prof
19319.05.21 14:58 Сейчас в теме
(15) В общем частично удалось разобраться. Это просто что-то из ряда вон выходящее. Пришлось убить 1 день своей жизни сделать следующее: выгрузить обработчики загрузки из обработки "Универсальный обмен". Также выгрузить обработчики загрузки из КД 2.0. Эти две обработки объединить в конфигураторе. Оставшиеся ошибки править вручную.
Теперь отладка работает. Но в структуре Параметры инициализированы не все параметры. Вы не помните, как программно инициализируется эта структура?
(16) Не той обработкой пользуетесь.
Вот код для выгрузки из УТ 10
Процедура ВыполнитьВыгрузку()
Обработка = Обработки.КонвертацияОбъектовИнформационныхБаз.Создать();
Обработка.УзелДляОбмена = УзелОбмена;
Обработка.ФлагРежимОтладки = Истина;
Обработка.РежимОбмена = "Выгрузка";
Файл = Новый Файл(ИмяФайлаПравил);
Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена;
Если Файл.Существует() Тогда
Обработка.ИмяФайлаПравилОбмена = ИмяФайлаПравил;
КонецЕсли;
//Загрузим из Базы данных или конфигурации, если файл правил не выбран(
#Область ЗагрузкаФайлаПравилИзБазыДанных
Если не Файл.Существует() Тогда
ИмяВремФайлаПравил = ПолучитьИмяВременногоФайла("xml");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ИмяПланаОбмена",УзелОбмена.Метаданные().Имя);
Запрос.Текст =
"ВЫБРАТЬ
| ПравилаДляОбменаДанными.ПравилаXML КАК ПравилаXML
|ИЗ
| РегистрСведений.ПравилаДляОбменаДанными КАК ПравилаДляОбменаДанными
|ГДЕ
| ПравилаДляОбменаДанными.ИмяПланаОбмена = &ИмяПланаОбмена
| И ПравилаДляОбменаДанными.ВидПравил = ЗНАЧЕНИЕ(Перечисление.ВидыПравилДляОбменаДанными.ПравилаКонвертацииОбъектов)
| И ПравилаДляОбменаДанными.ИсточникПравил = ЗНАЧЕНИЕ(Перечисление.ИсточникиПравилДляОбменаДанными.Файл)";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Обработка.ИмяФайлаПравилОбмена = ИмяВремФайлаПравил;
ДД = Выборка.ПравилаXML.Получить();
ДД.Записать(ИмяВремФайлаПравил);
Иначе
Правило = УзелОбмена.Метаданные().Макеты.Найти("ПравилаОбмена");
Если не Правило = Неопределено Тогда
Правило = УзелОбмена.ПолучитьОбъект().ПолучитьМакет("ПравилаОбмена");
Правило.Записать(ИмяВремФайлаПравил);
Обработка.ИмяФайлаПравилОбмена = ИмяВремФайлаПравил;
КонецЕсли;
КонецЕсли;
КонецЕсли;
#КонецОбласти
//)
Обработка.ЗагрузитьПравилаОбмена();
Обработка.ВыполнитьВыгрузкуДанных();
Строка = СтрокаСЧислом(";Выгружен %1 объект;;Выгружено %1 объекта;Выгружено %1 объектов;Выгружено %1 объекта"
,Обработка.СчетчикВыгруженныхОбъектов()
,ВидЧисловогоЗначения.Количественное,"L=ru");
Сообщить(Строка);
Если Не Файл.Существует() Тогда
УдалитьФайлы(Обработка.ИмяФайлаПравилОбмена);
КонецЕсли;
КонецПроцедуры