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

0. Осипов Сергей (fixin) 3613 24.07.12 12:38 Сейчас в теме
Этот универсальный инструмент обязан входить в джентельменский набор любого специалиста по обмену данными.
Он позволяет загрузить данные в базу из файла выгрузки, созданного типовой обработкой «Выгрузка-загрузка данных».
Он позволяет загрузить данные из файла выгрузки РИБ.
При этом используется развитая система работы с ошибками, ведется протокол, процесс загрузки не мешает работать другим пользователям.

Перейти к публикации

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

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