Универсальный загрузчик XML-Uniloader

24.07.12

Задачи пользователя - Корректировка данных

Этот универсальный инструмент обязан входить в джентельменский набор любого специалиста по обмену данными. Он позволяет загрузить данные в базу из файла выгрузки, созданного типовой обработкой «Выгрузка-загрузка данных». Он позволяет загрузить данные из файла выгрузки РИБ. При этом используется развитая система работы с ошибками, ведется протокол, процесс загрузки не мешает работать другим пользователям.

Скачать исходный код

Наименование Файл Версия Размер
ЧтениеВыгрузкиXML.epf
.epf 12,65Kb
261
.epf 12,65Kb 261 Скачать

История возникновения

Обработка возникла, когда в центральную базу РИБ не загружался файл обмена из периферийной. Метод ПрочитатьИзменения cпотыкался на каком-то объекте в загружаемых данных, вычислить его было невозможно. В результате была написана эта обработка, чтобы находить и пропускать неправильно выгруженные объекты.

Работа с обработкой

Форма обработки имеет вид:

 

Поле «Получение от узла» - показывает узел, от которого загружаются данные. Можно не указывать. Если узел указан, то в этом узле изменения не регистрируются при загрузке.

Галочка «Устанавливать № сообщения для узла» - если галочка установлена, то при чтении файла обмена определяется номер сообщения из тега v8msg:MessageNo, после завершения загрузки в выбранный узел обмена в качестве номера принятого сообщения устанавливается этот номер. Если номер не определился, то номер не устанавливается. Номер выводится в поле рядом с галочкой.

Поле «Имя файла» указывает имя файла, из которого производить загрузку. Обработка работает не только с XML, но и с ZIP-файлами. Для загрузки берется первый из файлов в архиве ZIP. При этом файл распаковывается во временный каталог, поэтому можно смело указывать сетевой ZIP-файл, обработка сначала распакует в быстрый локальный каталог и только потом начнет загрузку.

Галочка «Удалять исходный файл в конце загрузки» - если указано, то файл, указанный в поле «Имя файла» удаляется в конце загрузки.

Галочка «Выводить протокол» - если указана, то в конце загрузки в таблицу MXL выводится протокол с колонками «Время загрузки» и «Загруженный объект».

Поле «Прочитано объектов» информационное, только для чтения, сюда выводится количество прочитанных объектов.

Поле «Читать с объекта». Если указано, то чтение начинается только с указанного номера объекта. Предыдущие записи тоже читаются, но не записываются в базу. Удобно, если обработка прервалась по ошибке.

Поле «Повторять при ошибке секунд» - указывается количество секунд, в течении которого после ошибки записи делать повторную запись.

Поле «Пауза при ошибке секунд» - указывается, какую паузу делать между попытками записи при возникновении ошибок записи.

Поле «Тексты ошибок пропускаемые» - в каждой строке поля указывается подстрока. Если эта подстрока найдена в тексте ошибки записи, то по таким ошибкам не делается попытка повторной записи. Это позволяет отличить ошибки блокировки (которые могут быть устранены через некоторое время после снятия блокировки) от ошибок, которые нельзя исправить.

 

Обработка считывает данные из файлов XML полученных:

  1. Из типовой обработки «Выгрузка-загрузка данных XML». Чтение начинается с секции V8Exch:Data
  2. Из файла обмена РИБ. Чтение начинается с секции v8de:Data

 

Ошибочно записанные в файл выгрузки объекты пропускаются правильно – если возникла ошибка чтения XML, то пропускаются все теги, пока не будет найден закрывающий тег считываемого объекта. На практике с помощью этого метода было выявлено, что если выгружается объект, у которого есть битый реквизит типа «Хранилище значения», то возникает ошибка чтения из XML-файл. При выгрузке ошибок не возникает, поэтому это сложно диагностируемая ошибка.

 

Ход работы комментируется в окне сообщений:

Протокол выглядит так:

Первоначально я выводил протокол в форму, но большие таблицы вызывают слишком большие потери быстродействия на их отрисовку, поэтому перенес протокол в файл.

Вот пример выявленной в XML-файле ошибки и сообщения о ней:

 

Способы применения

  1. Проверка XML-файлов. Планируется доработать режим чтения без записи. Тогда можно безопасно диагностировать проблемы в XML-файлах.
  2. Загрузка битых XML-файлов с пропуском ошибок.
  3. Загрузка больших XML-файлов. Необходимо указывать большой период между попытками записи и бесконечный период по повторению записи. В отличии от метода ПрочитатьИзменения не возникает транзакция загрузки и другие пользователи могут спокойно работать.
  4. Удобно использовать в РИБ как альтернативу типовой загрузке. Процесс более контролируемый, в конце проставляется номер сообщения и удаляется файл загрузки, что полностью эквивалентно типовой загрузке. Можно использовать такой механизм и в автоматических обменах, чтобы не блокировать работу пользователей.

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

50722 45650 руб.

04.08.2015    160259    368    268    

349

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    135530    730    291    

391

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    20596    137    38    

94

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

38500 34650 руб.

15.04.2019    68818    179    139    

111

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 руб.

23.07.2020    46748    199    64    

162

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В продаже с 2014г. | Воспользовались более 122 предприятий! | Перенос данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных)

50722 45650 руб.

31.10.2014    231870    124    327    

296

SALE! 10%

Перенос данных из БП 3.0 в УНФ 3.0 / УНФ 1.6. Переносятся остатки, документы и справочная информация

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

В продаже с 2018г. | Воспользовались более 41 предприятия! | Правила конвертации (КД 2) для переноса данных из БП 3 в УНФ | Переносятся все виды документов, начальные остатки и вся возможная справочная информация | Есть фильтр по организациям | Оперативно обновляем на новые релизы | Оказываем техподдержку | В комплект файлов входит инструкция, авторская версия обработки "Универсальный обмен...", актуальные правила переноса данных и архив старых версий переноса | Учет в БП 3 должен быть корректным, некорректные данные не переносятся | Можно бесплатно проверить на вашем сервере до покупки!

50722 руб.

10.07.2018    67741    41    123    

46

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

48278 43450 руб.

03.12.2020    34410    81    58    

78
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Vladimir87 228 24.07.12 18:30 Сейчас в теме
Молодец! Такие обработки очень полезны. Я сам не понаслышке знаю, что такое обмен данными. Раньше самому приходилось постоянно помаленьку править стандартные обработки выгрузки и загрузки данных через XML, чтобы из-за ошибок не останавливался процесс обмена.
+
2. khaoos 239 25.07.12 05:00 Сейчас в теме
С проблемой, инициировавшей разработку, пока не сталкивался, но раз так бывает, то буду знать, чем вооружиться в случае чего :). Единственный минус, наверное, в том, что разрешение конфликтов не сработает? То есть для РИБ не запустятся обработчики событий узла плана обмена (ПриПолученииДанных...)?
fixin; +1
3. fixin 4253 25.07.12 08:05 Сейчас в теме
(2) да, при получении данных не запустятся, но теоретически можно прикрутить их вызов. Главное, чтобы они были экспортируемыми в модуле. Если это важно.
RustIG; +1
4. khaoos 239 26.07.12 04:59 Сейчас в теме
(3) сейчас под рукой только ЗУП имеется, там это не нужно, так как используется только событие при отправке. Думаю, что и в остальных типовых конфигурациях фильтр происходит на этапе отправки и разрешение коллизий идет в пользу главного узла по умолчанию. А так в принципе можно реализовать такой функционал в качестве опции, но только при условии экспортируемости соотв. обработчиков.
+
5. fixin 4253 26.07.12 15:34 Сейчас в теме
(4) ну как-нибудь доделаю, да, замечание дельное. у меня в обработках по выгрузке начального образа и по проверке миграции есть учет этих обработчиков.
+
6. soba 26.07.12 18:32 Сейчас в теме
первые 3 картинки в тексте статьи не открываются.
По клику на ней ( http://infostart.ru/public/144812/article__image003.jpg ) 404 Not Found
+
8. fixin 4253 27.07.12 02:04 Сейчас в теме
7. cubic 17 26.07.12 23:24 Сейчас в теме
Полезная штука. Как раз возникла проблема с РИБ, а тут и решение! (надеюсь)
Буду тестить.
+
9. krund 30.07.12 13:25 Сейчас в теме
Автор молодец! Очень нужная обработка.
+
10. fixin 4253 30.07.12 13:41 Сейчас в теме
(9) ндык я сам офигел, когда осознал полезность.
+
11. cubic 17 30.07.12 23:55 Сейчас в теме
Потестил... Возможно у меня как у осьминога руки... Только в результате лишился нескольких документов. Движения по ним остались, а сами документы ушли в мир ненайденных объектов. Имею 2 узла: 1 с набором данных А, Б, В и 2 с набором А, Б, Г. Данные В и Г созданы за время отсутствия обменов. При загрузке файла обмена стандартым способом получаем ошибку чтения. При загрузке с помощью обработки получаем два одинаковых набора (либо А, Б, В, либо А, Б, Г). Набор А, Б, В, Г получить не удалось... Хорошо, что меня учили делать копии :)
+
12. fixin 4253 31.07.12 09:13 Сейчас в теме
(11) ничего не понял из описания. обработка не удаляет объекты, если не было зарегистрировано удаления в плане обмена.
смотрите файл обмена, что у вас там за данные прописаны. Как то так.
Кстати да, это нюанс, думаю, что обработка не умеет удалять физически объекты. ;-)
+
13. cubic 17 31.07.12 09:35 Сейчас в теме
Если конкретней то было так: Есть главный узел и подчиненный, в понедельник упали обмены, выгрузка проходит без ошибок, а загрузка с ошибками чтения. Обмен осуществлялся стандартными средствами РИБ. Сначала я взял файл выгрузки из подчиненного узла и стал грузить в главный узел (это было уже пятница). За период отсутствия обменов в главном узле появились документы установки цен и перемещения товаров. При загрузке файла обмена с помощью XML-Uniloader картина следующая: в регистре сведений "цены номенклатуры" есть записи, сделанные этими документами, но регистратор - "Объект не найден...". Тоже с доками перемещения.
Если гружу в подчиненный узел из главного, то история повторяется: документы перемещения товаров, которые сделали в подчиненном узле исчезли, оставив после себя движения по регистрам и расходники.
+
14. fixin 4253 31.07.12 09:48 Сейчас в теме
(13) что то у вас с руками не то, у меня в коде нет удаления. Даже если в файле и есть команды физического удаления, они не работают. У меня только метод Записать есть. думайте еще.
+
21. khaoos 239 17.08.12 10:22 Сейчас в теме
(14) на самом деле если выполнить метод "Записать" объекта УдалениеОбъекта, то будет удален базовый объект. Другое дело, что обработка не виновата, что ей подсовывают такие объекты :). Давно РИБом не занимался, но, кажется, в Рознице было так: если в одном узле удаляется объект, то в других он только помечается на удаление. Помню, бесило, что в нескольких узлах приходилось чистить. Может быть предусмотреть и такую опцию в обработке: физическое удаление или пометка на удаление? Вполне возможно, что обращение к обработчикам событий обмена решило бы и эту проблему: пусть типовые механизмы решают, что делать.
+
15. soba 31.07.12 13:49 Сейчас в теме
Картинки все же почему-то не открываются, ну да ладно. Вот бы еще расширить чуток обработку, чтобы файл загрузки из v7 (при конвертации баз) обрабатывался. А то 1с как обычно лаконична. ошибка. и все.
+
16. fixin 4253 31.07.12 17:02 Сейчас в теме
(15) как вы себе это представляете? Загрузку из 77? Думаю это весьма специфичная задача, хотите - реализуйте! ;-)
+
18. soba 01.08.12 13:08 Сейчас в теме
(16) Я имел ввиду загрузку сформированого в 7.7 файла выгруки (при переходе с 7) Структуры то данных по идее похожи. Загрузка через универсальную делается
+
19. fixin 4253 01.08.12 14:11 Сейчас в теме
(18) через типовую универсальную? тогда и эта должна загрузить... потому что типовая загрузка-выгрузка работает...
хотя нет, если вы имеете ввиду загрузку по правилам, то это не этот случай... это не поддерживается.

Короче, обработка которая обменивается с 1с7 - это не ВыгрузкаЗагрузкаДанных, а ОБменДаннымиXML. Это слишком навороченная хрень из Конвертации Данных. Даже не просите ее повторить... Это пять человеко лет.
+
17. пользователь 01.08.12 13:03
Сообщение было скрыто модератором.
...
20. Zoba 18 17.08.12 00:15 Сейчас в теме
Замечательная обработка. давно искал такую.
+
22. fixin 4253 21.08.12 19:40 Сейчас в теме
(20) ндык, возникла из практической потребности.
(21) клево, я и не знал. а на физическое удаление обработчик передзаписью срабатывает?
+
23. khaoos 239 22.08.12 04:50 Сейчас в теме
(22) нет, не срабатывает. Сразу обработчик "ПередУдалением" базового объекта в дело вступает.
+
24. fixin 4253 22.08.12 07:22 Сейчас в теме
(23) жаль, придется в двух местах прописывать... но с другой стороны, я просто обычно отключаю права на физ.удаление, а физ удаление прописываю, если нужно в привилегированном модуле.
+
25. mc1c80 22.08.12 08:03 Сейчас в теме
26. fixin 4253 22.08.12 10:53 Сейчас в теме
27. papami 55 19.06.13 17:54 Сейчас в теме
Нужная обработка! Плюс
+
28. fixin 4253 19.06.13 18:31 Сейчас в теме
(27) я сам от нее тащусь, чесслово.
+
29. pereligins 21 30.08.13 14:24 Сейчас в теме
Сейчас опробовал на копии базы. Тьфу тьфу... вроде сработало. Если все удачно пройдет - низкий поклон. Ситуация запутанная: центр обновили - обновление в периферийную базу отправили (файл огромный, канал слабый), там загрузили, сделали выгрузку из периферийной в центр. Но пока в центр выгружали файл из периферийной, в центральной базе поменяли косяк в форме (одна строчка). Из периферийной данные не загружаются - не совпадают конфигурации. Если выгружать из центра - снова в файл попадают все изменения конфигурации, включая обновление (снова грузить файл долго).
+
30. fixin 4253 30.08.13 14:44 Сейчас в теме
(29) Я сам потрясен, как с помощью легкого "тыка пальцем" можно свернуть гору! Обычное чудо.
+
31. bes-kkm 11.11.13 19:10 Сейчас в теме
Кто-нибудь пробовал как обработка??????
+
33. fixin 4253 11.11.13 22:34 Сейчас в теме
(31) я пробовал. сам. хорошая.
+
32. bes-kkm 11.11.13 19:10 Сейчас в теме
ВОобще очень полезная обработка
+
34. bes-kkm 12.11.13 09:54 Сейчас в теме
35. rimbo 03.10.21 16:38 Сейчас в теме
Спасибо Уважаемому Автору!!!
Неоднократно выручала при обменах и давала практически четкое указание "куда копать", что бы штатный обмен восстановить.
Однако время идет, и на сегодня прошу перевести Вашу обработку на управляемые формы.
Не очень удобно при большой РИБ на каждом узле включать поддержку Вашей обработки или менять конфу на центре (клиент нервничает).
Не бесплатно, прошу выйти на связь.
Еще раз спасибо!
+++
+
Оставьте свое сообщение