Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Нужна помощь с группировкой строк в запросе (http://forums.kuban.ru/f1040/nuzhna_pomosh-_s_gruppirovkoj_strok_v_zaprose-9094597.html)

Minipuh63 17.09.2020 08:26

Нужна помощь с группировкой строк в запросе
 
Делаю пробный технологический отчет по справочнику, у него поле Статус - иерархический справочник. Вывод отчета через макет. Отчет должен вывести 3 уровня группировок Группы статуса - статус - элементы исходного справочника. Отчет работает но полностью отказывается группировать строки, хотя должен. Глюк или я косячу? Текст модуля ниже

&НаСервере
Функция СформироватьНаСервере()

ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
Макет = ОтчетОбъект.ПолучитьМакет("МакетЛидов");

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьСтатусГруппа = Макет.ПолучитьОбласть("СтатусГруппа");
ОбластьСтатус = Макет.ПолучитьОбласть("Статус");

ТабДок=Новый ТабличныйДокумент;
ТабДок.Очистить();
ОбластьЗаголовок.Параметры.Заголовок = "Состояние лидов по событиям"+Символы.ПС+
"За период "+ПредставлениеПериода(НачалоДня(Период.ДатаНачала), КонецДня(Период.ДатаОкончания));
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.НачатьАвтогруппировкуСтрок();

Запрос = Новый Запрос;
Запрос.Текст =

"ВЫБРАТЬ
| Лиды.Ссылка КАК Лид,
| Лиды.СтатусЛида КАК Статус,
| КОЛИЧЕСТВО(Лиды.Ссылка) КАК КолЛидов
|ИЗ
| Справочник.Лиды КАК Лиды
|
|СГРУППИРОВАТЬ ПО
| Лиды.СтатусЛида,
| Лиды.Ссылка
|ИТОГИ
| КОЛИЧЕСТВО(КолЛидов)
|ПО
| Статус ИЕРАРХИЯ,
| Лид";

Выборка1 = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка1.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка1.Статус) Тогда
Если Выборка1.Статус.ЭтоГруппа Тогда
ОбластьСтатусГруппа.Параметры.СтатусЛида = Выборка1.Статус;
ОбластьСтатусГруппа.Параметры.КолЛидов = Выборка1.КолЛидов;
ТабДок.Вывести(ОбластьСтатусГруппа);
Иначе
ОбластьСтатус.Параметры.СтатусЛида = Выборка1.Статус;
ОбластьСтатус.Параметры.КолЛидов = Выборка1.КолЛидов;
ТабДок.Вывести(ОбластьСтатус);
КонецЕсли;
Иначе
ОбластьСтатус.Параметры.КолЛидов = Выборка1.КолЛидов;
ТабДок.Вывести(ОбластьСтатус);
КонецЕсли;
Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка2.Следующий() Цикл
ОбластьСтрока.Параметры.НаименованиеЛида = Выборка2.Лид;


ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
КонецЦикла;


ТабДок.ЗакончитьАвтогруппировкуСтрок();


ТабДок.ТолькоПросмотр=Истина;
ТабДок.ФиксацияСверху=5;
ТабДок.ФиксацияСлева=2;


Возврат ТабДок;

КонецФункции

roma n 17.09.2020 13:29

Если я правильно понимаю проблему - второй параметр метода табличного документа Вывести

Minipuh63 17.09.2020 14:57

То есть указав уровень Группировка заработает? Попробую. Спасибо за идею.

Trinitron 18.09.2020 06:00

И чем всё закончилось?


Текущее время: 02:04. Часовой пояс GMT +3.