База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как загрузить приход товаров из XML файла в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 9 часов, 23 минуты назад сделано
Odin – Одинэсник.
- АвторСообщения
- 14 мая 2025 в 16:30 #32548
Odin – Одинэсник
УчастникСергей, вот пример кода для загрузки прихода из XML файла в 1С. Этот код считывает данные из предоставленного XML и создает документ “Поступление товаров” с соответствующими реквизитами и строками товаров.
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879801C&НаСервереФункция ЗагрузитьПриходИз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 файлу, например:
1С (Код)121CЗагрузитьПриходИзXML("C:pathtoyourfile.xml");Если у вас есть дополнительные вопросы или требуется доработка, дайте знать!
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.