Отлаживаю правила обмена. В форме обработки "Универсальный обмен данными в формате XML" (файловая УТ 11.5.22.120, платформа 8.3.27.1786) поставил галку "Режим отладки обработчиков загрузки", нажал кнопку "Настройка отладки загрузки" и сделал всё по пунктам. Внешняя обработка при закрытии модуля объекта насыпала ошибок, но это нормально.
Нажимаю "Загрузить данные" и получаю:
"Ошибка при подключении внешней обработки отладки."
и
"Ошибка создания внешней обработки из файла с процедурами обработчиков событий"
Хорошо, иду в отладку, там нахожу экспортную процедуру "ИнициализацияВнешнейОбработкиОбработчиковСобытий(РаботаВозможна, ОбъектВладелец)" и в ней код
Ошибку вызывает строка "ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий)". То есть файл найден, но создать из него обработку не получается! При этом файл открывается как в конфигураторе, так и в режиме предприятия.
Что не так?
Нажимаю "Загрузить данные" и получаю:
"Ошибка при подключении внешней обработки отладки."
и
"Ошибка создания внешней обработки из файла с процедурами обработчиков событий"
Хорошо, иду в отладку, там нахожу экспортную процедуру "ИнициализацияВнешнейОбработкиОбработчиковСобытий(РаботаВозможна, ОбъектВладелец)" и в ней код
ИначеЕсли ФлагРежимОтладкиОбработчиков Тогда
Попытка
Попытка
Файл = Новый Файл(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
Если Файл.Существует() Тогда
ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
Иначе
ВнешняяОбработкаОбработчиковСобытий = Обработки[ИмяФайлаВнешнейОбработкиОбработчиковСобытий].Создать();
КонецЕсли;
Исключение
ВызватьИсключение
НСтр("ru = 'Ошибка при подключении внешней обработки отладки.'");
КонецПопытки;
...
ПоказатьОшибку вызывает строка "ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий)". То есть файл найден, но создать из него обработку не получается! При этом файл открывается как в конфигураторе, так и в режиме предприятия.
Что не так?
По теме из базы знаний
- Усовершенствованный редактор правил обмена КД2
- Синхронизация и обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена
- Отладка правил обмена КД2 для подсистемы БСП Обмен данными
- Конвертация данных из 1С 8.3 в 7.7 (версия КД 2.1). Перенос данных из 8.3 в 7.7. Создание в современной 1С 8.3 XML в формате КД2. Инструкции и примеры переноса данных из любой современной 1С 8.3 в устаревшую конфигурацию 1С 7.7, через Конвертацию данных 2
- Отладка правил обмена КД 2.0 с помощью обработки Универсальный обмен данными в формате XML 2.1.8.777
Найденные решения
(37) Может кому пригодится, изначально в универсальной обработке выбирал/Настройка отладки загрузки/ и тут выбирал пункт "Вызвать алгоритмы как процедуры". В таком случае сыпало ошибками в модуле внешней обработки и ошибка при получении внешней обработки из универсальной. Если выбрать пункт ниже -
"Подставлять код алгоритмов по месту вызова", то в модуле ошибок нет, Обработку внешнюю подцепляется в универсальную и код отлаживается.
"Подставлять код алгоритмов по месту вызова", то в модуле ошибок нет, Обработку внешнюю подцепляется в универсальную и код отлаживается.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(11) Я не писал обработку. Я отлаживаю правила обмена, написанные фирмой 1С. В обработку выгружены процедуры и функции правил обмена. Штатных правил обмена. Через штатный механизм штатной обработки обмена данными в формате xml
9.
Lone_Mayson
81
09.12.25 08:23
Сейчас в теме
(8) Хотя причём тут остановка по ошибке. Просто текст модуля с ошибкой.
(9) Конечно, модуль при проверке выдает ошибки. В нём присутствуют обращения к процедурам, описанным в обработке универсального обмена в формате xml.
Но я сомневаюсь, что при обращении к методу ВнешниеОбработки.Создать() происходит компиляция модуля.
Но я сомневаюсь, что при обращении к методу ВнешниеОбработки.Создать() происходит компиляция модуля.
вместо
нужно:
Так попробуй.
Такую проблему описывали, возможно Вам поможет.
ВнешняяОбработкаОбработчиковСобытий = Обработки[ИмяФайлаВнешнейОбработкиОбработчиковСобытий].Создать();нужно:
ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий, Ложь);Так попробуй.
Такую проблему описывали, возможно Вам поможет.
(24) Я же в топике написал, что именно на строке у меня попытка и завершается по исключению. "Ложь" вторыми параметром пробовал ставить, не помогает.
ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
27.
RoyFincher
4
09.12.25 15:43
Сейчас в теме
(25) Сделай изменение обработки в конфигурации через расширение, чтобы не использовать внешнюю.
Тут только надо смотреть код в файле. Название этой внешней обработки. И потом правильное название вставить в ВнешниеОбработки. Может кто писал обозвал Внешняя обработка. И есть предположение, это не точно,но кто знает. Обработка писалась на большей версии? Это как базы загружает, более старшую версию, там нужно галочки поставить при загрузке.
(30) Обработка создана по инструкции, доступной по кнопке "Настройка отладки загрузки..." внизу окна универсального обмена данными в формате xml. Это по сути код, написанный при создании правил обмена. И, конечно, в нем есть ошибки - для этого и нужна отладка. Если б всё работало как надо, зачем бы я полез в отладку вообще? )
Название у файла "ОтладкаПроцедур.epf" и он доступен, эска его видит, раз попадает вообще в эту ветку алгоритма - проверка на существование файла происходит в коде на две строчки выше.
КД2 крутится на той же платформе, на которой присходит отладка.
Название у файла "ОтладкаПроцедур.epf" и он доступен, эска его видит, раз попадает вообще в эту ветку алгоритма - проверка на существование файла происходит в коде на две строчки выше.
КД2 крутится на той же платформе, на которой присходит отладка.
33.
RoyFincher
4
10.12.25 10:47
Сейчас в теме
(32) Попробуй эту обработку, не помню менял ли что-то в коде и был ли какой-то результат, но возможно поможет.
Прикрепленные файлы:
V8Exchan83.epf
(34) В итоге всё свелось к ошибкам во внешней обработке, которую выгружает сама эска. Насколько я понял, при создании внешней обработки в ней остаются обращения к процедурам и функциям из обработки "Универсальный обмен данными в формате XML". Затем, при попытке её подключения, происходит предварительная компиляция, которая воспринимает эти обращения как ошибки в синтаксисе. Возможно, внешняя обработка компилируется вне контекста универсального обмена - тут уж я не знаю как оно внутри организовано, но если эти обращения закомментировать, то внешняя обработка подключается, но я там не стал уже дальше разбираться.
(34) пишу в обработчике который хочу отладить, прямо в правилах " а = 1/0", ловлю ошибку в отладке, и там уже можно что-то проанализировать в табло, можно и код в расширение затащить и там его подредачить, обычно этого хватает. Костыль конечно, но мне этого хватает
(37) Может кому пригодится, изначально в универсальной обработке выбирал/Настройка отладки загрузки/ и тут выбирал пункт "Вызвать алгоритмы как процедуры". В таком случае сыпало ошибками в модуле внешней обработки и ошибка при получении внешней обработки из универсальной. Если выбрать пункт ниже -
"Подставлять код алгоритмов по месту вызова", то в модуле ошибок нет, Обработку внешнюю подцепляется в универсальную и код отлаживается.
"Подставлять код алгоритмов по месту вызова", то в модуле ошибок нет, Обработку внешнюю подцепляется в универсальную и код отлаживается.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот