Имя: Пароль:
1C
1С v8
Временная таблица в запросе.
0 antihacker
 
20.03.18
11:51
Всем привет !

Вот запрос

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


        
       Запрос2.УстановитьПараметр("Данные",СЗСрокГодности);    
    
        Реззапрос2 = запрос2.Выполнить().Выбрать();
        
        Реззапрос2.Следующий();
        
        Пока Реззапрос2.Следующий() Цикл
             сообщить(Реззапрос2.МинДатаСрока);
        КОнецЦикла;
    
    КонецЕсли;
    
    КонецЦикла;

Запрос почему то возвращает только одну запись.

Не могу понять почему ? Хотя здесь

        
        для каждого текстрока из СЗСрокГодности Цикл
                    сообщить(текстрока.СрокГодности);
        КонецЦикла;

Показывает, что там их несколько
А если так  МАКСИМУМ(ДанныеСТМDВрем.СрокГодности)  КАК МинДатаСрока  , то вообще ничего. А если так  МИНИМУМ(ДанныеСТМDВрем.СрокГодности)  КАК МинДатаСрока, то столько последную запись выводит. хотя это не минимум.
1 Mankubus
 
20.03.18
12:04
Реззапрос2.Следующий();
        
        Пока Реззапрос2.Следующий() Цикл
             сообщить(Реззапрос2.МинДатаСрока);
        КОнецЦикла;
------
Зачем перед циклом Реззапрос2.Следующий();??
2 antihacker
 
20.03.18
12:08
Вот баран да ? Все верно. СПС