Имя: Пароль:
1C
1С v8
Помогите разобраться с выборкой в запросе и добавлением в список значений.
0 Начинающий Программер
 
28.11.11
09:26
Такой вот простецкий код, а голова не варит. Хочу в список значений загнать все полученные из запроса ОСы:

Запрос.Текст =
   "ВЫБРАТЬ
   |    ОсновныеСредства.Ссылка КАК ОсновноеСредство
   |ИЗ
   |    Справочник.ОсновныеСредства КАК ОсновныеСредства
   |ГДЕ
   |    НЕ ОсновныеСредства.ЭтоГруппа";
   
   Выборка = Запрос.Выполнить().Выбрать();
   СписокОС = Новый СписокЗначений;
   Пока Выборка.Следующий() Цикл
       СписокОС.Добавить(Выборка);
   КонецЦикла;

В отладчике Выборка показывается как выборка из результата запроса, не пустая, элементы есть. А вот в список значений не добавляется ничего.
И вопрос ещё, переменная "Выборка" в момент после метода Выборка.Следующий() какое принимает значение? Конкретного элемента справочника?
1 Wobland
 
28.11.11
09:27
СписокОрганизаций=Новый СписокЗначений;
СписокОрганизаций.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0));
2 Kirich1983
 
28.11.11
09:27
(0) Выборка.ОсновноеСредство
3 Начинающий Программер
 
28.11.11
09:33
(1), (2) Спасибо)

Вот ещё по другой теме, если кто заглянет:
Теперь беру этот список и делаю запрос по остаткам по счету:

Для Каждого ЭлементСписка Из СписокОС Цикл
       Запрос = Новый Запрос;    //находим текущую балансовую стоимость ОС
       Запрос.Текст = "ВЫБРАТЬ
       | ХозрасчетныйБалансоваяСтоимостьОС.Субконто1,  
       | ХозрасчетныйБалансоваяСтоимостьОС.Организация,
       | ЕСТЬNULL(ХозрасчетныйБалансоваяСтоимостьОС.СуммаОстатокДт, 0) КАК СуммаОстатокДт
       |ИЗ
       | РегистрБухгалтерии.Хозрасчетный.Остатки(
       |   &МоментВремени,
       |   Счет = &Счет,
       |   ,
       |      Организация = &Организация  
       |     И Субконто1 = &Субконто1) КАК ХозрасчетныйБалансоваяСтоимостьОС";
       Запрос.УстановитьПараметр("Организация", Организация);
       Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОСвОрганизации);
       Запрос.УстановитьПараметр("Субконто1", ЭлементСписка);
       Запрос.УстановитьПараметр("МоментВремени",Дата);
       Результат = Запрос.Выполнить();


И такая ошибка: Ошибка при вызове метода контекста (Выполнить)
       Результат = Запрос.Выполнить();
по причине:
{(11, 16)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
И Субконто1 <<?>>= &Субконто1) КАК ХозрасчетныйБалансоваяСтоимостьОС

То есть как бы Субконто1 и элемент списка не равны друг другу по типу. Но ведь они равны)
4 Buster007
 
28.11.11
09:34
ЭлементСписка.Значение
5 Buster007
 
28.11.11
09:35
запрос в цикле - это очень плохо.
6 Начинающий Программер
 
28.11.11
09:38
(4) Точно!
(5) Исправлю позже, пока хочу получить работающую модель)
7 sttt
 
28.11.11
11:25
может так:

ВЫБРАТЬ
   ОсновныеСредства.Ссылка
ПОМЕСТИТЬ ОС    
ИЗ
   Справочник.ОсновныеСредства КАК ОсновныеСредства
ГДЕ
   (НЕ ОсновныеСредства.ЭтоГруппа)
;
ВЫБРАТЬ
   ХозрасчетныйБалансоваяСтоимостьОС.Субконто1,
   ХозрасчетныйБалансоваяСтоимостьОС.Организация,
   ЕСТЬNULL(ХозрасчетныйБалансоваяСтоимостьОС.СуммаОстатокДт, 0) КАК СуммаОстатокДт
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
               &ДатаОстатка,
               Счет = &СчетУчета,
               ,
               Организация = &Организация И Субконто1 В(ВЫБРАТЬ ОС.Ссылка ИЗ ОС КАК ОС)) КАК ХозрасчетныйБалансоваяСтоимостьОС