|
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) то пустая строка пропадает. И сортировка как надо.
Странно, но работает.
Спасибо! Такое решние подошло !
|
|