1. MaxS 1226 26.01.17 07:38 Сейчас в теме

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

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

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

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

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

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

...
Показать

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

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

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

...
Показать

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

Вакансии

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

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

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

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

Системный аналитик
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день