Отладка правил обмена КД2 для подсистемы БСП Обмен данными

Публикация № 1066730

Разработка - Обмен данными 1С - Перенос данных из 1C8 в 1C8

Уже давно нельзя отлаживать правила обмена при помощи внешних файлов. Попробуем исправить это.

В обработку КонвертацияОбъектовИнформационныхБаз в функцию ИнициализироватьОбработки разработчики любезно добавили кусочек кода:

	Если ОтладкаОбработчиковВыгрузки Или ОтладкаОбработчиковЗагрузки Тогда 
		ВызватьИсключение
			НСтр("ru = 'Внешняя обработка отладки, загружаемая из файла на диске, не поддерживается.'");
	КонецЕсли;

Это говорит нам, что нельзя использовать отладку через внешние обработки, а нужно использовать расширение конфигурации.

Давайте его сделаем. Создадим новое расширение с префиксом Обмен_

Вынесем в расширение функцию ИнициализироватьОбработки из модуля объекта обработки КонвертацияОбъектовИнформационныхБа:

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

Здесь мы подключаем обработки отладки выгрузки и загрузки из обработок конфигурации. В реквизитах ИмяФайлаВнешнейОбработкиОтладкиВыгрузки и ИмяФайлаВнешнейОбработкиОтладкиЗагрузки теперь нужно хранить не путь к обработкам, а их имена в конфигурации. Для этого вынесем в расширение форму ЗагрузитьПравилаСинхронизацииДанных регистра сведений ПравилаДляОбменаДанными.

В форме поменяем заголовки у реквизитов:

 

Для того, чтобы не придумывать имена самостоятельно вынесем процедуру формы ПриСозданииНаСервере в расширение и в ней создадим процедуры автоматически формирующие наименования используя имя плана обмена:

&НаСервере
Процедура Обмен_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	
	АвтоНаименованиеОбработкиВыгрузки();
	АвтоНаименованиеОбработкиЗагрузки();
	
КонецПроцедуры


&НаСервере
Процедура АвтоНаименованиеОбработкиВыгрузки()
	
	Элементы.ВнешняяОбработкаДляОтладкиВыгрузки.СписокВыбора.Очистить();
	
	СтрокаНаименования = "ОтладкаВыгрузки_" + ИмяПланаОбмена;
	
	Элементы.ВнешняяОбработкаДляОтладкиВыгрузки.СписокВыбора.Добавить(СтрокаНаименования);
	
КонецПроцедуры

&НаСервере
Процедура АвтоНаименованиеОбработкиЗагрузки()
	
	Элементы.ВнешняяОбработкаДляОтладкиЗагрузки.СписокВыбора.Очистить();
	
	СтрокаНаименование = "ОтладкаЗагрузки_" + ИмяПланаОбмена;
	
	Элементы.ВнешняяОбработкаДляОтладкиЗагрузки.СписокВыбора.Добавить(СтрокаНаименование);
	
КонецПроцедуры

Теперь нам нужно изменить поведение полей ВнешняяОбработкаДляОтладкиВыгрузки и ВнешняяОбработкаДляОтладкиЗагрузки в свойствах полей нужно установить КнопкаВыпадающегоСписка = Да, КнопкаВыбора = Авто и переопределить событие Началовыбора.

Для события НачалоВыбора мы сделаем заглушку и не не будем предлагать выбрать файл из каталога на диске:

&НаКлиенте
Процедура Обмен_ВнешняяОбработкаДляОтладкиВыгрузкиНачалоВыбораВместо(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура Обмен_ВнешняяОбработкаДляОтладкиЗагрузкиНачалоВыбораВместо(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	Возврат;
	
КонецПроцедуры

Теперь в полях можно выбрать имена обработок сформированные автоматически:

Завершающим этапом в расширении нужно создать две обработки с именами из полей формы.

Для отладки правил, их нужно скопировать в модуль объекта соответствующей обработки и выставить точки останова.

Тестировалось Платформа 8.3.13.1690 БСП3.0.2.

Скачать файлы

Наименование Файл Версия Размер
Пример в виде расширения:

.cfe 20,54Kb
14
.cfe 20,54Kb 14 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. fenixnow 180 27.05.19 11:08 Сейчас в теме
3. ret 53 28.05.19 10:21 Сейчас в теме
4. json 2788 28.05.19 10:46 Сейчас в теме
Автор расписал что да как, а не просто выложил какое-то расширение, которое будешь скачивать как кота в мешке.
За это плюс
DrAku1a; mityushov.vv; Raskad; nikivr; +4 Ответить
5. gilan 17.09.19 12:21 Сейчас в теме
Скачал и установил расширение.
В модуль обработки "ОтладкаЗагрузки__ДемоОбменСБиблиотекойСтандартныхПодсистем"­ скопировал.код, сгенерированный обработкой "Универсальный обмен данными в формате XML".
Точку останова в отладчике поставил.
Загружаю файл обработкой "Универсальный обмен данными в формате XML" - не останавливается.
6. Sqeezer063 18.09.20 16:11 Сейчас в теме
В коде:

Если ИмяПрофиляБезопасности = Неопределено Тогда
ОбработкаВыгрузки = Обработки[ИмяФайлаВнешнейОбработкиОтладкиВыгрузки].Создать();
КонецЕсли;

ОбработкаВыгрузки.ПодключитьОбработкуДляОтладки(ЭтотОбъект);

мы получили обработку выгрузки, а далее происходит обращение к методу обработки, который не расписан.

Как итог получаем ошибку.
7. user754740 2 17.01.21 15:01 Сейчас в теме
(6) Есть этот метод обработки. Модуль обработки нужно формировать в КД 2.1.8: Настройка правил обмена -- Отладка обработчиков -- Сформировать модуль обработчиков выгрузки (или Сформировать модуль обработчиков загрузки). При формировании модулей КД может спросить разрешение отключить режим совместимости. Нужно согласиться. На уровне конвертации на закладке Дополнительно поле "Режим совместимости" будет автоматически выставлено в "Не использовать".
8. user754740 2 17.01.21 15:02 Сейчас в теме
(5) Вы не там формируете модуль внешней обработки. Как это делать, написал в своем посте №7
Оставьте свое сообщение

См. также

Конвертация данных 2. Использование исходящих и входящих данных. Свойство "Получить из входящих данных"

Обмен данными 1С Перенос данных из 1C8 в 1C8 v8 КД Абонемент ($m)

Разработка правил обмена с использованием исходящих и входящих данных. В качестве примера рассмотрена реальная задача конвертации номенклатуры через регистр сопоставления номенклатур. Статья предназначена в первую очередь для тех, кто только начинает осваивать Конвертацию данных.

17.02.2020    17814    Drivingblind    31    

Перенос НМА и ОС при реорганизации с помощью документа "Ввод остатков" в Бухгалтерии 3

Учет ОС и НМА Бухгалтерский учет Перенос данных из 1C8 в 1C8 v8 v8::БУ БП3.0 БУ Абонемент ($m)

Цель материала – предложить методику автоматизации переноса остатков в конфигурации «Бухгалтерия предприятия, редакция 3.0» с помощью программного создания документа «Ввод остатков».

1 стартмани

17.10.2019    5892    muzipov    0    

[EnterpriseData] Антисвертка характеристик номенклатуры при выгрузке в Бухгалтерию

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 v8::ПВХ КД УНФ БП3.0 Россия БУ Абонемент ($m)

Рассмотрена выгрузка каждой пары значений Номенклатура - Характерстика из УНФ 1.6 в отдельную номенклатуру в Бухгалтерию 3.0 путём доработки правил обмена в формате EnterpriseData.

1 стартмани

27.03.2019    4992    nforce    6    

Обмен без правил. От простого к сложному

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Абонемент ($m)

Пишем обмен с нуля, разбираемя с разными способами сериализации, учимся редактировать XML документы, создаем XDTO и Web service, осваиваем Script variant - English.

1 стартмани

16.01.2019    25533    nbeliaev    26    

Способы оптимизации переносов данных

Перенос данных из 1C8 в 1C8 Интеграция v8 КД Абонемент ($m)

Хочу рассказать вам про способы оптимизации разработки правил обмена в программе «Конвертация данных» второй редакции. Казалось бы, про эту программу и разработку в ней правил конвертации уже сказано все, что можно. Появились уже более современные и быстрые технологии. Почему же все еще она? Дело в том, что «Конвертация данных» второй редакции все еще актуальна для огромного круга задач. Она имеет очень широкую функциональность и позволяет реализовывать сложные алгоритмы. Годы идут, а люди продолжают ей пользоваться и у них возникает много вопросов по этой программе. Возможно, в будущем вы тоже будете заниматься такими проектами и столкнетесь с задачами, похожими на те, про которые я собираюсь рассказать. Мне хочется вам в этом помочь.

1 стартмани

02.08.2018    17808    primat    7    

Конвертация данных 2.1. Как реквизит справочника конвертировать в регистр сведений?

Перенос данных из 1C8 в 1C8 v8 КД Россия Абонемент ($m)

В публикации рассмотрен пример конвертации реквизита справочника в регистр сведений.

2 стартмани

28.06.2018    14498    wowik    0    

Организация обмена с базой филиала (розничного магазина) в торговой сети через XML (универсальный обмен)

Обмен через XML Перенос данных из 1C8 в 1C8 Розничная торговля Розничная торговля v8 КД УТ11 Розничная и сетевая торговля (FMCG) Абонемент ($m)

В статье по шагам рассматривается создание обмена между центральной базой и базами филиалов на базе конфигурации УТ 11. Для решения поставленной задачи было решено не использовать РИБ, т.к. требуется односторонний обмен ограниченным набором данных, к тому же по определенным условиям. Обмен реализован на основе типовой синхронизации на основе универсального обмена в формате EnterpriseData. Данная публикация может быть полезна внедренцам, которые работают с торговыми сетями, в том числе по модели франчайзинга.

1 стартмани

26.02.2018    37454    Kutuzov    18    

Пример создания в КД 2.1 правил выгрузки данных регистра «Лицевые счета работников» из ЗУП 2.5 в справочник «Банковские счета» БП 3.0. Подробно, ясно и просто.

Перенос данных из 1C8 в 1C8 v8 КД Абонемент ($m)

Эту статью я написал для тех, кто хочет максимально быстро и эффективно научиться создавать правила выгрузки данных в конфигурации 1С Конвертация данных редакции 2.1. Разберем практическую несложную задачу создания правил выгрузки данных регистра «Лицевые счета работников организаций» ЗУП 2.5 в справочник «Банковские счета» БП КОРП 3.0. Поделюсь некоторыми эффективными приемами: ВыгрузкаПоПравилу(…), работа с глобальными параметрами конвертации и передача их с Источника в Приемник методом ПередатьОдинПараметрВПриемник(…), приемы ускорения и оптимизации конвертации данных. Кому эта статья покажется простой и/или захочется продолжения: рекомендую другую мою публикацию, в которой разобран более сложный пример : https://infostart.ru/public/695916/

1 стартмани

17.11.2017    37896    RailMen    1    

Механизмы и транспорт обмена данными. Пример создания в КД 2.1 правил обмена данными ЗУП 2.5 -> БП 3.0. Выгрузка ведомостей и банковских счетов. Передача параметров обмена из Источника в Приемник. ВыгрузитьПоПравилу(). ПередатьОдинПараметрВПриемник().

Обмен через XML Перенос данных из 1C8 в 1C8 v8 ЗУП2.5 КД БП3.0 Абонемент ($m)

В статье рассказываю: 1) о механизмах и транспорте обмена данными, где одной из сторон обмена выступает конфигурация на базе 1С, и о том, какой транспорт и в каких случаях лучше использовать 2) о решении задачи выгрузки данных документа «Зарплата к выплате организаций» (с выгрузкой банковский счетов физ лиц документа) из ЗУП 2.5.123.1 (далее Источник) в БП КОРП 3.0.52.39 (далее Приемник) путем создания правил обмена данными с использованием конфигурации «Конвертация данных» (далее просто КД) ред. 2.1.8.2. для (далее ЗкВО) 3) о тестирование полученных правил обмена данными.

1 стартмани

03.11.2017    33187    RailMen    5    

Исправление среднего заработка для отпусков после переноса данных в конфигурацию ЗКГУ 3.0

Перенос данных из 1С7.7 в 1C8.X Перенос данных из 1C8 в 1C8 Зарплата Учет рабочего времени Зарплата Учет рабочего времени v8 1С7:ЗиК ЗКГУ3.0 БУ Абонемент ($m)

Речь пойдет о том, как после перехода на конфигурацию 1С: Зарплата и кадры государственного учреждения, редакции 3.1 изменить данные о среднем заработке и коэффициенте отработанных дней для расчета отпусков без привлечения помощи программиста.

6 стартмани

08.08.2017    33245    RadistkaAn    4    

Автоматическая выгрузка через СОМ. STEP by STEP

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Россия Абонемент ($m)

Как автоматически выгружать физическое лицо через СОМ при записи не вмешиваясь в типовую конфигурацию. STEP by STEP.

1 стартмани

18.01.2010    11369    Boris-Leleko    7