• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Xml 1С8

  • Автор темы ech
  • Дата начала
E

ech

Добрый день! Подскажите пож-та, как из файла .xml загрузить данные в поля ввода и табличную часть документа? Вот код, который наваял.

Процедура КнопкаВыполнитьНажатие(Кнопка)
ИмяФайла= "С:\s4et.xml";
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ИмяФайла);
Имя = Чтение.Имя;
Массив = Новый Структура(Имя);
Пока Чтение.Прочитать() Цикл
ПолучитьXMLТип(Чтение);
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Имя = Чтение.Имя;
Пока Чтение.ПрочитатьАтрибут() Цикл
Атрибут = Чтение.Значение;
КонецЦикла;
КонецЕсли;
Если Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
Массив.Вставить(Имя,Чтение.Значение);
КонецЕсли;
Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
ДобавитьЭлемент(Массив);
КонецЕсли;
КонецЦикла
КонецПроцедуры

Записывает только номер счета, на остальные тэги ругаеться, что не обнаружены.
 
T

thinkfast

Звиняй, я именно xml выгрузку ни разу не писал. А посидеть почитать/разобраться просто нету времени.
 
V

vbs

А может, если сам структуру придумываешь, использовать формат TXT или DBF - там все гораздо прозрачнее и головной боли не будет.
 
E

ech

А может, если сам структуру придумываешь, использовать формат TXT или DBF - там все гораздо прозрачнее и головной боли не будет.

дело в том, что счет фактура в последствии будет выгружаться из интернет-магазина, в формат хмл, так что по другому никак! вот я как раз придумываю структуру хмл счет фактуры, а вот как загрузить ее 1С 8.1. возникли проблемы, + как загрущить табличную часть????
 
E

ech

А в другой формат, значит, никак ?

разработчики сайта сказали, что будет формат хмл только+продумать мне структуру загрузки , т.е. какие данные нужны в этом файлике, в 1С 7.7 я загружал/выгружал данные через хмл файлы без проблем, а вот в 1С 8.1 трудновато.
Если кто поможет, бужу благодарен.
 
U

unknown181538

Процедура КнопкаВыполнитьНажатие(Кнопка)
ИмяФайла= "C:\1.xml";
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ИмяФайла);
Имя = Чтение.Имя;
Массив = Новый Структура(Имя);
Пока Чтение.Прочитать() Цикл
ПолучитьXMLТип(Чтение);
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Имя = Чтение.Имя;
Пока Чтение.ПрочитатьАтрибут() Цикл
Атрибут = Чтение.Значение;
КонецЦикла;
КонецЕсли;
Сообщить(Чтение.ТипУзла);
Сообщить(Чтение.Значение);
Если Чтение.ТипУзла = ТипУзлаXML.Текст Тогда

Массив.Вставить(Имя,Чтение.Значение);
Сообщить(Чтение.Имя);
КонецЕсли;
Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента и Чтение.Имя = "Set" Тогда
ДобавитьЭлемент(Массив);
КонецЕсли;
КонецЦикла
КонецПроцедуры

Процедура ДобавитьЭлемент(Массив)
НовыйДокумент = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовыйДокумент = Документы.СчетНаОплатуПокупателю.ПолучитьФормуНовогоДокумента();
НовыйДокумент.Дата = РабочаяДата;
НовыйДокумент.Номер = Массив.schet;
НовыйДокумент.Контрагент = Массив.Client;
НовыйДокумент.ДоговорКонтрагента = Массив.Dogovor;
НовыйДокумент.Записать();
НовыйДокумент.Открыть();
КонецПроцедуры
У меня он ругался вовсе не на отсутствие тега, а на отстуствие элемента в структуре.
И дата в XML, вообще говоря, имеет другой вид.
Также непонятно, что у вас корневой элемент, а что начало документа "Счет".
 
E

ech

У меня он ругался вовсе не на отсутствие тега, а на отстуствие элемента в структуре.
И дата в XML, вообще говоря, имеет другой вид.
Также непонятно, что у вас корневой элемент, а что начало документа "Счет".

стратил, корневой элемент Сет.
Ваш вариант намного работоспособней моего, спасибо за помощь!
 
U

unknown181538

Я бы добавил еще тэг, отмечающий начало документа, т.к., как я понимаю, в одном файле может быть несколько счетов.
 
U

unknown181538

А в массиве сколько элементов номенклатуры?
Может вам цикл использовать?)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!