Отладка обмена КД2

1. saszj 14 08.12.25 13:57 Сейчас в теме
Отлаживаю правила обмена. В форме обработки "Универсальный обмен данными в формате XML" (файловая УТ 11.5.22.120, платформа 8.3.27.1786) поставил галку "Режим отладки обработчиков загрузки", нажал кнопку "Настройка отладки загрузки" и сделал всё по пунктам. Внешняя обработка при закрытии модуля объекта насыпала ошибок, но это нормально.

Нажимаю "Загрузить данные" и получаю:
"Ошибка при подключении внешней обработки отладки."
и
"Ошибка создания внешней обработки из файла с процедурами обработчиков событий"

Хорошо, иду в отладку, там нахожу экспортную процедуру "ИнициализацияВнешнейОбработкиОбработчиковСобытий(РаботаВозможна, ОбъектВладелец)" и в ней код
	ИначеЕсли ФлагРежимОтладкиОбработчиков Тогда
		
		Попытка
			
			Попытка
				
				Файл = Новый Файл(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
				Если Файл.Существует() Тогда
					ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
				Иначе
					ВнешняяОбработкаОбработчиковСобытий = Обработки[ИмяФайлаВнешнейОбработкиОбработчиковСобытий].Создать();
				КонецЕсли;
				
			Исключение
				
				ВызватьИсключение
					НСтр("ru = 'Ошибка при подключении внешней обработки отладки.'");
				
			КонецПопытки;
...
Показать

Ошибку вызывает строка "ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий)". То есть файл найден, но создать из него обработку не получается! При этом файл открывается как в конфигураторе, так и в режиме предприятия.
Что не так?
По теме из базы знаний
Найденные решения
38. Artur66 12.08.26 14:16 Сейчас в теме
(37) Может кому пригодится, изначально в универсальной обработке выбирал/Настройка отладки загрузки/ и тут выбирал пункт "Вызвать алгоритмы как процедуры". В таком случае сыпало ошибками в модуле внешней обработки и ошибка при получении внешней обработки из универсальной. Если выбрать пункт ниже -
"Подставлять код алгоритмов по месту вызова", то в модуле ошибок нет, Обработку внешнюю подцепляется в универсальную и код отлаживается.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 08.12.25 14:24 Сейчас в теме
(1) Может файл на клиенте, а код на сервере его ищет? И ещё какую проблему пытаетесь решить? Сколько ни писал правил этим режимом не пользовался.
3. saszj 14 08.12.25 14:28 Сейчас в теме
(2) Допиливаю правила переноса из ТиС9.2 в УТшку. Нерабочие они поставляются. Приходится отлаживать.
Пробовал и режим и "На клиенте" и "На сервере". Без разницы. На одной и той же строке валится.
4. RustamZz 08.12.25 14:39 Сейчас в теме
(3) Попробуйте еще отключить для пользователя Защиту от опасных действий. Может из-за нее.
5. saszj 14 08.12.25 15:10 Сейчас в теме
(4) отключил, еще когда создал пользователя "Администратор" )
6. Graf2111 08.12.25 22:49 Сейчас в теме
(1) Добрый день. Может просто пройтись отладчиком и посмотреть, где проблема?
7. saszj 14 09.12.25 06:13 Сейчас в теме
(6) Я же и прохожу отладчиком. Строку с проблемой нашел, но не понимаю почему на ней возникает ошибка.
11. Graf2111 09.12.25 09:53 Сейчас в теме
(7)
(1) Так когда писал обработку, там обращался к процедурам или функциям которые на общем модуле? Возможно параметры или название отличается.
14. saszj 14 09.12.25 10:03 Сейчас в теме
(11) Я не писал обработку. Я отлаживаю правила обмена, написанные фирмой 1С. В обработку выгружены процедуры и функции правил обмена. Штатных правил обмена. Через штатный механизм штатной обработки обмена данными в формате xml
8. Lone_Mayson 81 09.12.25 07:49 Сейчас в теме
Остановка по ошибке? Может, текст модуля с ошибкой.
9. Lone_Mayson 81 09.12.25 08:23 Сейчас в теме
(8) Хотя причём тут остановка по ошибке. Просто текст модуля с ошибкой.
10. saszj 14 09.12.25 09:17 Сейчас в теме
(9) Конечно, модуль при проверке выдает ошибки. В нём присутствуют обращения к процедурам, описанным в обработке универсального обмена в формате xml.
Но я сомневаюсь, что при обращении к методу ВнешниеОбработки.Создать() происходит компиляция модуля.
12. Graf2111 09.12.25 09:55 Сейчас в теме
В отладке задал параметр, чтоб посмотреть как он меняется и куда идёт?
13. saszj 14 09.12.25 10:00 Сейчас в теме
15. Graf2111 09.12.25 10:09 Сейчас в теме
(14)
(13) Вы в отладчике табло открываете?
17. saszj 14 09.12.25 11:28 Сейчас в теме
19. Graf2111 09.12.25 11:47 Сейчас в теме
(17) ну в коде скопируйте переменную и вставьте в табло и посмотрите ее действие.
21. saszj 14 09.12.25 12:41 Сейчас в теме
(19) Да о какой переменной речь-то?
16. RoyFincher 4 09.12.25 11:27 Сейчас в теме
Если не секрет, какой текст ошибки?
18. saszj 14 09.12.25 11:45 Сейчас в теме
(16) ОписаниеОшибки() ничего не возвращает. В режиме предприятия выводится два сообщения, указанные в первом сообщении темы
20. RoyFincher 4 09.12.25 12:18 Сейчас в теме
22. saszj 14 09.12.25 12:42 Сейчас в теме
(20) Изменился код с тех пор. Заглушка на внешнюю обработку отсутствует. Всё сделано как и должно быть.
23. Graf2111 09.12.25 13:18 Сейчас в теме
(21) решил проблему?
(22)
26. saszj 14 09.12.25 15:23 Сейчас в теме
(23) Нет, проблема не решена
24. Graf2111 09.12.25 13:19 Сейчас в теме
вместо
ВнешняяОбработкаОбработчиковСобытий = Обработки[ИмяФайлаВнешнейОбработкиОбработчиковСобытий].Создать();


нужно:
ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий, Ложь);



Так попробуй.
Такую проблему описывали, возможно Вам поможет.
25. saszj 14 09.12.25 15:22 Сейчас в теме
(24) Я же в топике написал, что именно на строке
ВнешняяОбработкаОбработчиковСобытий = ВнешниеОбработки.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий);
у меня попытка и завершается по исключению. "Ложь" вторыми параметром пробовал ставить, не помогает.
27. RoyFincher 4 09.12.25 15:43 Сейчас в теме
(25) Сделай изменение обработки в конфигурации через расширение, чтобы не использовать внешнюю.
28. Graf2111 09.12.25 15:45 Сейчас в теме
(25) значит он не видит ВнешниеОбработки. Названия не видит.
29. saszj 14 09.12.25 16:14 Сейчас в теме
(28) И как это исправить?
30. Graf2111 09.12.25 17:08 Сейчас в теме
Тут только надо смотреть код в файле. Название этой внешней обработки. И потом правильное название вставить в ВнешниеОбработки. Может кто писал обозвал Внешняя обработка. И есть предположение, это не точно,но кто знает. Обработка писалась на большей версии? Это как базы загружает, более старшую версию, там нужно галочки поставить при загрузке.
32. saszj 14 10.12.25 04:58 Сейчас в теме
(30) Обработка создана по инструкции, доступной по кнопке "Настройка отладки загрузки..." внизу окна универсального обмена данными в формате xml. Это по сути код, написанный при создании правил обмена. И, конечно, в нем есть ошибки - для этого и нужна отладка. Если б всё работало как надо, зачем бы я полез в отладку вообще? )
Название у файла "ОтладкаПроцедур.epf" и он доступен, эска его видит, раз попадает вообще в эту ветку алгоритма - проверка на существование файла происходит в коде на две строчки выше.
КД2 крутится на той же платформе, на которой присходит отладка.
33. RoyFincher 4 10.12.25 10:47 Сейчас в теме
(32) Попробуй эту обработку, не помню менял ли что-то в коде и был ли какой-то результат, но возможно поможет.
Прикрепленные файлы:
V8Exchan83.epf
34. natachka 24 15.04.26 10:38 Сейчас в теме
(32) Здравствуйте! Удалось ли решить данную проблему?
35. saszj 14 16.04.26 08:03 Сейчас в теме
(34) В итоге всё свелось к ошибкам во внешней обработке, которую выгружает сама эска. Насколько я понял, при создании внешней обработки в ней остаются обращения к процедурам и функциям из обработки "Универсальный обмен данными в формате XML". Затем, при попытке её подключения, происходит предварительная компиляция, которая воспринимает эти обращения как ошибки в синтаксисе. Возможно, внешняя обработка компилируется вне контекста универсального обмена - тут уж я не знаю как оно внутри организовано, но если эти обращения закомментировать, то внешняя обработка подключается, но я там не стал уже дальше разбираться.
36. Ravil_ 16.04.26 11:28 Сейчас в теме
(34) пишу в обработчике который хочу отладить, прямо в правилах " а = 1/0", ловлю ошибку в отладке, и там уже можно что-то проанализировать в табло, можно и код в расширение затащить и там его подредачить, обычно этого хватает. Костыль конечно, но мне этого хватает
31. Graf2111 09.12.25 17:18 Сейчас в теме
(25)
(29) = ВнешняяОбработка.Создать(ИмяФайлаВнешнейОбработкиОбработчиковСобытий).
Как то так, если ее назвали ВнешняяОбработка.
37. Artur66 12.08.26 09:21 Сейчас в теме
Столкнулся с той же проблемой, решение пока не нашел.
Прикрепленные файлы:
38. Artur66 12.08.26 14:16 Сейчас в теме
(37) Может кому пригодится, изначально в универсальной обработке выбирал/Настройка отладки загрузки/ и тут выбирал пункт "Вызвать алгоритмы как процедуры". В таком случае сыпало ошибками в модуле внешней обработки и ошибка при получении внешней обработки из универсальной. Если выбрать пункт ниже -
"Подставлять код алгоритмов по месту вызова", то в модуле ошибок нет, Обработку внешнюю подцепляется в универсальную и код отлаживается.
Для отправки сообщения требуется регистрация/авторизация

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