Выгрузка документов в xml
Пытаюсь выгрузить документы Приходной накладной, не сильна в этом, прописывала структуру в процедуре записиXML, но выгружает документы не по очереди, а сначала все номера, даты и тд. Создала фабрикуXDTO, прописала код
Выдает ошибку -Поле объекта недоступно для записи (Документы)
Документы = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.sample-package.org" ,"Документы"));
Как исправить не знаю
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\126.xml","UTF-8");
Документы = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.sample-package.org" ,"Документы"));
ЗаписьXML.ЗаписатьОбъявлениеXML();
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
Документ = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип( "http://www.sample-package.org","Документ"));
Документ.Номер= Выборка.Номер;
Документ.Дата=Выборка.Дата;
Документ.СуммаПоДокументу=Выборка.СуммаПоДокументу;
//ЗаписатьXML(ЗаписьXML,Выборка.ПолучитьОбъект(), НазначениеТипаXML.Явное)
КонецЦикла;
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
Для каждого стр из Выборка.СписокНоменклатуры цикл
СписокНоменклатуры = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.sample-package.org","СписокНоменклатуры"));
СписокНоменклатуры.Код= стр.Номенклатура.Код;
СписокНоменклатуры.Номенклатура= стр.Номенклатура;
СписокНоменклатуры.Количество= стр.Количество;
СписокНоменклатуры.Цена =стр.Цена;
СписокНоменклатуры.Сумма=стр.Сумма;
КонецЦикла;
КонецЦикла;
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Документы);
ЗаписьXML.Закрыть();
ПоказатьВыдает ошибку -Поле объекта недоступно для записи (Документы)
Документы = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.sample-package.org" ,"Документы"));
Как исправить не знаю
Прикрепленные файлы:
По теме из базы знаний
- Выгрузка документа в XML произвольной структуры (+пример для выгрузки в ECOD)
- Выгрузка документов в XML (любая конфигурация)
- Выгрузка документов в XML файл для электронного документооборота (Диадок, Контур, СБИС и др.)
- Выгрузка документа в XML-файл из формы списка документа по правилам конвертации данных 2.1, 3.0 для конфигурации Управление торговлей 11.4
- Выгрузка документов обработкой XML с отбором по реквизиту. Частичная выгрузка документов обработкой XML
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(4) Спасибо, я бы и не догадалась что из за этого
Правда теперь другая ошибка...
Ошибка при установке значения атрибута контекста (Номенклатура)
СписокНоменклатуры.Номенклатура= стр.Номенклатура;
по причине:
Ошибка отображения типов:
Отображение типа 'СправочникСсылка.Номенклатура' в тип '{http://www.w3.org/2001/XMLSchema }anySimpleType'
Правда теперь другая ошибка...
Ошибка при установке значения атрибута контекста (Номенклатура)
СписокНоменклатуры.Номенклатура= стр.Номенклатура;
по причине:
Ошибка отображения типов:
Отображение типа 'СправочникСсылка.Номенклатура' в тип '{
(5)Возможно в этом коде что то поменять\добавить, чтобы документы записывались по очереди?
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\126.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Документы");
ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
ЗаписатьXML( ЗаписьXML ,Выборка.Номер,"Номер");
ЗаписатьXML( ЗаписьXML,Выборка.Дата,"Дата");
ЗаписатьXML(ЗаписьXML,Выборка.СуммаПоДокументу,"СуммаДокумента");
//ЗаписатьXML(ЗаписьXML,Выборка.ПолучитьОбъект(), НазначениеТипаXML.Явное)
КонецЦикла;
ЗаписьXML.ЗаписатьНачалоЭлемента("СписокНоменклатуры");
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
Для каждого стр из Выборка.СписокНоменклатуры цикл
ЗаписатьXML (ЗаписьXML,стр.Номенклатура.Код,"НоменклатураКод");
ЗаписатьXML( ЗаписьXML ,стр.Номенклатура,"НоменклатураНаим");
ЗаписатьXML( ЗаписьXML ,стр.Количество,"Количество");
ЗаписатьXML( ЗаписьXML ,стр.Цена,"Цена");
ЗаписатьXML( ЗаписьXML ,стр.Сумма,"Сумма");
КонецЦикла;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //СписокНоменклатуры
ЗаписьXML.ЗаписатьКонецЭлемента(); //Документ
ЗаписьXML.ЗаписатьКонецЭлемента(); //Документы
ЗаписьXML.Закрыть();
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\126.xml");
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("Документы");
ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
ЗаписатьXML( ЗаписьXML ,Выборка.Номер,"Номер");
ЗаписатьXML( ЗаписьXML,Выборка.Дата,"Дата");
ЗаписатьXML(ЗаписьXML,Выборка.СуммаПоДокументу,"СуммаДокумента");
//ЗаписатьXML(ЗаписьXML,Выборка.ПолучитьОбъект(), НазначениеТипаXML.Явное)
КонецЦикла;
ЗаписьXML.ЗаписатьНачалоЭлемента("СписокНоменклатуры");
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Пока Выборка.Следующий() Цикл
Для каждого стр из Выборка.СписокНоменклатуры цикл
ЗаписатьXML (ЗаписьXML,стр.Номенклатура.Код,"НоменклатураКод");
ЗаписатьXML( ЗаписьXML ,стр.Номенклатура,"НоменклатураНаим");
ЗаписатьXML( ЗаписьXML ,стр.Количество,"Количество");
ЗаписатьXML( ЗаписьXML ,стр.Цена,"Цена");
ЗаписатьXML( ЗаписьXML ,стр.Сумма,"Сумма");
КонецЦикла;
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента(); //СписокНоменклатуры
ЗаписьXML.ЗаписатьКонецЭлемента(); //Документ
ЗаписьXML.ЗаписатьКонецЭлемента(); //Документы
ЗаписьXML.Закрыть();
(6) А чем вам стандартная обработка выгрузки не нравиться ?) https://its.1c.ru/db/metod8dev/content/4126/hdoc
(10)Пример рабочего кода, тут используются стандартные XDTO пакеты (не надо создавать свои),
Получайте документ и записываете в XML
Получайте документ и записываете в XML
&НаСервере
Процедура Команда1НаСервере()
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\База 1\test.XML", "UTF-8"); ////C:\База 1\test.XML - путь к вашему файлу
ЗаписьXML.ЗаписатьОбъявлениеXML();
//ЗаписьXML.ЗаписатьНачалоЭлемента("_1CV8DtUD", "http://www.1c.ru/V8/1CV8DtUD/");
ЗаписьXML.ЗаписатьНачалоЭлемента("ВсеДокументы");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("V8Exch", "http://www.1c.ru/V8/1CV8DtUD/");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("core", "http://v8.1c.ru/data");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("v8", "http://v8.1c.ru/8.1/data/enterprise/current-config");
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xs", "http://www.w3.org/2001/XMLSchema");
//ЗаписьXML.ЗаписатьНачалоЭлемента("V8Exch:Data");
ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
Сериализатор = СериализаторXDTO;
Выборка = Документы.АвансовыйОтчет.Выбрать();
Пока Выборка.Следующий() цикл
ОбъектТ = Выборка.Ссылка.ПолучитьОбъект();
Сериализатор.ЗаписатьXML(ЗаписьXML, ОбъектТ);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере()
КонецПроцедуры
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)