Отладка обмена в универсальном формате

1. MaxS 2826 26.01.17 07:38 Сейчас в теме
До некоторого времени для отладки правил на КД3 было всё очень удобно.
Подключаем к узлу внешнюю обработку:
Кнопка Настройки или изменить если в списке, в форме Ещё - Изменить форму, включаем скрытую вкладку "Служебная информация", на появившейся вкладке указываем нашу обработку: "Путь к менеджеру обмена".
В обработке в модуле содержится код из общего модуля МенеджерОбменаЧерезУниверсальныйФормат или правила из КД3.

В конфигураторе:
(Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска) указать параметр "РежимОтладки".
Устанавливаем в обработке точку останова, запускаем синхронизацию в универсальном формате, выполнения кода приостанавливается в обработке, отлаживаем, сохраняем, запускаем синхронизацию повторно.

Но вот в ERP 2.2.2.157, которая на БСП 2.3.4.88 зачем-то поломали этот удобный механизм.
Теперь обработка копируется во временную папку и выполнение происходит в фоновом режиме, не обращая внимание на РежимОтладки. :(
Это фича или баг? Как теперь отлаживать правила на КД3 без изменения конфигурации ?
По теме из базы знаний
Найденные решения
2. MaxS 2826 26.01.17 11:17 Сейчас в теме
Тихо сам с собой веду беседу.
Исправляется проблема доработкой модуля плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат
В режиме отладки работает "по старому алгоритму" и внешняя обработка отлаживается там, где она и расположена.
Процедура ПолучитьВерсииФорматаОбмена(ВерсииФормата) Экспорт
...
ИмяОбработки = Выборка.ПутьКМенеджеруОбмена;

Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда //Добавлено
	ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки);
	АдресОбработки  = ПоместитьВоВременноеХранилище(ДанныеОбработки);
	
	Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда
		ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, , ,
		ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
	Иначе
		ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки);
	КонецЕсли;
КонецЕсли;

МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки);

...
Показать

Ждём платформу 8.3.9 чтобы без снятия с поддержки обходить такие сюрпризы. Но есть опасения, что в борьбе с опасными действиями опять что-нибудь запретят.
DrAku1a; emorozova; zolkin_i; dexxxqqq; jif; user665340_Drichuga; A7758735; BelFegor; nafa; NECHISTb; +10 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. MaxS 2826 26.01.17 11:17 Сейчас в теме
Тихо сам с собой веду беседу.
Исправляется проблема доработкой модуля плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат
В режиме отладки работает "по старому алгоритму" и внешняя обработка отлаживается там, где она и расположена.
Процедура ПолучитьВерсииФорматаОбмена(ВерсииФормата) Экспорт
...
ИмяОбработки = Выборка.ПутьКМенеджеруОбмена;

Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда //Добавлено
	ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки);
	АдресОбработки  = ПоместитьВоВременноеХранилище(ДанныеОбработки);
	
	Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда
		ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, , ,
		ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
	Иначе
		ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки);
	КонецЕсли;
КонецЕсли;

МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки);

...
Показать

Ждём платформу 8.3.9 чтобы без снятия с поддержки обходить такие сюрпризы. Но есть опасения, что в борьбе с опасными действиями опять что-нибудь запретят.
DrAku1a; emorozova; zolkin_i; dexxxqqq; jif; user665340_Drichuga; A7758735; BelFegor; nafa; NECHISTb; +10 Ответить
3. MaxS 2826 15.02.17 16:07 Сейчас в теме
Продолжение... блога.
Есть ещё одна особенность выполнения модулей из подключенной внешней обработки.
Допустим исходная ИБ умеет обмениваться версиями формата "1.0" и "1.2", конечная "1.0", "1.2" и "1.3".
В конечной ИБ к узлу подключаем внешнюю обработку, формат в узле по умолчанию "1.0".
При синхронизации конечная база может взять ПОД из модуля внешней обработки, а потом ПКО и отложенные обработки по заполнению объектов взять из общего модуля. :(
Это наблюдается один раз. После того как версия в узле и в принимаемом файле станут одинаковыми и максимальными, будет используется только внешняя обработка.

Поэтому перед первым обменом рекомендуется снять с регистрации все объекты и обменяться несколько раз пустыми сообщениями. Потом можно массово регистрировать объекты к обмену.
5. BelFegor 24.08.17 11:11 Сейчас в теме
(3) А где взять обработку для отладки?
6. MaxS 2826 24.08.17 12:44 Сейчас в теме
(5) В конфигураторе меню Файл - Новый - внешняя обработка. Открыть модуль обработки, скопировать туда текст из общего модуля МенеджерОбменаЧерезУниверсальныйФормат или из КД 3. Сохранить обработку.
4. Parnishaykt 13.06.17 16:23 Сейчас в теме
Спасибо,за полезную инфу!
7. MaxS 2826 09.10.17 16:45 Сейчас в теме
В последних БП 3.0.52 функционал подключения внешней обработки с правилами остался, а сама обработка нигде не используется.
Это недоразумение можно исправить расширением.
Необходимо изменить функцию ВерсииФорматаОбмена в общем модуле ОбменДаннымиXDTOСервер. Вместо менеджера обмена в виде общего модуля подставить менеджер обработки, указанный в узле обмена...
user618220_bulgol; +1 Ответить
8. user618220_bulgol 16.11.17 18:06 Сейчас в теме
(7)
Огромное спасибо, это именно то, что было нужно ))
9. MaxS 2826 20.11.17 06:43 Сейчас в теме
Больше подробностей теперь в статье https://infostart.ru/public/695523/
user706505_IKargin; +1 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)