Имя: Пароль:
1C
1С v8
Таблица Значений ошибка не является значением объектного типа
0 karpos
 
12.02.14
13:00
Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
    ТЗ = Новый ТаблицаЗначений;
    //ТЗ.Колонки.Добавить("Грузополучатель");
    ТЗ.Колонки.Добавить("Товар");
    ТЗ.Колонки.Добавить("Количество");
    ТЗ.Колонки.Добавить("ЦенаОпт");
    ТЗ.Колонки.Добавить("СуммаОпт");
        
    Чтение = Новый ЧтениеXML;
    Чтение.ОткрытьФайл(ПутьКФайлу);
    Пока Чтение.Прочитать() Цикл
                
        Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            ИмяУзла = Чтение.Имя;
            Если ИмяУзла = "ТоварнаяПозиция" Тогда
                ТекСтрока = ТЗ.Добавить();
            КонецЕсли;
            
        ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
            Если  ИмяУзла = "Грузополучатель" Тогда
                ТекГрузополучатель = ЛЕВ(Чтение.Значение, Найти(Чтение.Значение, ",")-1);
                //ТекСтрока.Грузополучатель = ТекГрузополучатель;
                Сообщить(ТекГрузополучатель);
            КонецЕсли;
            
            Если  ИмяУзла = "Товар" Тогда
                //Сообщить(Чтение.Значение);
                ТекСтрока.Товар = Чтение.Значение;
            КонецЕсли;    

            Если  ИмяУзла = "Количество" Тогда
                //Сообщить(Чтение.Значение);
                ТекСтрока.Количество = Чтение.Значение;
            КонецЕсли;    

            Если  ИмяУзла = "ЦенаОпт" Тогда
                //Сообщить(Чтение.Значение);
                ТекСтрока.ЦенаОпт = Чтение.Значение;
            КонецЕсли;
            
            Если  ИмяУзла = "СуммаОпт" Тогда
                //Сообщить(Чтение.Значение);
                ТекСтрока.СуммаОпт = Чтение.Значение;
            КонецЕсли;

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

                //КонецДокумента = Истина;
            КонецЕсли;


        КонецЕсли;
    КонецЦикла;    
        
КонецПроцедуры

Выдает ошибку: Значение не является значением объектного типа (СуммаОпт) ТекСтрока.СуммаОпт = Чтение.Значение;

Причем ругается только на ТекСтрока.СуммаОпт = Чтение.Значение;, все другое заполянется норм.
1 karpos
 
12.02.14
13:01
))) тороплюсь быть невеждой нельзя. Привет всем)))
2 Рэйв
 
12.02.14
13:01
Реквизита СуммаОпт нет в ТекСтрока
3 бомболюк
 
12.02.14
13:02
ну видать узел "СуммаОпт" появляется раньше, чем узел "ТоварнаяПозиция".
4 Maxus43
 
12.02.14
13:02
буква англицкая есть наверно... отладчиком посмотри
5 Maxus43
 
12.02.14
13:02
(3) тоже вариант
6 karpos
 
12.02.14
13:04
по поводу англйская буква исключено проверил. все копировал.
7 jsmith
 
12.02.14
13:04
вот автор молодец, где результаты отладки?
8 Maxus43
 
12.02.14
13:09
(6) ТекСтрока то что? Неопределено? тогда (3)
9 karpos
 
12.02.14
15:19
Спасибо разобрался в проблеме)))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.