v8: Использование XDTO серилизации при обмене данными между конфигурациями #330194


#0 by miron16
Огромная просьба, тем кому нечего сказать - лучше не говорите, отправка на ИТС без конкретики тоже самое. Для всех отальных предлагаю немного подесскутировать по вопросам реализации XDTO. Ненашел ни одной статьи которая смогла бы дать понять зачем он вообще нужен. То что для выгрузки/загрузки это понятно, но чем он отличается от выгрузок через XML... как раньше им пользовались в 8.0???
#1 by Андрюха
Аббревиатура XDTO расшифровывается как XML Data Transfer Objects. XDTO является механизмом объектного моделирования данных, описываемых с помощью схемы XML.
#2 by miron16
Это хорошо, но зачем отходить от старых методов? в чем его превосходство? Что такое фабрики... хотелось бы чуть больше конкретики
#3 by Андрюха
Механизм XDTO реализован с помощью набора объектов встроенного языка и объекта конфигурации XDTO пакет. Возможно выполнение следующих действий:    * создание XDTO пакета с помощью импорта схемы XML;    * добавление нового XDTO пакета в дерево конфигурации и последующее его редактирование;    * экспорт существующего XDTO пакета в схему XML. Также система 1С:Предприятие 8 поддерживает возможность экспорта набора XML схем данных конфигурации. Редактирование XDTO пакета осуществляется в специальном окне, отображающем иерархическую структуру XDTO пакета.
#4 by miron16
не очень понятна сама схема использования. Сначала создается XML схема базы приемника, загружается в XDTO пакет базы источника, и делается выгрузка в файл обмена? как то так?
#5 by Андрюха
На основании обекта 1 раз описаного СериализаторXDTO ты можешь выливать в XML какие нужно объекты
#6 by miron16
Андрюха, СериализаторXDTO - это как я понимаю пространство имен? Я совсем не понимаю как это работает.... не можешь по шагам расписать
#7 by Андрюха
#8 by miron16
я видел этот код. мне не понятно что такое Фабрика
#9 by Андрюха
Фабрики XDTO создается на основе схемы или набора схем XML:
#10 by miron16
а для чего они нужны??? на самом деле я понял проблему свою. Я не понимаю последовательности действий. Я не понимаю что такое XML схема, что такое Фабрики XDTO, и где вообще этот код писать.
#11 by Андрюха
XML схема конфигурации-приемника выгружается из конфигурации-примника - в дереве конфигурации правой кнопочкой щелкай по узлу "Пакеты XDTO" и выбирай "Экспорт XML-схемы данных конфигурации"
#12 by miron16
это понятно... дальше
#13 by Андрюха
Дальше для выгрузки смотри , где в качестве ИмяФайла используй экспортированный файл.
#14 by miron16
а где все это делать то?????=)
#15 by Андрюха
Ну и потом создавай ТипОбъектаXDTO для тех объектов, которые требуется выгрузить:
#16 by Андрюха
Создай новую обработку МойаВыгрузко
#17 by miron16
щас попробую
#18 by miron16
точно вместо ИмяФайла ???
#19 by miron16
#20 by Андрюха
Фабрика создается на основании выгруженной схемы
#21 by miron16
#22 by miron16
так?
#23 by Андрюха
Да!
#24 by miron16
воооо
#25 by Андрюха
Но ты не создал ОбъектXDTO по типу, и объект 1С конфигурации-источника
#26 by miron16
а дальше что делать? до сюда вроде понятно ( кроме последней строки ТипРеализация = Фабрика.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "DocumentObject.Реализация");)
#27 by Андрюха
ТипРеализация - это пример создания типа объекта XDTO для документа Реализация. Если планируется выгрузка других объектов, то работать нужно будет с ихними типами
#28 by miron16
а если их несколько ... допустим справочники номенклатура...у него же есть подчиненные... единицы измерения например
#29 by Андрюха
Потом из типов с помощью фабрики будешь создашь объекты выгрузки
#30 by miron16
Подведем черту на данном этапе Фабрика = СоздатьФабрикуXDTO(Пути); это - шапка...она не зависит от количества видов объектов Это набираются все выгружаемы типы ( по типам туда конфигурации-приемника) все так?
#31 by Андрюха
Выгрузишь значит сперва справочник единиц для номенклатуры, а при выгрухке самой номенклатуры будешь юзать УникальныйИдентификатор
#32 by Андрюха
Да
#33 by miron16
получается, чтобы настроить обмен между разными конфигурациями - это нет то и просто?
#34 by miron16
Андрюха, что ты мне посоветуешь, ну и другим кто будет это читать, изучить для лучшего понимания всего этого?
#35 by Андрюха
Наоборот, с помощью XDTO это как 2 пальца об асфальт
#36 by Андрюха
Кстати, мы еще только на пол пути
#37 by miron16
что то я не могу воткнуться... если чтобы один справочник синхронизировать это надо столько делать... очередность выгрузки подчиненных справочников...а в документе такого вообще море
#38 by miron16
в том то и дело, что мы ещё на пол пути а я уже не понимаю..=)
#39 by Андрюха
Подчиненные-то явным образом вроде можно не выгружать. Оно само по-идее должно все затащить
#40 by miron16
вот смотри...есть документ Событие в УТ, простой документ.... давай на его примере попробуем синхронизировать? (конфы пока одинаковые...ут)??? есть ли у тебя время и желание?
#41 by Андрюха
Теперь создаем объекты выгрузки и соответствующие им объекты из конфы-источника:
#42 by Андрюха
Потом заполяем поля:
#43 by miron16
так?
#44 by Андрюха
Ну и записать И так постепенно все выгружаешь что нужно. А загрузка вообще ни о чем:
#45 by Андрюха
Так
#46 by miron16
там же есть табличные поля..как с ними быть?
#47 by miron16
Ругается на строку
#48 by Андрюха
Это "КраткийСоставДокумента"
#49 by Андрюха
Кури "ПолучитьОбъект" в синтаксис-помощнике
#50 by miron16
#51 by miron16
#52 by Андрюха
Запись в цикле делай
#53 by miron16
{Форма.Форма}: Поле объекта не обнаружено (Ссылка)
#54 by Андрюха
И когда будешь читать, учти что
#55 by Андрюха
Попробуй:
#56 by miron16
сработало и дальше пошли ошибки.... я понял что надо английскими писать
#57 by Андрюха
Ну вот так должно работать четко
#58 by miron16
Спасибо Андрюха... буду в этом дальше разбираться...
#59 by Aloex
Господа обьясните на каком произошло создание "C:XML_схема_УТ_CRM.xsd"?
#60 by Aloex
+Вопрос снят.
#61 by Aloex
Ай нид хелп. ОбъектДокСобытие.Товары  = СобытиеОбъект.Товары;//табличная часть Поле объекта недоступно для записи (Товары)        ОбъектДокСобытие.Товары  = СобытиеОбъект.Товары; что не так?
#62 by Андрюха
Табличные части выгружаются так:
#63 by Aloex
В этом случае происходит следующая ошибка Поле объекта не обнаружено (КраткийСоставДокумента) Сама процедура имеет вид:
#64 by Aloex
fg.
#65 by Aloex
UP
#66 by Kasper076
Не получается последовательная запись объектов с помощью ФабрикиXDTO. Т.е. один объект прекрасно записывается, а вот второй уже нет.
#67 by Kyrales
Покажи код, чего там делаешь
#68 by Kasper076
Уже разобрался как делать.
#69 by Kasper076
C последовательны добавлением объектов разобрался. Теперь возник другой вопрос. В схеме конфигурации приемника табличная часть Товары документа ПоступлениеТоваровУслуг имеет тип "DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Товары", а в конфигурации источнике XMLТип(ТипЗнч(ТабличнаяЧастьТовары)) возвращает Неопределено, равно как и НовыйСериализаторXDTO.XMLТипЗнч(ТабличнаяЧастьТовары);
#70 by leo_d
По представленному примеру сделал: Выдает ошибку: {Форма.Форма}: Ошибка при вызове метода контекста (ЗаписатьXML) по причине: по причине: Ошибочный порядок записи XML Подскажите, плииз, как выйти из ситуации
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С