Имя: Пароль:
1C
 
Получить значение колонок таблицы значений
0 1С: Новичок
 
20.09.04
15:58
В таблице значений получил объект СтрокаТаблицыЗначений при помощи метода тзТаблицаЗначений.Найти(ВыбТовар, "Товар"). Как мне теперь получить значения колонок выбранной строки?
1 Волшебник
 
20.09.04
15:58
Значение1 = СтрокаТаблицыЗначений.Колонка1;
2 1С: Новичок
 
20.09.04
16:04
Не получается. Поясню подробнее. Существует таблица значений с тремя колонками "Товар", "Склад", "Количество". Эта таблица была сформирована через метод Остатки() регистра накопления "Остатки", где отбором служит конкретная строка табличной части документа. Как посмотреть содержимое колонки "Количество"?
3 Волшебник
 
20.09.04
16:06
тз = Запрос.Выполнить().Выгрузить();
НайденнаяСтрока = тз.Найти(ВыбТовар, "Товар");
Если НайденнаяСтрока <> Неопределено Тогда
 Количество = НайденнаяСтрока.Количество;
КонецЕсли;

кстати, виртуальная таблица колонки называет так: КоличествоОстаток
4 1С: Новичок
 
20.09.04
16:15
Спасибо, Станислав. Я немного по другому сделал, не знаю корректно или нет, но данные выдает правильные. (Поясню. Это модуль проведения расходной накладной - проверка наличия на складе необходимого количества товара).

Процедура ОбработкаПроведения(Отказ, Режим)
рег = РегистрыНакопления.Остатки;
Для Каждого ТекСтрокаТовары Из Товары Цикл
 спр = Справочники.Номенклатура;
 ВыбТовар = Новый Структура;
 ВыбТовар.Вставить("Товар", спр.НайтиПоКоду(ТекСтрокаТовары.Товар.Код));
 таб = рег.Остатки(Дата,ВыбТовар,"Товар, Склад", "Количество");
 стр = таб.Найти(ТекСтрокаТовары.Товар, "Товар");
 Сообщить(таб[0].Количество);
КонецЦикла;
КонецПроцедуры

Таким образом, получили количество товара на складе, а дальше сравнение и проведение. Мне интересно твое мнение на этот счет.
5 Волшебник
 
20.09.04
16:18
здесь ошибка!!!

стр = таб.Найти(ТекСтрокаТовары.Товар, "Товар");
Сообщить(таб[0].Количество);
6 1С: Новичок
 
20.09.04
16:22
Поясни, пожалуйста. Чтобы впредь не повторять.
7 1С: Новичок
 
20.09.04
16:25
Кажется, понял. Если количество товара = 0, то количество строк в таблице = 0 и соответственно выдается ошибка. Спасибо! :)
8 Волшебник
 
20.09.04
16:26
правильно так:
стр = таб.Найти(ТекСтрокаТовары.Товар, "Товар");
Сообщить(стр.Количество);
9 Волшебник
 
20.09.04
16:28
и не забывай проверять на Неопределено как в (3). Мало ли что...
10 1С: Новичок
 
20.09.04
16:34
Я сначал так и хотел написать "стр.Количество", но меня смутили всплывающие подсказки, появившиеся в контекстном поле после точки (там было "Получить" и "Установить" :)))
Еще раз спасибо за помощь. Двигаюсь дальше.