Вход | Регистрация


1С:Предприятие ::

Метки: 

XML выгрузка

Я
   Стажер_1С
 
09.06.18 - 09:28
Добрый день всем!
Подскажите какой-нибудь материал,где описана как создать обработку выгрузки в xml файл из 1с, использую xdto пакет
 
 
   FIXXXL
 
1 - 09.06.18 - 09:31
Лови, стажер!

&НаСервере
Процедура ХДТОвФайл(ПолныйПуть, ОбъектХДТО)
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ПолныйПуть);
    ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектХДТО);
    ЗаписьXML.Закрыть();    
    
КонецПроцедуры
   igorPetrov
 
2 - 09.06.18 - 09:33
(1) Круто, чо...
   Стажер_1С
 
3 - 09.06.18 - 09:33
Спасибо,то есть тут он открывает файл xml и при загрузки создает схему xml и загружает его в пакет  xdto?
   FIXXXL
 
4 - 09.06.18 - 09:34
(3) тут он пишет в файл заранее созданный ОбъектХДТО
   Стажер_1С
 
5 - 09.06.18 - 09:35
Мне надо с нуля создать пакет xdto, со своими типами, и потом создать обработку, которая будет выгружать данные и формировать xml файл, определенной структуры
   igorPetrov
 
6 - 09.06.18 - 09:36
(5) Создавай. Можно.
   FIXXXL
 
7 - 09.06.18 - 09:36
(5) создавай
будут вопросы - пиши
тебе для каких целей это надо?
   Стажер_1С
 
8 - 09.06.18 - 09:39
Я знаю, что можно)
Нужно написать выгрузку данных из 1с в xml. Там большой набор данных- контрагенты,номенклатура,документы, остатки.
Потом данный xml файл будет загружаться на сайт. Пример того как должен выглядит xml файл есть. Поэтому мне надо создать свой пакет xdto, чтобы иметь структуру такую же как в файле. Я просто не знаю с чего начать
   RomaH
 
9 - 09.06.18 - 09:43
(8) начни с пакета - пару атрибутов опиши
потом сделай выгрузку для них
   dvva
 
10 - 09.06.18 - 09:44
сначала определись структура хдто пакета будет жесткая или нет (имеет смысл внедрять в конфу или нет)
 
  Рекламное место пустует
   Стажер_1С
 
11 - 09.06.18 - 09:45
А можно ее внешней как то сделать?
   quest
 
12 - 09.06.18 - 09:45
Поищи на инфостарте "XDTO это просто"
   quest
 
13 - 09.06.18 - 09:46
(11) да.
   Стажер_1С
 
14 - 09.06.18 - 09:49
Да мне нельзя меня конф,все внешнее, то есть в этой статье описано как это сделать?
   hhhh
 
15 - 09.06.18 - 09:50
(8) в принципе xdto тут у тебя лишнее звено в цепочке. Пиши просто данные в файл, без всяких xdto.
   RomaH
 
16 - 09.06.18 - 09:51
(15) это грустно и одиноко
   Стажер_1С
 
17 - 09.06.18 - 09:53
Просто выгрузку в xml?Хорошо,а как мне описать какой должен быть файл,в смысле структуру?Мне на работе сказали через пакет делать
   quest
 
18 - 09.06.18 - 09:54
(14) нет в статье не написано как сделать твою выгрузку. там просто дано объяснение что такое xdto, для чего используется, как работать с ним.
Конфу для работы с пакетом не надо менять, пакет  можно создать как програмно (кодом), так и на основании описания из файла xsd
   RomaH
 
19 - 09.06.18 - 10:02
(17) правильно сказали
если конфу не менять - рисуй схему
в конфигураторе набираешь пакет и экспортируй в xsd
или если есть другой конструктор - используй его
   RomaH
 
20 - 09.06.18 - 10:04
но я бы начал с вопроса - назачем вам XML
JSON лучше
   RomaH
 
21 - 09.06.18 - 10:13
   FIXXXL
 
22 - 09.06.18 - 10:26
(17) у тебя есть уже xsd с необходимой структурой?
если есть, почитай СП на тему СоздатьФабрикуXDTO (CreateXDTOFactory)
если нет и нельзя конфу менять, можно в чистой конфе создать XDTO-пакет необходимой структуры, ПКМ - Экспорт ХМЛ-схемы и получившийся xsd-файл использовать в СоздатьФабрикуXDTO(ТвойXSD)
далее через получившиесю фабрику набиваешь данными ОбъектХДТО и сохраняешь в ХМЛ-файл

весь гемморой - описать xsd и написать алгоритмы выгрузки данных...
   Стажер_1С
 
23 - 09.06.18 - 10:48
Спасибо большое,буду читать и делать. Конф буду менять все таки.Добавлю свой пакет xdto,со своими значениями.А там посмотрю как будет.Если что напишу сюда,спасибо большое вам всем!
   Стажер_1С
 
24 - 09.06.18 - 10:49
xml потому что заказчику надо в таком формате
   FIXXXL
 
25 - 09.06.18 - 11:11
(23) выше писал, необязательно конфу менять, пакет описать можно в любой тестовой конфе
можно даже сварганить внешнюю обработку, поместив выгруженный из тестовой конфы xsd в макет обработки
   Стажер_1С
 
26 - 09.06.18 - 12:09
Смотрите есть пакет xdro, прописала заполнения,выдает ошибку.
Текст кода:
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(путь, ПараметрыЗаписиXML);
    ЗаписьXML.ЗаписатьОбъявлениеXML(); 
    
    ТипЗначенияXDTO = ФабрикаXDTO.Тип("Выгрузка", "Номенклатура"); 
    НоменклатураXDTO = ФабрикаXDTO.Создать(ТипЗначенияXDTO);    

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Наименование КАК Наименование,
                   |    Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.ПометкаУдаления = ЛОЖЬ";
    Запрос.УстановитьПараметр("Ссылка",Справочники.Номенклатура.НайтиПоКоду("00-000000001799"));
    Результат = Запрос.Выполнить().Выбрать();
    Пока Результат.Следующий() Цикл

        НоменклатураXDTO.Наименование = Результат.Наименование;
        НоменклатураXDTO.ЕдИзмерения = Строка(Результат.ЕдиницаИзмерения);

КонецЦикла;

ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, НоменклатураXDTO);

ЗаписьXML.Закрыть();
 Сообщить("Создан файл ");

Ругается вот на это: 

    
{ВнешняяОбработка.Тест_XML.Форма.Форма.Форма(24)}: Поле объекта недоступно для записи (Наименование)
        НоменклатураXDTO.Наименование = Результат.Наименование;
   Стажер_1С
 
27 - 09.06.18 - 12:41
Разобралась в причине ошибки, надо было указать в свойстве: форма = атрибут



Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует