База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как загрузить приход товаров из XML файла в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 месяцев, 1 неделя назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
14 мая 2025 в 16:30 #32547
напиши загрузку прихода из xml файла
-<issuance sender="590764707" xmlns="
—
ПоступлениеТоваров
24.02.2025
3000661
Склад опт по ул.Пушкина 37А
5
Резерв Сервисного центра
18
—
DK0050X1
Набор инструментов DK0050X1 (HP1631 / GA5030R) + набор (D-08660)
MAKITA
Инструмент MAKITA
_MAKITA
MAKITA
245.55
252.41
301.52
1
515
—
122D65-7
Редуктор__DHP489
MAKITA
Запчасти MAKITA
_MAKITA
MAKITA
187.16
187.16
224.59
1
393.5
-
14 мая 2025 в 16:30 #32548
Сергей, вот пример кода для загрузки прихода из XML файла в 1С. Этот код считывает данные из предоставленного XML и создает документ «Поступление товаров» с соответствующими реквизитами и строками товаров.
1C &НаСервереФункция ЗагрузитьПриходИзXML(ПутьКФайлу) // Создаем объект для чтения XML ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ПутьКФайлу); // Создаем новый документ "Поступление товаров" ДокументПрихода = Документы.ПоступлениеТоваров.СоздатьДокумент(); // Читаем корневой элемент ЧтениеXML.Прочитать(); Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "issuance" Тогда // Читаем данные документа ЧтениеXML.Прочитать(); Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Dokument" Тогда // Читаем реквизиты документа Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXML.Имя = "Vid" Тогда ДокументПрихода.Вид = ЧтениеXML.ЧитатьТекст(); КонецЕсли; Если ЧтениеXML.Имя = "DataDok" Тогда ДокументПрихода.Дата = ЧтениеXML.ЧитатьТекст(); КонецЕсли; Если ЧтениеXML.Имя = "NomerDok" Тогда ДокументПрихода.Номер = ЧтениеXML.ЧитатьТекст(); КонецЕсли; Если ЧтениеXML.Имя = "SkladOtpravitel" Тогда ДокументПрихода.СкладОтправитель = ЧтениеXML.ЧитатьТекст(); КонецЕсли; Если ЧтениеXML.Имя = "SkladPoluchatel" Тогда ДокументПрихода.СкладПолучатель = ЧтениеXML.ЧитатьТекст(); КонецЕсли; КонецЕсли; Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда Если ЧтениеXML.Имя = "Dokument" Тогда // Переходим к чтению товаров Прервать; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; // Читаем товары Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Tovar" Тогда // Создаем строку товара СтрокаТовара = ДокументПрихода.Товары.Добавить(); Пока ЧтениеXML.Прочитать() Цикл Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Если ЧтениеXML.Имя = "Tovar_Artikul" Тогда СтрокаТовара.Артикул = ЧтениеXML.ЧитатьТекст(); КонецЕсли; Если ЧтениеXML.Имя = "Tovar_Name" Тогда СтрокаТовара.Наименование = ЧтениеXML.ЧитатьТекст(); КонецЕсли; Если ЧтениеXML.Имя = "Tovar_Kol" Тогда СтрокаТовара.Количество = Число(ЧтениеXML.ЧитатьТекст()); КонецЕсли; Если ЧтениеXML.Имя = "Tovar_CenaRealizaciiUchetnaya" Тогда СтрокаТовара.Цена = Число(ЧтениеXML.ЧитатьТекст()); КонецЕсли; КонецЕсли; Если ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда Если ЧтениеXML.Имя = "Tovar" Тогда Прервать; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; // Закрываем документ ДокументПрихода.Записать(); ЧтениеXML.Закрыть(); КонецФункции### Описание кода:
1. **Чтение XML**: Используется объект `ЧтениеXML` для открытия и чтения данных из файла.
2. **Создание документа**: Создается новый документ «Поступление товаров».
3. **Чтение реквизитов**: Извлекаются реквизиты документа из XML.
4. **Чтение товаров**: Для каждого товара создается строка в документе, где заполняются необходимые поля.
5. **Запись документа**: После заполнения всех данных документ записывается в базу.Этот код можно вызывать, передавая путь к XML файлу, например:
1C ЗагрузитьПриходИзXML("C:pathtoyourfile.xml");Если у вас есть дополнительные вопросы или требуется доработка, дайте знать!
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.