Механизм XDTO

1. Lion heart 6 20.07.11 09:40 Сейчас в теме
Здравствуйте, все. Прошу помочь в решении задачи. Необходимо производить обмен между двумя различными нетиповыми конфигурациями. Пытаюсь использовать механизм XDTO для этого, но что-то пока не очень получается. Сразу скажу, что Конвертация данных - это конечно хорошо, но очень долго и геморно настраивать.
Описание исходных данных:
1. Есть основная конфигурация А, по сути торговая площадка.
2. Есть вспомогательная конфигурация Б, система управления складом.

В конфигурации А создан План обмена (без механизма РИБ), в котором регистрируются изменения по необходимым объектам метаданных. Написана обработка по выгрузке измененных объектов при помощи XDTO в XML. Выгружаются только необходимые реквизиты, допустим справочника Номенклатура. Напомню, что структура справочников в разных конфигурациях различна. При попытке чтения файла XML в конфигурации Б возникают ошибки примерно следующего содержания:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.Номенклатура Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.Номенклатура
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Ref Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogRef.Номенклатура


Насколько я понимаю, для нормального чтения файла в конфигурации Б, все реквизиты справочника Номенклатура этой конфигурации в файле должны быть заполнены. Ну или хотя бы присутствовать в блоке Номенклатура XML-файла.
Теперь собственно вопрос.
Как записать пустые значения "ненужных" реквизитов объекта Номенклатура конфигурации Б в XML через XDTO?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Збянтэжаны Саўка 245 22.07.11 09:29 Сейчас в теме
(1) Возможно конфигурации различны и при попытке прочитать объект или не совпадает тип реквизита или отсутствует или присутствует лишний какой-то реквизит.
3. Збянтэжаны Саўка 245 26.07.11 16:58 Сейчас в теме
(1) Вот цитата из книги Габеца "Простые примеры".
Может быть поможет быть.

Как получить объект XDTO, соответствующий некоторому справочнику в текущей конфигурации?

Следует отметить, что для использования в пакете типов другого пакета требуется определить директиву импорта.

Предположим, нужно создать объект XDTO типа CatalogObject.Номенклатура из пространства имен http://v8.1c.ru/8.1/data/enterprise/current-config. Можно поступить «классическим» способом (листинг 9.24):

Листинг 9.24. Непосредственное указание свойств объекта

ТипСпр = ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "CatalogObject.Номенклатура");

СпрXDTO = ФабрикаXDTO.Создать(ТипСпр);

СпрXDTO.Code = 1;

СпрXDTO.Description = "Наименование";

// определим остальные свойства объекта        
Показать


Либо можно воспользоваться сериализацией XDTO (листинг 9.25):

Листинг 9.25. Сериализация XDTO
НовыйСXDTO = Новый СериализаторXDTO(ФабрикаXDTO);

// получим объект справочника

Спр = Справочники.Номенклатура.НайтиПоКоду(14).ПолучитьОбъект();

// сериализуем его в XDTO

СпрXDTO = НовыйСXDTO.ЗаписатьXDTO(Спр);
Показать


В любом случае нужно понимать, что типы данных 1С:Предприятия 8 и типы объектов XDTO – это РАЗНЫЕ типы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот