Ошибка Несоответствие типов XDTO
Текст Функции
// Позволяет дополнить/изменить контент электронного документа
// перед его отправкой.
//
// Параметры
// Параметры — Структура — Содержит коллекцию, переданных параметров:
// * ТипКонтента — Строка — идентификатор типа контента (см. ТипыКонтента());
// * Content — Структура — Протоконтент исходящего документа;
// * ДокументСсылка — ЛюбаяСсылка — Ссылка на документ информационной базы, по которому собирается протоконтент;
// * DocumentType — Строка — (Устарел) Позволяет определить тип протоструктуры.
// Параметр сохранен для обратной совместимости с ПМ версии 1.4 или ниже.
// Рекомендуется вместо него ориентироваться на ТипКонтента.
//
// Возвращаемое значение:
// Структура — Протоконтент электронного документа.
//
Функция ПодготовитьЭлектронныйДокумент(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") Тогда
Документ1С = Параметры.Результат.Документ1С;
ШтрихкодыУпаковок = Документ1С.ШтрихкодыУпаковок;
Протоконтент = Параметры.Результат.Content;
КоллекцияСтрок = Протоконтент.Table.Items;
ProtoФабрикаXDTO = ProtoФабрикаXDTO();
ТипЗначенияXDTO_String255 = ProtoФабрикаXDTO.Тип("http://diadoc.kontur.ru/dll_types", "String255");
Если Параметры.ВидДокументаРазвернутый.ID = "ID_УПД_ДОП" Тогда
Для Сч = 1 По КоллекцияСтрок.Количество() — 1 Цикл
Индекс = Сч — 1;
Элемент = КоллекцияСтрок[Индекс];
НомСредИдентТов = ШтрихкодыУпаковок[Индекс].ЗначениеШтрихкода; // лучше добавить поле НоменклатураСсылка в ТЧ "ШтрихкодыУпаковок" чем опиратся на индекс в строках !
СписокXDTO = Элемент.ItemIdentificationNumbers;
ВладеющееСвойствоТипИмя = СписокXDTO.ВладеющееСвойство.Тип.Имя;
// тип создаваемого ОбъектаXDTO — ItemIdentificationNumber
// Свойства:
// PackageIds: Коллекция Cтрок (1-255) — уникальный идентификатор вторичной (потребительской)/третичной (заводской, транспортной) упаковки [НомУпак].
// Обязателен при отсутствии [КИЗ] и [ИдентТрансУпак]
// TransPackageId: Строка (1-255) — уникальный идентификатор транспортной упаковки [ИдентТрансУпак]. Обязателен при отсутствии [КИЗ] и [НомУпак]
// Units: Коллекция Cтрок (1-255) — контрольный идентификационный знак [КИЗ]. Обязателен при отсутствии [ИдентТрансУпак] и [НомУпак]
ProtoОбъектXDTO = НовыйProtoОбъектXDTO(ВладеющееСвойствоТипИмя);
СписокXDTO_Units = ProtoОбъектXDTO.Units;
ЗначениеXDTO = ProtoФабрикаXDTO.Создать(ТипЗначенияXDTO_String255, НомСредИдентТов);
Инструкция как устранить ошибку преобразования данных XDTO
При входе в базу 1с вы можете увидеть “Ошибка преобразования данных XDTO:
Начало Свойства: errorProcessingSettings
Чаще всего ошибка возникает при определенном типе запуска: это либо через тонкий клиент, либо через линк42, случаи бывают разные. Через браузер такие базы запускаются без ошибок.
Есть простое решение данной проблемы.
Достаточно запустить базу доступным нам способом (где нет ошибки) включить Функции тех. специалиста (Меню — Настройки — Параметры — Режим технического специалиста)
В Функциях для технического специалиста ищем Управление настройками обработки ошибок (Стандартные)
Ошибка преобразования данных XDTO в версиях 8.3.22.1603 и 8.3.21.1508 платформы «1C:Предприятие»
В редких случаях у пользователей версий платформы 8.3.22.1603 или 8.3.21.1508 может проявляться ошибка преобразования данных XDTO при использовании функций преобразования строки в число с плавающей точкой в операциях XDTO.
Ошибка исправлена в версиях платформы 8.3.22.1672/8.3.21.1607 и выше.
Пользователям, у которых появилась такая проблема, предлагаем обновиться на указанные версии платформы.
Версии платформы 8.3.22.1603 и 8.3.21.1508 больше недоступны для скачивания на сайте releases.1с.ru.
Фирма «1С» приносит извинения, а также просит партнеров донести эту информацию до пользователей, у которых проявилась проблема, и помочь им заменить версию платформы.
Механизм XDTO
Механизм XDTO является универсальным способом представления данных для взаимодействия с различными внешними источниками данных и программными системами.
Аббревиатура XDTO обозначает XML Data Transfer Objects.
Механизм XDTO позволяет создать модель представления данных (модель типов и значений), которая, с одной стороны, обеспечивает возможность просто и естественно манипулировать данными в среде системы «1С:Предприятие», а с другой стороны, хорошо приспособлена для прозрачного преобразования данных в другие форматы, главным образом XML.
Рис. 1. Общая схема XDTO
Можно выделить несколько задач, для решения которых используется механизм XDTO:
- обмен данными между конфигурациями системы «1С:Предприятие» с разными схемами данных;
- обмен данными на основе схем XML, не привязанных к той или иной конфигурации (например, обмен с информационными системами, построенными не на основе системы «1С:Предприятие»);
- организация работы с Web-сервисами. Механизм XDTO позволяет описывать типы параметров и возвращаемых значений Web-сервисов, а также манипулировать передаваемыми и возвращаемыми данными.
Механизм XDTO обладает следующими ключевыми свойствами:
- обеспечивает работу с XML,
- привычная модель работы с данными.
В настоящее время обмен данными с различными программными платформами и системами реализуется с использованием XML: XML-документы служат для представления данных, а схема XML используется для описания форматов и структур данных. Механизм XDTO позволяет создавать требуемые для обмена схемы XML и формировать XML-документы, удовлетворяющие этим схемам.
В то же время использование механизма XDTO позволяет выполнять эти действия в привычной, для большинства разработчиков системы «1С:Предприятие», манере.
Разработчик имеет дело с типами и объектами данных, объекты данных содержат свойства, свойствам присваиваются значения и т. д. При манипулировании данными с помощью XDTO разработчик максимально изолирован от подробностей, связанных с тем, как эти данные представлены в XML. Конечно, совсем избавиться от этих подробностей невозможно, но важно, что они проявляются только там, где это действительно нужно.
16.1.2. Фабрика XDTO
16.1.2.1. Общая информация
Ключевым понятием механизма XDTO является фабрика XDTO. Фабрика XDTO содержит описание всех типов, с которыми оперирует некоторая система. В частности, для любой конфигурации системы «1С:Предприятие» существует глобальная фабрика XDTO, которая описывает все типы,используемые в конфигурации, в терминах XDTO (эта фабрика XDTO доступна через свойство глобального контекста ФабрикаXDTO).
Все описания типов, которые содержит фабрика XDTO, сгруппированы в один или несколько пакетов XDTO. Если проводить аналогию между XDTO и XML, то можно сказать, что пакет XDTO соответствует схеме XML. Таким образом, фабрика XDTO может соответствовать нескольким схемам XML.
Фабрика XDTO является полностью самодостаточной. То есть любой из типов, зарегистрированных в фабрике XDTO, может ссылаться только на типы из той же самой фабрики XDTO.
В общем случае фабрика XDTO создается единовременно на основании описаний всех типов, которые должны быть зарегистрированы в фабрике. Для создания фабрики XDTO средствами встроенного языка используется конструктор объекта ФабрикаXDTO, которому передается набор схем XML, содержащийся в объекте НаборСхемXML . Сценарий, при котором типы XDTO добавляются в фабрику по одному или группами, не
поддерживается.
В отличие от произвольной фабрики XDTO, которую может создать разработчик, глобальная фабрика XDTO создается системой автоматически, при создании новой информационной базы, и допускает добавление типов XDTO по одному или группами. Для этого используются средства визуального конструирования, позволяющие добавлять пакеты XDTO в ветку дерева метаданных Общие – XDTO-пакеты . Все пакеты,
содержащиеся в глобальной фабрике XDTO, можно разделить на три вида:
-
- Один пакет XDTO, содержащий описание типов платформы. Этот пакет является одинаковым для всех конфигураций системы «1С:Предприятие».
- Один пакет XDTO, содержащий описание типов конфигурации, созданных в результате редактирования метаданных (создания и изменения свойств справочников, документов и пр.)
- Один или несколько пакетов XDTO, описанных непосредственно в дереве объектов конфигурации, в ветке Общие – XDTO-пакеты.
16.1.2.2. Получение фабрики XDTO из файла-схемы XSD
16.1.2.3. Получение фабрики XDTO из нескольких источников
● Схемы XML, которая расположена в файле с:\temp\sсhema 1.xsd.
● Схемы XML, которая расположена в файле с:\temp\sсhema 2.xsd.
● Схемы пакета 1 текущей конфигурации.
● Схемы пакета 2 текущей конфигурации.