Имя: Пароль:
1C
1C 7.7
v7: Группировка в запросе, обратная сортировка
0 exec11
 
25.05.22
16:25
1с 77

Есть простой запрос :

    Запрос = СоздатьОбъект("Запрос");
            ТекстЗапроса =
            "//{{ЗАПРОС(Сформировать)  
            |Период с ПериодС по ПериодПО;    
            |ВладелецЗап     = Справочник.ГрафКалендарь.Владелец;
            |СпрЗап     = Справочник.ГрафКалендарь.ТекущийЭлемент;
            |Группировка СпрЗап Упорядочить по СпрЗап.ДатаРеестр без групп;    
            |Условие (СпрЗап.ПометкаУдаления()=0);  
            |Условие (Запрос.ВладелецЗап = Название);      
            |Без итогов;
            |"//}}ЗАПРОС
            ;                  
            

            Пока Запрос.Группировка() = 1 Цикл  
                Сообщить("ДатаРеестр "+Запрос.СпрЗап.ДатаРеестр);        
                Сообщить(" ");
            КонецЦикла;

Он работает, все нормально. Но если так :

Пока Запрос.Группировка(1) = 1 Цикл

То выборка пустая.
А если вернуть назад :

Пока Запрос.Группировка() = 1 Цикл

То выборка опять работает.
Можно ли кто-нибудь объяснить мне - почему ????

Предвижу вопрос, зачем это мне.
Отвечу, нужно сделать обратную сортировку.
Делается так: (1,-1)
Если указываю так - выборка пустая.
1 Злопчинский
 
25.05.22
16:30
условие на пометку удаления так делать не надо есть отдельная инструкция языка запросов
Обрабатывать Непмеченные.... - читай СП на сон грядущий
2 Злопчинский
 
25.05.22
16:30
Без Итогов поставить после периода
3 Злопчинский
 
25.05.22
16:31
вызывает сомнение
Запрос.ВладелецЗап = Название
Название - это что?
ВладелецЗап - это ведь ссылка...
4 Злопчинский
 
25.05.22
16:32
Период - убрать нафиг, какой период для обработки справочников?
5 Злопчинский
 
25.05.22
16:33
Без Итогов - группировки не накапливаются.
поэтому Пока Запрос.Группировка() = 1 - чита СП - об этом сказано прямо
6 Злопчинский
 
25.05.22
16:43
Без Итогов;
Обрабатывать НеПомеченныеНаУдаление;
ВладелецЗап = Справочник.ГрафКалендарь.Владелец;
СпрЗап = Справочник.ГрафКалендарь.ТекущийЭлемент;
ДатаРеестр = Справочник.ГрафКалендарь.ДатаРеестр;
Группировка СпрЗап Без Упорядочивания Без групп;    
Условие (Запрос.ВладелецЗап = ?ЗДЕСЬССЫЛКАНА?);

ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ,1,0);
ТЗ.Сортировать("ДатаРеестр-");  
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
  //ТУДУ
КонецЦикла;
7 exec11
 
25.05.22
16:48
1-4 исправил, спасибо.

5. Если оставить итоги, то в выборку попадает, скажем так, пуста строка.
Но если ставим Запрос.Группировка(1,-1) то пустая строка пропадает. И сортировка как надо.
Странно, но работает.

Спасибо! Такое решние подошло !