Имя: Пароль:
1C
1С v8
Не работает запрос с параметром ТЗ.
0 antihacker
 
28.02.18
06:42
Всем привет не могу понять почему запрос не выдает общую сумму остатка номенклатурную группу

Если вхНоменклатура.ЭтоГРуппа Тогда
    Запрос = Новый Запрос;
    Запрос.Текст =

        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |   Номенклатура.Ссылка
        |ИЗ
        |   Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |Номенклатура.Ссылка В ИЕРАРХИИ(&Папка)";


Запрос.УстановитьПараметр("Папка",вхНоменклатура);

ТЗНоменклатура = Новый ТаблицаЗначений;
РезЗапрос = Запрос.Выполнить().Выгрузить();

КОнецЕсли;
        //---Проверяем остаток---------------------------------
        запрос=новый запрос;
        запрос.Текст=
        "    
        |ВЫБРАТЬ
        |    ТоварыНаСкладахОстатки.Склад КАК Склад,
        |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |    РегистрНакопления.ТоварыНаСкладах.Остатки(
        |            ,
        |            Склад = &выбСписСклады
        |                И Номенклатура В (&Номенклатура)) КАК ТоварыНаСкладахОстатки";

            
        запрос.УстановитьПараметр("ДатаОст",КонецДня(ЭтотОБъект.Дата));    
        запрос.УстановитьПараметр("выбСписСклады",вхСклад);
        
        Если вхНоменклатура.ЭтоГРуппа Тогда
        запрос.УстановитьПараметр("Номенклатура",ТЗНоменклатура);        
        Иначе
        запрос.УстановитьПараметр("Номенклатура",вхНоменклатура);        
        КонецЕсли;
                                          
        КолОстаток=запрос.Выполнить().Выбрать();

        Если КолОстаток.Количество()=0 Тогда
             Возврат 0;
        Иначе
             Пока КолОстаток.Следующий() Цикл  
                  Возврат  КолОстаток.КоличествоОстаток;
                    //сообщить(КолОстаток.КоличествоОстаток);
             КонецЦикла;                
      КонецЕсли;


Возвращает остаток только первого элемента в группе
1 antihacker
 
28.02.18
06:43
Ой подправил

ТЗНоменклатура = Новый ТаблицаЗначений;
ТЗНоменклатура = Запрос.Выполнить().Выгрузить();
2 Мимохожий Однако
 
28.02.18
07:02
(1) Потому что Возврат выбрасывает тебя из цикла сразу
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан