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