читаю
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = “Dokument” Тогда
Вид = СокрЛП(ЧтениеXML.ЗначениеАтрибута(“Vid”));
Ошибка заключается в том, что вы пытаетесь получить значение атрибута “Vid” из элемента “Dokument”, но “Vid” не является атрибутом этого элемента, а является дочерним элементом. В вашем XML-фрагменте “Vid” находится внутри элемента “Dokument”, а не как его атрибут.
Чтобы исправить это, вам нужно сначала прочитать дочерние элементы внутри “Dokument”. Вот пример, как это можно сделать:
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1C
ЧтениеXML= Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ПутьКФайлу);
ПокаЧтениеXML.Прочитать()Цикл
Если ЧтениеXML.ТипУзла= ТипУзлаXML.НачалоЭлементаИ ЧтениеXML.Имя= "Dokument"Тогда
ПокаЧтениеXML.Прочитать()Цикл
Если ЧтениеXML.ТипУзла= ТипУзлаXML.НачалоЭлементаИ ЧтениеXML.Имя= "Vid"Тогда
Вид= ЧтениеXML.Значение;// Получаем значение элемента Vid
Сообщить("Вид: "+Вид);
КонецЕсли;
Если ЧтениеXML.ТипУзла= ТипУзлаXML.КонецЭлементаИ ЧтениеXML.Имя= "Dokument"Тогда
// Выходим из цикла, когда достигли конца элемента Dokument
break;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
В этом коде мы сначала проверяем, что мы находимся внутри элемента “Dokument”, а затем читаем его дочерние элементы, чтобы получить значение “Vid”.
Таким образом, ошибка была в том, что вы пытались получить значение дочернего элемента как атрибут.