Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 мая 2025, 19:57

Импорт из xml в 1С

Автор Римма, 08 сен 2017, 11:47

0 Пользователей и 1 гость просматривают эту тему.

Римма

Добрый день.

Хочу научиться делать импорт xml в 1С.

Допустим у меня есть xml файл со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<ORDERS>
<ORDER DocID="001" SourceFile="Name001.xml">
    <tegNumber>1001</tegNumber>
    <tegDate>20170908</tegDate>
    <tegTime>120000</tegTime>
    <OrderDetail>
        <TabName>Фрукты</TabName>
        <Options>
            <DocDetailOptions>
                <Name>MaxSum</Name>
                <Value>1500</Value>
            </DocDetailOptions>
        </Options>
    </OrderDetail>
    <OrderDetail>
        <TabName>Овощи</TabName>
        <Options>
            <DocDetailOptions>
                <Name>MaxSum</Name>
                <Value>700</Value>
            </DocDetailOptions>
        </Options>
    </OrderDetail>
</Order>
</Orders>


Т.е. имеются 3 реквизита "Номер" = 1001, "Дата" = 08.09.2017 и "Время" = 12:00:00 и 2 строки таблицы "Фрукты, 1500" и "Овощи, 700"

Я хочу при нажатии на кнопку "Импорт из xml" (на форме списка документа "А") создавать документ А с реквизитами "Номер" = 1001, "Дата и время" = 08.09.2017 12:00:00 и таблицей "Товары" в виде:

   
НаименованиеСумма
Фрукты1500
Овощи700

Кнопка уже есть, которая ссылается на функцию "ЗагрузитьДокументА(ВыбранныйФайл)" (Выбор xml уже реализован).

Прошу подсказать, как теперь нужно создать и заполнить документ А.

Пользуюсь 1С: Предприятие 8.3 (8.3.8.2054)

Спасибо всем ответившим!

pavl_vs

Римма,
1. Конфигурация?
2. Реализация импорта - внешней обработкой или изменением конфигуратора?

Римма

1) 2.0.66.35 и 3.0.51.27
2) в конфигураторе.
На данный момент в конфигураторе 3.0.51.27 в модуле менеджера документа А есть 2 процедуры;
&НаКлиенте
Процедура КнопкаЗагрузитьXML(Элемент)
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    Фильтр = "xml|*.xml";
    ДиалогОткрытияФайла.Фильтр = Фильтр;

    Если ДиалогОткрытияФайла.Выбрать() Тогда
        ВыбранныйФайл = ДиалогОткрытияФайла.ВыбранныеФайлы;
        ПрочитатьXMLФайлА(ВыбранныйФайл);
    КонецЕсли;
   
    ОбновитьИнтерфейс();
КонецПроцедуры

&На Сервере
Процедура ПрочитатьXMLФайлА(Элемент)

    ПутьКФайлу = ВыбранныйФайл[0];
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
   
    //Дальше не знаю как
   
КонецПроцедуры

pavl_vs

Римма,
Цитировать//Дальше не знаю как

Вы в самом начале пути - разборка XML-Файла.

Думаю Вам поможет статья https://infostart.ru/public/311011/
Для начала возьмите простой, самый прозрачный, пусть не оптимальный, вариант последовательного чтения.

Римма

Большое спасибо за статью! :)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск