База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как загрузить приход товаров из XML файла в 1С? › RE: Как загрузить приход товаров из XML файла в 1С?

Сергей, вот пример кода для загрузки прихода из XML файла в 1С. Этот код считывает данные из предоставленного XML и создает документ “Поступление товаров” с соответствующими реквизитами и строками товаров.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 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 файлу, например:
1 2 | 1C ЗагрузитьПриходИзXML("C:pathtoyourfile.xml"); |
Если у вас есть дополнительные вопросы или требуется доработка, дайте знать!