Чтение и запись из xml в 1с
xml следующего вида (маленькая часть - пример):
Документ с тэгом DOC, строка документа (массив) с тэгом STRING (эти данные идут в табличную часть.
первая часть кода:
цикл на этом не заканчивается, а добавляется табличная часть
при чтении и записи выдает ошибку "Поле объекта не обнаружено (string)
МассивСтрок = ОбъектXDTO.DOC.string;"
Именно на этом месте:
Помогите пожалуйста разобраться с массивом
<?xml version="1.0" encoding="windows-1251"?>
<!--DocSale--><Root>
<Doc ID="89121145" SNAME="4" >
<String NOM="1" ID_EL="47594" SNAME="Лапша" />
<String NOM="2" ID_EL="47595" SNAME="Греча" />
</Doc>
</Root>
ПоказатьДокумент с тэгом DOC, строка документа (массив) с тэгом STRING (эти данные идут в табличную часть.
первая часть кода:
Для каждого Doc Из ОбъектXDTO.Doc Цикл
НовыйДок = Документы.Приход.СоздатьДокумент();
НовыйДок.Наименование = DOC.SNAME;
НовыйДок.Дата= ТекущаяДата();
НовыйДок.Код = Doc.ID;
Показатьцикл на этом не заканчивается, а добавляется табличная часть
при чтении и записи выдает ошибку "Поле объекта не обнаружено (string)
МассивСтрок = ОбъектXDTO.DOC.string;"
Именно на этом месте:
МассивСтрок = ОбъектXDTO.DOC.string;
Для каждого МассивСтрок Из Doc.String Цикл
Помогите пожалуйста разобраться с массивом
По теме из базы знаний
- Разборка-сборка XML
- 1С 8. СКД: смена типа «набор данных – запрос» на «набор данных – объект» с сохранением полей
- Интеграция Zimbra и 1С
- Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 19 июня по 12 июля 2023г.
- Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 25 июня по 18 июля 2024г.
Найденные решения
все получилось!!!
сделал функцию :
далее прописал так:
сделал функцию :
Функция КоллекцияXDTO(Элемент)
Если ТипЗнч(Элемент)=Тип("ОбъектXDTO") Тогда
МассивXDTO=Новый Массив;
МассивXDTO.Добавить(Элемент);
Возврат МассивXDTO;
КонецЕсли;
Возврат Элемент;
КонецФункции
Показатьдалее прописал так:
МассивСтрок = DOC.string;
Для Каждого String из КоллекцияXDTO(МассивСтрок) Цикл
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)в этом DOC строки состава с тэгом string. Но я так понял, стринг - идет как массив, все перепробовал.
хотя, был пример такого xml:
Все идеально считывается.
Для каждого Contr Из ОбъектXDTO.RegContr.Contr Цикл
Но все потому, что contr не идет как массив, а отдельные строки для справочника.
как быть с массивом, уже все перепробовал.
хотя, был пример такого xml:
<RegContr>
<Contr ID="3139" SNAME="Контрагент1;" />
</RegContr>
Все идеально считывается.
Для каждого Contr Из ОбъектXDTO.RegContr.Contr Цикл
Но все потому, что contr не идет как массив, а отдельные строки для справочника.
как быть с массивом, уже все перепробовал.
все получилось!!!
сделал функцию :
далее прописал так:
сделал функцию :
Функция КоллекцияXDTO(Элемент)
Если ТипЗнч(Элемент)=Тип("ОбъектXDTO") Тогда
МассивXDTO=Новый Массив;
МассивXDTO.Добавить(Элемент);
Возврат МассивXDTO;
КонецЕсли;
Возврат Элемент;
КонецФункции
Показатьдалее прописал так:
МассивСтрок = DOC.string;
Для Каждого String из КоллекцияXDTO(МассивСтрок) Цикл
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот