Отладка правил обмена 7.7, 8
Интеграция - Файловый обмен (TXT, XML, DBF), FTP
ВНИМАНИЕ!!! Отладка не работает на платформе версии 8.3.6.2041, 8.3.6.2152, 8.3.6.1999, 8.3.6.2332. (это версии платформ, на которых точно не работает отладка. На основании этих тестов осмелюсь предположить, что отладка не работает на 8.3.6) (список будет корректироваться). На платформе 8.2 - подобных проблем замечено не было.
И так, ни для кого не секрет, что самый распространенный способ обмена данными - это обмен данными посредством XML файлов. Для тех, кто не знает, постараюсь вкратце описать суть процесса. Т.к. статья посвящена другой теме, то в подробности вдаваться не будем. Т.е. есть 2 базы. Необходимо из одной выгрузить данные в другую. Будь то просто справочники или документы, не важно. Процесс настройки обмена данными происходит с помощью типовой конфигурации "Конвертация данных", а сам обмен осуществляется по правилам, которые как раз и настраиваются в конвертации. Для начала необходимо создать структуру метаданных обеих конфигураций (источника и приемника). Затем создать правила, где уже указать конфигурации источника и приемника со своими структурами. После того как правила созданы, открывается в базе источника типовая обработка «Универсальный обмен данными XML», указывается файл правил, файл для данных и данные выгружаются. Затем в конфигурации приемнике открыть эту же обработку, указать файл с выгруженными данными и загрузить. Вот и весь процесс. Самое сложное это создать и отладить правила. Особенно для тех, кто плохо в этом разбирается.
Начну, пожалуй, со сложных правил. Есть вполне рабочие правила обмена данными, которые собирают определенные данные и преобразуют их совершенно в другие виды документов. Проблема возникает в том, что часто непонятно, что именно передается в переменные. Что делает та или иная процедура и т.д. Часто возникает ошибка, что, мол, переменная не определена и т.д. (Было бы прекрасно, если бы можно было нажать Shift+F9 и посмотреть). Такая возможность есть, как при выгрузке, так и при загрузке. Итак, в моих правилах в одном из правил выгрузки данных, в процедуре ПередОбработкой «собираются данные, а затем выгрузка идет по определенному правилу.
Здесь я создаю структуру под названием «ИсходящиеДанныеВыпуска» и выгружаю по правилу «ОбщепитВыпускПродукции». Затем в процедуре ПередВыгрузкой правила конвертации объекта я хочу посмотреть, куда вообще попала та структура, которую я уже подготовил.
Вырезка из встроенной справки по обработчикам:
В справке много параметров, которые передаются в событие, но что в них находится на определенном этапе выгрузки, это уже вопрос. Запускаем конфигуратор и предприятие в режиме отладки Для начала необходимо создать пустую внешнюю обработку, с любым названием, и сохранить в любое место. Итак, сохраняем правила в файл и запускаем обработку «Универсальный обмен данными XML». На вкладке Выгрузка загружаем правила, указываем файл для выгрузки и ставим флажок «Режим отладки обработчиков выгрузки» --> Настройка отладки выгрузки--> Сформировать модуль отладки выгрузки. На экране появится окно с кодом. Весь код копируем в буфер обмена, затем открываем созданную нами ранее обработку, вставляем весь код в модуль объекта и сохраняем. А в поле ввода «Имя файла внешней обработки с модулем отладки» указываем файл этой самой обработки.
Затем «Готово». Ищем в модуле объекта нашей обработки нужную строку кода и ставим точку останова.
Далее запускаем процесс выгрузки и ждем )))) Управление переходит в отладчик, где уже и можно просмотреть все параметры, понять, какой именно код прописать, увидеть ошибку и т.д.
Процесс загрузки абсолютно идентичен… Думаю, с ним вопросов не возникнет. В принципе все. Если кого что интересует, пишите…
Алгоритмы\Запросы
На закладке «Алгоритмы\Запросы» может быть создан программный код или запрос, который, как правило, неоднократно используется в различных обработчиках правил обмена.

Как же отладить правила в этом случае?! Как просмотреть, какие параметры передаются в Алгоритм, выполняется ли текст запроса и т.д.? Я создал алгоритм «ПроверкаНаЗаполнение» и запрос «ПолучитьКонтактнуюИнформацию». Затем в процедуре ПередОбработкой правила выгрузки данных прописал код вызова этих Алгоритмов\Запросов.

Далее в базе источнике запускаю универсальную обработку. Устанавливаю галку «Режим отладки обработчиков выгрузки» --> «Настройка отладки выгрузки». Далее ВНИМАНИЕ!!! Есть 3 режима отладки кода. 1) Без отладки алгоритмов. 2) Вызывать алгоритмы как процедуры. 3) Подставлять код алгоритмов по месту вызова. Первый режим удобно использовать, когда мы точно знаем, что ошибка в обработчике не связана с кодом какого-либо алгоритма. В этом режиме код алгоритмов не выгружается в модуль отладки. Алгоритмы выполняются в контексте оператора "Выполнить()" и их код недоступен для отладки.
Второй режим необходимо использовать в тех случаях, когда ошибка находится в коде алгоритма. При установке этого режима алгоритмы будут выгружены как отдельные процедуры. В момент вызова алгоритма из какого-либо обработчика происходит обращение к соответствующей процедуре обработки. Этот режим удобно использовать, когда для передачи параметров в алгоритмы используется глобальная переменная "Параметры". Ограничения использования этого режима в том, что при отладке в алгоритме недоступны локальные переменные обработчика, из которого он вызывается.
Третий режим отладки используется, как и во втором случае, при отладке кода алгоритмов и в тех случаях, при которых второй режим отладки не подходит. При установке этого режима алгоритмы будут выгружены как интегрированный код в обработчиках. Т.е. взамен оператора вызова алгоритма вставляется полный код алгоритма с учетом вложенных алгоритмов. В этом режиме нет ограничений на использование локальных переменных обработчика, однако есть ограничение при отладке алгоритмов с рекурсивным вызовом.
Разберем все 3 режима на примере: 1) см. выше. Ранее я про него уже говорил. 2) Попробуем сформировать модуль отладки и проверим наши алгоритмы. Как известно, то алгоритмы используют локальные переменные модуля, из которого они вызываются. Т.е. в месте вызова алгоритма такой код:
Пока Выборка.Следующий() Цикл
Выполнить(Алгоритмы.ПроверкаНаЗаполнение);
КонецЦикла;
А в алгоритме будет доступна переменная Выборка.
Если Выборка.Представление = "" Тогда
Сообщить("У объекта: " + Выборка.Объект + " представление не заполнено...");
КонецЕсли;
Но когда мы сформируем модуль отладки и вставим его в модуль внешней обработки, то при сохранении у нас покажется ошибка, что переменная Выборка не обнаружена.

Я в этом случае поступаю так. Может не совсем правильно, но работает. Алгоритмы - это Структура. Нужно найти место, где эта структура заполняется и добавить те параметры, которые используются в алгоритме. А именно процедура
Процедура Конструктор(Владелец)

Затем найти процедуру с названием «Алгоритм_ПроверкаНаЗаполнение» и добавить ей тоже параметр.

Тем самым обработка сохранится. Далее ставим точку останова в нужном месте и смотрим.

Как видно из рисунка, то точка останова стоит в обработчике «ПередОбработкойДанных». А можно легко перейти в нужный алгоритм и просмотреть параметр, который в него передается.
3) Пояснять, думаю, не стоит, т.к. в описании все более чем подробно написано, что это за режим. Лучше разберем на примере. Сформируем модуль отладки с режимом номер 3. Внешняя обработка сохраняется без ошибок, т.к. код алгоритма прописан непосредственно в самой процедуре вызова алгоритма.

Думаю, тут не возникнет вопросов, каким образом сработал код. В этом режиме отладке также доступны такие глобальные переменные как параметры. Проблематичность этого метода, заключается лишь в невозможности отладки при рекурсивном вызове алгоритма. (Если сказать по-простому, то это вызов процедуры самой из себя).
С запросами вообще все просто. Во всех трех режимах запрос передается в структуру под названием Запросы. Кстати, то же самое происходит и с алгоритмами с режимом отладки номер 1.

Отладка правил обмена платформы 7.7
Отладка правил обмена на версии платформы 7.7 происходит гораздо легче, нежели на 8. Причина всему то, что при сохранении правил обмена для версии 7.7 необходимо также указать путь к файлу для выгрузки модуля обработки выгрузки данных.

По выбранному пути на жестком диске будет создан файл txt. В моем случае его название "МодульВыгрузки.txt". Далее открываем конфигуратор 1С:Предприятие 7.7. Открываем типовую обработку V77Exp.ert. (Универсальная выгрузка данных в формате XML (2.1.7)) открываем ее модуль и полностью заменяем на тот программный код, который сформировался в файле "МодульВыгрузки.txt". Сохраняем. Запускаем 1С в режиме отладки, открываем только что созданную обработку, находим нужный кусок кода, ставим точку останова и далее уже в предприятии запускаем выгрузку данных через эту же обработку. Управление перейдет в отладчик. Вот и все.
P.S. Для быстроты тестирования правил обмена расскажу про одну хитрость. В модуле обработки V77Exp.ert не обязательно каждый раз вставлять программый код, созданный конвертаций. Достаточно в модуле прописать лишь одну строчку
#ЗагрузитьИзФайла D:\МодульВыгрузки.txt
Я думаю понятно, что после #ЗагрузитьИзФайла нужно указать полное имя файла. Отладка конечно в этом случае будет невозможна, но зато это гораздо ускоряет процесс.
Возможно, кому-то будет полезна статья с ИТС. http://its.1c.ru/db/metod8dev#content:2942:hdoc
На этом все. Всем спасибо, все свободны )))))
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)
Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор
58000 руб.
04.08.2015 194756 479 310
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!
50050 руб.
25.02.2015 192524 383 296
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)
Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.
27633 руб.
12.06.2017 164994 1009 329
Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)
Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.
50200 руб.
24.04.2015 211433 186 254
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бухгалтерский учет Управленческий учет Платные (руб)
Переносите справочную информацию, остатки и документы из УПП 1.3 в ERP 2.6 и КА 2.6 с помощью готовых правил. Переносится более 60 видов документов. Простой интерфейс и понятные настройки.
42000
37800 руб.
24.06.2020 73121 108 35
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)
Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.
42000
37800 руб.
15.12.2021 37108 268 68
Операции по ВЭД Файловый обмен (TXT, XML, DBF), FTP Разработчик Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Платные (руб)
Федеральная таможенная служба России давно поддерживает унифицированный формат электронных документов для обмена с информационными системами предприятий. xmlns="urn:customs.ru:Information:ExchangeDocuments:". Структура, утвержденная комиссией Таможенного союза. Осталось только сделать загрузку в 1С из этого формата. На выходе - два документа ГТД по импорту и Поступление (акты, накладные) Обработка актуализирована на начало 2026 года (ставка НДС 22%)
24400 руб.
09.08.2016 97832 380 379
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)
Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.
27572 руб.
18.02.2016 209229 686 559
(0) Автор, тема интересная и для многих снимет ряд вопросов по созданию и поддержке правил. Но убедительная просьба поправьте хотя бы орфографию. Кровь заливающая глаза мешает вдумчивому чтению.
Вкратце. это наречие ( предлоги с наречиями пишутся СЛИТНО)
1. Посредством электронной связи = при помощи электронной связи
2. По средствам (кому-либо/чему-либо) = (кто-то/что-то) может себе позволить.. .(а дальше по смыслу, что именно может себе позволить)
Вот и нет, как на счет режима выгрузка on-line?
Что не рассказали про различные режимы выгрузки отладки кода?
Может знаете как быть в этой ситуации?
&НаСервере
Процедура ВыгрузитьОбработчикиСобытийНаСервере(Отказ)
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
ЗаполнитьЗначенияСвойств(ОбъектДляСервера, Объект);
ОбъектДляСервера.ВыгрузитьОбработчикиСобытий(Отказ);
ЗначениеВРеквизитФормы(ОбъектДляСервера, "Объект");
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьОбработчикиСобытийВОкне()
ФайлОбработчиков = Новый Файл(Объект.ИмяВременногоФайлаОбработчиковСобытий);
Если ФайлОбработчиков.Существует() И ФайлОбработчиков.Размер() <> 0 Тогда
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Объект.ИмяВременногоФайлаОбработчиковСобытий);
ТекстовыйДокумент.Показать(Нстр("ru = 'Модуль отладки обработчиков'"));
КонецЕсли;
ФайлОшибок = Новый Файл(Объект.ИмяВременногоФайлаПротоколаОбмена);
Если ФайлОшибок.Существует() И ФайлОшибок.Размер() <> 0 Тогда
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Объект.ИмяВременногоФайлаОбработчиковСобытий);
ТекстовыйДокумент.Показать(Нстр("ru = 'Ошибки выгрузки модуля обработчиков'"));
КонецЕсли;
КонецПроцедуры
ПоказатьИ если клиент и сервер это две разные машины, то конечно ничего не находится.
Это норма? (с) Или я чего-то не понимаю?
&НаСервере
Процедура ВыгрузитьОбработчикиСобытийНаСервере(Отказ)А не подскажете как у вас получилось запустить отладку на 8.3.7.
Делал все по данному мануалу и плюс статья ИТС.
Использую обработку выгрузки/загрузки версии 2.1.8.
Выгрузил модуль по 3-ему способу, создал обработку новую, подставил ее, но в конфигураторе ну никак не хочет останавливаться по точке.
З.Ы. Возможно ошибка связанна с используемой операционной системой. На WinXP отладка заработала без смены механизма, на Win10 не захотела.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 205460
Создание 29.10.13 17:07
Обновление 27.11.15 13:49
Просмотры 58707
Загрузки 0
Рейтинг
184
Комментарии 71
Код открыт Не указано
Рубрики Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP
Кому Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация 1С:Конвертация данных
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)