Выгрузка данных XML (XDTO). Обмен XML.
Товарищи, доброго дня.
Только начинаю постигать работу с XML в 1С. Изучаю пакеты XDTO.
Прошу вашей помощи, столкнулся со следующей проблемой:
Нужно выгрузить все реквизиты документа в файл XML для обработки программистом сторонней информационной системы с целью дальнейшего обмена между базами.
Для начала я прочитал, что можно сделать выгрузку XML-Схемы (Экспорт XML-Схемы данных конфигурации), но ему она не подошла. Он попросил выгрузить данные в виде XML-файла с данными. Прочитав про возможности СериализаторXDTO, написал следующий код:
Функция возвращает XML-файл следующего вида:
На что меня попросили указывать теги на английском языке.
Так как конфигурация базовая и не имеет возможности редактирования, я создал расширение, выгрузил из основной конфигурации XML-схему (Экспорт XML-Схемы данных конфигурации) и загрузил данную схему в новый пакетXDTO в созданном расширении.
В данном пакете я переименовал объект, чтобы изменить название тега "АдресДоставки" заменил на "AdressDostavki"
Далее в коде я использовал ФабрикаXDTO:
Но в "ТипОбъекта" осталось старое значение "АдресДоставки" вместо "AdressDostavki"
Я подумал что проблема в пространстве имен и попробовал изменить пространство имен в моём пакетеXDTO в расширении, но при переименовании 1С выдает ошибку^
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:http://KTK-v8.1c.ru/8.1/data/enterprise/current-config
Тип '{http://KTKv8.1c.ru/8.1/data/enterprise/current-config }DocumentRef.ПередачаОСВАренду' свойства 'Ref' не определен
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:http://KTK-v8.1c.ru/8.1/data/enterprise/current-config
Тип '{http://KTKv8.1c.ru/8.1/data/enterprise/current-config }CatalogRef.Контрагенты' свойства 'Контрагент' не определен
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:http://KTK-v8.1c.ru/8.1/data/enterprise/current-config
Тип '{http://KTKv8.1c.ru/8.1/data/enterprise/current-config }CatalogRef.ДоговорыКонтрагентов' свойства 'ДоговорКонтрагента' не определен
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:http://KTK-v8.1c.ru/8.1/data/enterprise/current-config
Тип '{http://KTKv8.1c.ru/8.1/data/enterprise/current-config }CatalogRef.Организации' свойства 'Организация' не определен
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:http://KTK-v8.1c.ru/8.1/data/enterprise/current-config
Тип '{http://KTKv8.1c.ru/8.1/data/enterprise/current-config }CatalogRef.Пользователи' свойства 'Ответственный' не определен
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:http://KTK-v8.1c.ru/8.1/data/enter
.....и т.д.
Знающие люди, подскажите, что это за ошибка и как с ней бороться?
Подразумеваю что это из-за переименования стандартно пространства имен
"http://v8.1c.ru/8.1/data/enterprise/current-config"
_____________________________________________________________________
Конфигурация "Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.53.39)",
Платформа 1С:Предприятие 8.3 (8.3.12.1529)
Только начинаю постигать работу с XML в 1С. Изучаю пакеты XDTO.
Прошу вашей помощи, столкнулся со следующей проблемой:
Нужно выгрузить все реквизиты документа в файл XML для обработки программистом сторонней информационной системы с целью дальнейшего обмена между базами.
Для начала я прочитал, что можно сделать выгрузку XML-Схемы (Экспорт XML-Схемы данных конфигурации), но ему она не подошла. Он попросил выгрузить данные в виде XML-файла с данными. Прочитав про возможности СериализаторXDTO, написал следующий код:
Функция СериализоватьОбъект(Ссылка) Экспорт
Значение = Ссылка.ПолучитьОбъект();
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение);
СтрокаXML = ЗаписьXML.Закрыть();
Возврат СтрокаXML;
КонецФункции
ПоказатьФункция возвращает XML-файл следующего вида:
<DocumentObject.СчетНаОплатуПокупателю xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Ref>b8e93499-0153-11e6-bdd5-00306758cebf</Ref>
<DeletionMark>false</DeletionMark>
<Date>2016-04-13T13:00:19</Date>
<Number>ПК00-000001</Number>
<Posted>true</Posted>
<Организация>a2028b2c-c124-11e1-886b-001e5848397d</Организация>
<Склад>a2028b32-c124-11e1-886b-001e5848397d</Склад>
<ПодразделениеОрганизации>00000000-0000-0000-0000-000000000000</ПодразделениеОрганизации>
<Контрагент>b8e93494-0153-11e6-bdd5-00306758cebf</Контрагент>
<ДоговорКонтрагента>b8e93495-0153-11e6-bdd5-00306758cebf</ДоговорКонтрагента>
<АдресДоставки>196158, г. Санкт-Петербург, Московское ш., дом № 28, литера А, помещение 1Н</АдресДоставки>
<ОрганизацияПолучатель>a2028b2c-c124-11e1-886b-001e5848397d</ОрганизацияПолучатель>
<СтруктурнаяЕдиница>a58e6af7-7925-11e3-a577-00306758cebf</СтруктурнаяЕдиница>
<Ответственный>aa00559e-ad84-4494-88fd-f0826edc46f0</Ответственный>
<Комментарий/>
<ВалютаДокумента>9c00bd3d-c124-11e1-886b-001e5848397d</ВалютаДокумента>
<КратностьВзаиморасчетов>1</КратностьВзаиморасчетов>
<СуммаСкидки>0</СуммаСкидки>
<КурсВзаиморасчетов>1</КурсВзаиморасчетов>
<СуммаВключаетНДС>true</СуммаВключаетНДС>
<СуммаДокумента>40000</СуммаДокумента>
<ТипЦен>00000000-0000-0000-0000-000000000000</ТипЦен>
<УдалитьУчитыватьНДС>false</УдалитьУчитыватьНДС>
<УдалитьСтатусОплаты/>
<Руководитель>a58e6afb-7925-11e3-a577-00306758cebf</Руководитель>
<ГлавныйБухгалтер>a58e6afb-7925-11e3-a577-00306758cebf</ГлавныйБухгалтер>
<УдалитьЗаРуководителяПоПриказу/>
<УдалитьЗаГлавногоБухгалтераПоПриказу/>
<ДокументБезНДС>false</ДокументБезНДС>
<ДополнительныеУсловия>bd299647-dc5b-11e4-88f9-00306758cebf</ДополнительныеУсловия>
<ЗаГлавногоБухгалтераНаОсновании>00000000-0000-0000-0000-000000000000</ЗаГлавногоБухгалтераНаОсновании>
<ЗаРуководителяНаОсновании>00000000-0000-0000-0000-000000000000</ЗаРуководителяНаОсновании>
<Товары>
<Номенклатура>b8e93498-0153-11e6-bdd5-00306758cebf</Номенклатура>
<Содержание/>
<Количество>2</Количество>
<Цена>20000</Цена>
<Сумма>40000</Сумма>
<ПроцентСкидки>0</ПроцентСкидки>
<СуммаСкидки>0</СуммаСкидки>
<СтавкаНДС>НДС18</СтавкаНДС>
<СуммаНДС>6101.69</СуммаНДС>
</Товары>
</DocumentObject.СчетНаОплатуПокупателю>
ПоказатьНа что меня попросили указывать теги на английском языке.
Так как конфигурация базовая и не имеет возможности редактирования, я создал расширение, выгрузил из основной конфигурации XML-схему (Экспорт XML-Схемы данных конфигурации) и загрузил данную схему в новый пакетXDTO в созданном расширении.
В данном пакете я переименовал объект, чтобы изменить название тега "АдресДоставки" заменил на "AdressDostavki"
Далее в коде я использовал ФабрикаXDTO:
Функция ФабрикаОбъект(Ссылка) Экспорт
МойXML = Новый ЗаписьXML;
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
МойXML.ОткрытьФайл("C:\Users\811776\Desktop\ВыгрузкаСчетов", ПараметрыЗаписиXML);
МойXML.ЗаписатьОбъявлениеXML();
ТипОбъекта = ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config","DocumentObject.СчетНаОплатуПокупателю");
МойXML.Закрыть();
КонецФункции
ПоказатьНо в "ТипОбъекта" осталось старое значение "АдресДоставки" вместо "AdressDostavki"
Я подумал что проблема в пространстве имен и попробовал изменить пространство имен в моём пакетеXDTO в расширении, но при переименовании 1С выдает ошибку^
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:
Тип '{
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:
Тип '{
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:
Тип '{
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:
Тип '{
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:
Тип '{
Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.ПередачаОСВАренду пакет:
.....и т.д.
Знающие люди, подскажите, что это за ошибка и как с ней бороться?
Подразумеваю что это из-за переименования стандартно пространства имен
"http://v8.1c.ru/8.1/data/enterprise/current-config"
____________________________________________________________
Конфигурация "Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.53.39)",
Платформа 1С:Предприятие 8.3 (8.3.12.1529)
По теме из базы знаний
- RabbitMQ + Конвертация Данных 3.0
- Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3
- Инструменты обмена данными через xml используя сериализацию объектов
- Выгрузка и загрузка данных XML адаптивная с гибкими отборами 2024
- WEB-курс «Интеграция и обмен данными» с 12 мая по 16 июня 2025 г.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Оспади... Согласуете все реквизиты, которые нужны и за 1 час делается внешняя обрботка/печформа с выгрузкой
в виде
и т.д.
В чем необходимость XDTO в вашем случае?
в виде
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ПутьККаталогу+"\"+НазваниеФайла, "windows-1251"); //Открываем файл из переменной «Путь», указанной на форме обработки
ЗаписьXML.ЗаписатьОбъявлениеXML(); // Так как мы создаем документ-XML ,а не фрагмент, то необходимо в начало его поместить объявление
ЗаписьXML.ЗаписатьНачалоЭлемента("Файл"); //записываем первый элемент
ЗаписьXML.ЗаписатьНачалоЭлемента("СвУчДокОбор");
ЗаписьXML.ЗаписатьАтрибут("ИдПол", ИдКонтрагента);
ЗаписьXML.ЗаписатьНачалоЭлемента("СвОЭДОтпр");
ЗаписьXML.ЗаписатьАтрибут("ИННЮЛ", ИНН");
ЗаписьXML.ЗаписатьАтрибут("ИдЭДО", ИдЭДО);
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьКонецЭлемента();/
ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
Показатьи т.д.
В чем необходимость XDTO в вашем случае?
(2) Ну я посчитал, что так будет проще в дальнейшем изменять и дополнять существующую структуру. По итогу ведь 1С будет принимать файлы из сторонней ИС, поэтому в дальнейшем потребуется загрузка XML в соответствии с тем, что я вышлю. А загрузка XML с помощью пакетов XDTO вроде как самая быстрая и удобная из возможных.
Поэтому и выбрал XDTO, чтобы создать структуру, выгрузить для сторонней ИС и в дальнейшем загружать файлы XML исходя из исходной структуры XDTO.
Про Ваш способ записи я читал, но мне показалось неудобным выгружать XML без пакетаXDTO, а загружать с пакетомXDTO
Если я неправ, прошу меня поправить )
Поэтому и выбрал XDTO, чтобы создать структуру, выгрузить для сторонней ИС и в дальнейшем загружать файлы XML исходя из исходной структуры XDTO.
Про Ваш способ записи я читал, но мне показалось неудобным выгружать XML без пакетаXDTO, а загружать с пакетомXDTO
Если я неправ, прошу меня поправить )
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот