Отладка обмена в универсальном формате
До некоторого времени для отладки правил на КД3 было всё очень удобно.
Подключаем к узлу внешнюю обработку:
Кнопка Настройки или изменить если в списке, в форме Ещё - Изменить форму, включаем скрытую вкладку "Служебная информация", на появившейся вкладке указываем нашу обработку: "Путь к менеджеру обмена".
В обработке в модуле содержится код из общего модуля МенеджерОбменаЧерезУниверсальныйФормат или правила из КД3.
В конфигураторе:
(Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска) указать параметр "РежимОтладки".
Устанавливаем в обработке точку останова, запускаем синхронизацию в универсальном формате, выполнения кода приостанавливается в обработке, отлаживаем, сохраняем, запускаем синхронизацию повторно.
Но вот в ERP 2.2.2.157, которая на БСП 2.3.4.88 зачем-то поломали этот удобный механизм.
Теперь обработка копируется во временную папку и выполнение происходит в фоновом режиме, не обращая внимание на РежимОтладки. :(
Это фича или баг? Как теперь отлаживать правила на КД3 без изменения конфигурации ?
Подключаем к узлу внешнюю обработку:
Кнопка Настройки или изменить если в списке, в форме Ещё - Изменить форму, включаем скрытую вкладку "Служебная информация", на появившейся вкладке указываем нашу обработку: "Путь к менеджеру обмена".
В обработке в модуле содержится код из общего модуля МенеджерОбменаЧерезУниверсальныйФормат или правила из КД3.
В конфигураторе:
(Сервис -> Параметры -> Запуск 1С:Предприятия -> Параметр запуска) указать параметр "РежимОтладки".
Устанавливаем в обработке точку останова, запускаем синхронизацию в универсальном формате, выполнения кода приостанавливается в обработке, отлаживаем, сохраняем, запускаем синхронизацию повторно.
Но вот в ERP 2.2.2.157, которая на БСП 2.3.4.88 зачем-то поломали этот удобный механизм.
Теперь обработка копируется во временную папку и выполнение происходит в фоновом режиме, не обращая внимание на РежимОтладки. :(
Это фича или баг? Как теперь отлаживать правила на КД3 без изменения конфигурации ?
По теме из базы знаний
- Синхронизация и обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена
- 1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена)
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Сохранение модуля менеджера обмена через универсальный формат. КД 3
- Анализатор проблем выгрузки данных в универсальном формате EnterpriseData
Найденные решения
Тихо сам с собой веду беседу.
Исправляется проблема доработкой модуля плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат
В режиме отладки работает "по старому алгоритму" и внешняя обработка отлаживается там, где она и расположена.
Ждём платформу 8.3.9 чтобы без снятия с поддержки обходить такие сюрпризы. Но есть опасения, что в борьбе с опасными действиями опять что-нибудь запретят.
Исправляется проблема доработкой модуля плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат
В режиме отладки работает "по старому алгоритму" и внешняя обработка отлаживается там, где она и расположена.
Процедура ПолучитьВерсииФорматаОбмена(ВерсииФормата) Экспорт
...
ИмяОбработки = Выборка.ПутьКМенеджеруОбмена;
Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда //Добавлено
ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки);
АдресОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки);
Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда
ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, , ,
ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
Иначе
ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки);
КонецЕсли;
КонецЕсли;
МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки);
...
ПоказатьЖдём платформу 8.3.9 чтобы без снятия с поддержки обходить такие сюрпризы. Но есть опасения, что в борьбе с опасными действиями опять что-нибудь запретят.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Тихо сам с собой веду беседу.
Исправляется проблема доработкой модуля плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат
В режиме отладки работает "по старому алгоритму" и внешняя обработка отлаживается там, где она и расположена.
Ждём платформу 8.3.9 чтобы без снятия с поддержки обходить такие сюрпризы. Но есть опасения, что в борьбе с опасными действиями опять что-нибудь запретят.
Исправляется проблема доработкой модуля плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат
В режиме отладки работает "по старому алгоритму" и внешняя обработка отлаживается там, где она и расположена.
Процедура ПолучитьВерсииФорматаОбмена(ВерсииФормата) Экспорт
...
ИмяОбработки = Выборка.ПутьКМенеджеруОбмена;
Если НЕ ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда //Добавлено
ДанныеОбработки = Новый ДвоичныеДанные(ИмяОбработки);
АдресОбработки = ПоместитьВоВременноеХранилище(ДанныеОбработки);
Если ОбщегоНазначения.ЕстьЗащитаОтОпасныхДействий() Тогда
ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки, , ,
ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
Иначе
ИмяОбработки = ВнешниеОбработки.Подключить(АдресОбработки);
КонецЕсли;
КонецЕсли;
МенеджерОбмена = ВнешниеОбработки.Создать(ИмяОбработки);
...
ПоказатьЖдём платформу 8.3.9 чтобы без снятия с поддержки обходить такие сюрпризы. Но есть опасения, что в борьбе с опасными действиями опять что-нибудь запретят.
Продолжение... блога.
Есть ещё одна особенность выполнения модулей из подключенной внешней обработки.
Допустим исходная ИБ умеет обмениваться версиями формата "1.0" и "1.2", конечная "1.0", "1.2" и "1.3".
В конечной ИБ к узлу подключаем внешнюю обработку, формат в узле по умолчанию "1.0".
При синхронизации конечная база может взять ПОД из модуля внешней обработки, а потом ПКО и отложенные обработки по заполнению объектов взять из общего модуля. :(
Это наблюдается один раз. После того как версия в узле и в принимаемом файле станут одинаковыми и максимальными, будет используется только внешняя обработка.
Поэтому перед первым обменом рекомендуется снять с регистрации все объекты и обменяться несколько раз пустыми сообщениями. Потом можно массово регистрировать объекты к обмену.
Есть ещё одна особенность выполнения модулей из подключенной внешней обработки.
Допустим исходная ИБ умеет обмениваться версиями формата "1.0" и "1.2", конечная "1.0", "1.2" и "1.3".
В конечной ИБ к узлу подключаем внешнюю обработку, формат в узле по умолчанию "1.0".
При синхронизации конечная база может взять ПОД из модуля внешней обработки, а потом ПКО и отложенные обработки по заполнению объектов взять из общего модуля. :(
Это наблюдается один раз. После того как версия в узле и в принимаемом файле станут одинаковыми и максимальными, будет используется только внешняя обработка.
Поэтому перед первым обменом рекомендуется снять с регистрации все объекты и обменяться несколько раз пустыми сообщениями. Потом можно массово регистрировать объекты к обмену.
В последних БП 3.0.52 функционал подключения внешней обработки с правилами остался, а сама обработка нигде не используется.
Это недоразумение можно исправить расширением.
Необходимо изменить функцию ВерсииФорматаОбмена в общем модуле ОбменДаннымиXDTOСервер. Вместо менеджера обмена в виде общего модуля подставить менеджер обработки, указанный в узле обмена...
Это недоразумение можно исправить расширением.
Необходимо изменить функцию ВерсииФорматаОбмена в общем модуле ОбменДаннымиXDTOСервер. Вместо менеджера обмена в виде общего модуля подставить менеджер обработки, указанный в узле обмена...
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот