Универсальный обмен данными между одинаковыми конфигурациями через XML файл



Обработка осуществляет выгрузку документов и подчиненных объектов в XML и последующую загрузку.

Обработка ВыгрузкаXML.ert осуществляет выгрузку данных в XML

Обработка ЗагрузкаXML.ert соответственно загрузку. Обновлено 21.12.2009 (критическая ошибка)

Структура баз должна быть одинакова. Писалась довольно давно, часто переписывалась, последний раз для получения навыков работы с метаданными. Корректно обрабатывает значения реквизитов неопределенного типа, убирает кракозябры (символы с кодом <32) из текстовых строк.

Для синхронизации справочников использует код, наименование или первый реквизит с признаком «Отбор», документы — номерДок + ДатаДок.

Есть недоработки:

  1. не переносится история периодических реквизитов (легко доделать, просто не нужно было) исправлено
  2. если синхронизация осуществляется по наименованию и есть группа с таким же наименованием, как и элемент — то скорее всего найдет группу вместо элемента.
  3. Выгрузка XML открывается без ошибок компиляции только в бухгалтерии

62 Comments

  1. rasswet

    «есть группа с таким же наименованием, как и элемент — то скорее всего найдет группу вместо элемента.» ну это можно же было пофиксить без проблем…

    Reply
  2. ChessCat

    а чем от типовой обработки отличается ?

    Reply
  3. akat65

    Операции введенные в ручную НЕ ВЫГРУЖАЕТ.

    Reply
  4. akat65

    Пометка(отметка документов кнопки внизу) работает? У меня бух.502 НЕТ ??

    Reply
  5. akat65

    Платежное поручение ВЫГРУЖАЕТСЯ ?……..

    Reply
  6. Ильшат71

    Действительно, операции введенные вручную не выгружает.

    Reply
  7. newbas

    (3),(4),(6) пофиксил. Спасибо за тестирование

    Reply
  8. akat65

    Можно отсортировать Виды документов… по алфавиту

    Ver 30.04.2009_ наезжает на другой слой формы…

    Документ «Платежное поручение» не выгружается

    Флажок «не проведенные» ВСЕГДА неактивный?

    Reply
  9. akat65

    +8 Хорошо бы сделать дополнительно сортировку

    таблицы документов по разным колонкам,которые ВЫГРУЖАЕМ…

    Reply
  10. akat65

    +8 Хорошо бы сделать дополнительно вывод условий отбора немножко(период,контрагент,комментарий )

    таблицы документов ,которые ВЫГРУЖАЕМ…

    Reply
  11. newbas

    (8) пофиксил.

    (10) не совсем понятно — условия отбора есть: Период, контрагент, комментарий.

    Какие еще нужны?

    (9)Сделаю позже

    Reply
  12. akat65

    В слое «Выгрузка» хорошо бы видеть, что отбирали-компактненко:

    -за какой период

    -контрагент, если выбрали

    -комментарий, если выбрали

    -проведенные……..

    условия можно в корень ХМЛ записать

    Т.е. просто «ТаблицаДокументов» пониже,а заголовок в вверху…

    // Не переносим перечисления ломбарда АКТУАЛЬНО

    Вопросик: красота изменения МОДУЛЯ с ПОМОЩЬЮ каких средств исправляется(сделана)??

    ***************

    // {

    // }

    ***************

    Reply
  13. newbas

    (12) про ломбард точно! 🙂

    Красота делается руками, отображается SciColorer

    // { Открывает скобку свертывания,

    // } Закрывает

    А вообще, меню Colorer — Настройки

    Пожелания по интерфейсу и условия доделаю сегодня вечерком

    Reply
  14. akat65

    +12

    У операций ОБЩИЕ РЕКВИЗИТЫ ЕСТЬ?

    Reply
  15. newbas

    Да. Операция существует только с документом «Операция», поэтому общие реквизиты документов есть и у нее.

    Reply
  16. akat65

    Не выгружает(выбор опр.доков) < ВСЕХ видов

    и операций ОБЩИЕ РЕКВИЗИТЫ …

    Reply
  17. newbas

    Не понятно…

    Reply
  18. akat65

    +16 Периодические реквизиты….??

    Reply
  19. akat65

    +17 не выгружает опр.вид(ы) дока ,если выбирать (операция+п/о+пл.пор)

    Reply
  20. newbas

    (18) пока нет, но за праздники до делаю, т.к. появился заказ

    (19) посмотрю

    Reply
  21. sborka_home

    не смог загрузить, выдает ошибку

    Кол = КореньСчет.КоличествоПодчиненных();

    {…..ЗАГРУЗКАXML.ERT(669)}: Значение не представляет агрегатный объект (КоличествоПодчиненных)

    Reply
  22. ChessCat

    автор, ответь пожалуйста на вопрос (2)

    я реально не пойму — зачем изобретать велосипед если универсальный обмен данными через XML есть нна ИТС

    Reply
  23. newbas

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

    Reply
  24. newbas

    (21) пофиксил

    Reply
  25. sborka_home

    Спасибо, все работает. Но теперь следующий момент: после загрузки документов, часть из них имеет статус проведенных, часть нет. С чем это связано?

    Reply
  26. newbas

    (25) сложно сказать сразу — тут могут быть 2 причины:

    1). Косяки в обработке 🙂

    2). Отсутствие каких-либо материальных ресурсов при проведении, т.е. документ полностью и правильно перенесся, но нет остатков на счете или др.

    Если мне скинуть xml (например на почту или в аську), то я могу точно сказать.

    Reply
  27. sborka_home

    Готов выслать файл. Куда бросать, адрес?

    Reply
  28. newbas

    (25) исправлен баг с проведением загруженных документов

    (*) доделан перенос истории периодического реквизита справочников

    (*) подходит для любых конфигураций

    Reply
  29. newbas

    обновлено

    Reply
  30. larafox

    Спасибки огромное!!! ;))) Я так долго мучилась, а вы меня спасли!!!Все справочники я смогла выгрузить из БП 1С8 вер 8.1 ред 6.15 в УПП той же версии под ред 1.2.Вот еще бы найти программку которая бы позволила выгрузить номенклатуру из Excel в УПП ..хотя бы наименование продукции что бы в ручную не забивать а то уж позиций очень много :(((

    Reply
  31. newbas

    (30) ?! Мои обработки предназначены для 7.7, а никак для 8

    Reply
  32. akat65

    У операции общие реквизиты не выгружаются(комментар…) …?!

    Хорошо бы пер.реквизиты выгружать за опр.период…

    Флажок «не проведенные» недоступен всегда…

    Reply
  33. akat65

    Мне опять повезло, кнопки отметки доков перестали выбирать…

    Платежное поручение выбирается с «операцией в ручную»

    версия 07,05 _ 139

    Reply
  34. akat65

    +9 сделать бы….

    Reply
  35. SpiritBad

    Эл.Родитель = Родитель.ТекущийЭлемент();

    {C:1C BASESПЕРЕГРУЗКАAGRUZKAXML.ERT(255)}: Количество уровней справочника ограничено! — вот что мне в торговле 7.7 выдает

    Reply
  36. sborka_home

    Сергей, здравствуйте!

    Обнаружил следующее: при загрузке документов, в момент их проведения, если в документе есть какие-либо ошибки (например, не хватает кол-ва для проведения или встречается нулевая сумма документа), то выдает предупреждение, типа, документ такой-то заблокирован, и проведение останавливается. Можно сделать, чтобы выдавалось сообщение, но при этом проведение остальных документов на этом не тормозилось.

    Reply
  37. newbas

    (36) поправлю

    Reply
  38. ICE13

    (33) мои 2 варианта решения проблемы «не выгружаются определенные виды документов» или «выгружаются, но не те»:

    Проблема заключается в том, что к значениям в списке «СписокДокументов» обращение идет по хранящемуся там же индексу, а к значениям в списке «Документы» по номеру строки. Соответствие индексов и номеров элементов слетает, при наличии в списках таких документов как : КнигаПокупок(Формирование книги покупок) и/или КнигаПродаж(Формирование книги продаж).

    1 вариант: сортировать элементы по представлению предварительно перед заполнением списка «СписокДокументов» в процедуре ВставитьВсе(СписокДокументов):

    Процедура ВставитьВсе(СписокДокументов)

    Документы1 = СоздатьОбъект(«СписокЗначений»);

    Документы1.УдалитьВсе();

    Для Сч=1 По Метаданные.Документ() Цикл

    Документы1.ДобавитьЗначение(Метаданные.Документ(Сч).Представление());

    КонецЦикла;

    Документы1.СортироватьПоПредставлению();

    СписокДокументов.УдалитьВсе();

    Для Инд=1 По Метаданные.Документ() Цикл

    СписокДокументов.ДобавитьЗначение(Инд,Документы1.ПолучитьЗначение(Инд));

    КонецЦикла;

    СписокДокументов.СортироватьПоПредставлению();

    КонецПроцедуры

    2 вариант: не сортировать список «Документы», закоментировав строку:

    Документы.СортироватьПоПредставлению();

    Reply
  39. Gavrish

    В операциях не выгружаются субконто, валюта, фирма, а в остальном ОК

    Reply
  40. newbas

    (39) c чего бы это? Можно базу (или фрагмент) на анализ?

    Reply
  41. newbas

    (38) Это правильно замечено. Понадобилось перенести один вид документа, а список пустой.

    Пофиксил баги…

    Reply
  42. zaic

    не смог загрузить в ту же базу (ПУБ), выдает ошибку

    Эл.Родитель = Родитель.ТекущийЭлемент();

    {…. .ЗАГРУЗКАXML.ERT(251)}: Неверное значение!

    Reply
  43. torg1c

    Реквизит «Комментарий» может быть не у всех документов соответственно будет ошибка.

    Reply
  44. newbas

    (43) В типовых конфигурациях реквизит «Комментарий» является общим реквизитом. Т.к. моя разработка не коммерческая и выполнялась для собственных нужд и рассчитана, в основном, на конфигурации, построенные на основе типовых.

    Reply
  45. alex_fursov

    Подскажите смогу этой обработкой перенести операции введенные вручную для конфигурации бухгалтерия бюджетных учреждений?

    Reply
  46. kog

    А почему при загрузке не встают единицы у номенклатуры? Ни в справочнике ни в документе. Использую типовую ТИС.

    Reply
  47. newbas

    (46) kog,

    Сложно сказать заочно — должна работать, но если не заполняются видимо есть проблемы с поиском подчиненных элементов, причем на сколько я помню справочник «Единицы» в ТиС не имеют кода.

    Reply
  48. emptyteam
    ТаблицаДокументов.УстановитьЗначение(НомерСтроки, «Комментарий»,Док.Комментарий);
    {\*******DISTR1C7.7ОБРАБОТКИВЫГРУЗКА!ЗАГРУЗКАИДЕНТИЧНЫЕКОНФИГУРАЦИИОБМЕНXMLВЫГРУЗКАXML.ERT(321)}: Поле агрегатного объекта не обнаружено (Комментарий)

    Не у Всех есть поле Комментарий 😉

    Reply
  49. naumkin.s

    Спасибо за обработку

    Reply
  50. Мать Тереза

    Не загружает валюту ,каждый раз вручную проверять приходиться.

    Reply
  51. Мать Тереза

    мои 2 варианта решения проблемы «не выгружаются определенные виды документов» или «выгружаются, но не те»:

    Проблема заключается в том, что к значениям в списке «СписокДокументов» обращение идет по хранящемуся там же индексу, а к значениям в списке «Документы» по номеру строки. Соответствие индексов и номеров элементов слетает, при наличии в списках таких документов как : КнигаПокупок(Формирование книги покупок) и/или КнигаПродаж(Формирование книги продаж).

    1 вариант: сортировать элементы по представлению предварительно перед заполнением списка «СписокДокументов» в процедуре ВставитьВсе(СписокДокументов):

    Процедура ВставитьВсе(СписокДокументов)

    Документы1 = СоздатьОбъект(«СписокЗначений»);

    Документы1.УдалитьВсе();

    Для Сч=1 По Метаданные.Документ() Цикл

    Документы1.ДобавитьЗначение(Метаданные.Документ(Сч).Представление());

    КонецЦикла;

    Документы1.СортироватьПоПредставлению();

    СписокДокументов.УдалитьВсе();

    Для Инд=1 По Метаданные.Документ() Цикл

    СписокДокументов.ДобавитьЗначение(Инд,Документы1.ПолучитьЗначение(Инд));

    КонецЦикла;

    СписокДокументов.СортироватьПоПредставлению();

    КонецПроцедуры

    2 вариант: не сортировать список «Документы», закоментировав строку:

    Документы.СортироватьПоПредставлению();

    Reply
  52. Мать Тереза

    Выполняется обработка позиции Перемещение ТМЦ б000000010 (29.03.12)

    Не удалось сохранить файл с данными из-за Неизвестная ошибка

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

    Reply
  53. newbas

    (52) Мать Тереза,

    Скорей всего путь для сохранения слишком длинный или нет доступа на запись файла в указанный каталог.

    Reply
  54. Мать Тереза

    Спасибо,попробую.

    Reply
  55. LysI

    Спасибо!

    Reply
  56. sirm

    Не помогло. Думал будет быстрее стандартной…

    Увы. Все равно спасибо:)

    Reply
  57. Foxux

    Можно отсортировать Виды документов… по алфавиту

    Ver 30.04.2009_ наезжает на другой слой формы…

    Документ «Платежное поручение» не выгружается

    Флажок «не проведенные» ВСЕГДА неактивный?

    Не помогло. Думал будет быстрее стандартной…

    Увы. Все равно спасибо:)

    Reply
  58. Foxux

    Выполняется обработка позиции Перемещение ТМЦ б000000010 (29.03.12)

    Не удалось сохранить файл с данными из-за Неизвестная ошибка

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

    Reply
  59. Foxux

    мои 2 варианта решения проблемы «не выгружаются определенные виды документов» или «выгружаются, но не те»:

    Проблема заключается в том, что к значениям в списке «СписокДокументов» обращение идет по хранящемуся там же индексу, а к значениям в списке «Документы» по номеру строки. Соответствие индексов и номеров элементов слетает, при наличии в списках таких документов как : КнигаПокупок(Формирование книги покупок) и/или КнигаПродаж(Формирование книги продаж).

    1 вариант: сортировать элементы по представлению предварительно перед заполнением списка «СписокДокументов» в процедуре ВставитьВсе(СписокДокументов):

    Процедура ВставитьВсе(СписокДокументов)

    Документы1 = СоздатьОбъект(«СписокЗначений»);

    Документы1.УдалитьВсе();

    Для Сч=1 По Метаданные.Документ() Цикл

    Документы1.ДобавитьЗначение(Метаданные.Документ(Сч).Представление());

    КонецЦикла;

    Документы1.СортироватьПоПредставлению();

    СписокДокументов.УдалитьВсе();

    Для Инд=1 По Метаданные.Документ() Цикл

    СписокДокументов.ДобавитьЗначение(Инд,Документы1.ПолучитьЗначение(Инд));

    КонецЦикла;

    СписокДокументов.СортироватьПоПредставлению();

    КонецПроцедуры

    2 вариант: не сортировать список «Документы», закоментировав строку:

    Документы.СортироватьПоПредставлению();

    Reply
  60. newbas

    (59) Foxux,

    Можете делать как хотите — обработка в свободном доступе

    Reply
  61. kotenok17_90

    Не могу выгрузить операции введенные в ручную, что сделать, а очень надо. Плиз помогите…

    Reply
  62. sirm

    Классная штука. Пользуюсь уже три года.

    Еще ни разу не подводила!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *