Сворачивание строк

1. anytka_es 21.11.23 07:39 Сейчас в теме
Добрый день. Помогите пожалуйста новичку со сворачиванием строк. Необходимо чтобы строки сворачивались по Контактным лицам при помощи "+". В прикрепленном фото попробовала изобразить желаемое )
Код такой:
.....
табдок.Вывести(ШапкаДок,2);
	
	 	ЗапросСоб = новый запрос ("ВЫБРАТЬ
	 	                          |	События.КонтактноеЛицо КАК КонтактноеЛицоСоб,
	 	                          |	События.Дата КАК Дата,
	 	                          |	События.ВидСобытия.Наименование КАК ВидСобытия,
	 	                          |	События.Примечание КАК ПримечаниеВС
	 	                          |ИЗ
	 	                          |	Документ.События КАК События
	 	                          |ГДЕ
	 	                          |	События.Проведен
	 	                          |	И События.Дата МЕЖДУ &Дата1 И &Дата2
	 	                          |	И События.Контрагент = &Владелец
	 	                          |	И События.ВидСобытия.Код <> ""00031""
	 	                          |	И (События.КонтактноеЛицо.Функции.Функция.Код = ""000000020""
	 	                          |			ИЛИ События.КонтактноеЛицо.Функции.Функция.Код = ""000000018""
	 	                          |			ИЛИ События.КонтактноеЛицо.Функции.Функция.Код = ""000000017"")
	 	                          |	И (НЕ События.КонтактноеЛицо.Состояние В (&НеАктивные))
	 	                          | 
	 	                          |УПОРЯДОЧИТЬ ПО
	 	                          |	КонтактноеЛицоСоб,
	 	                          |	Дата  
					  |ИТОГИ ПО
					  |	КонтактноеЛицоСоб");
     НеАктивные = новый массив;
	 НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.Повтор);
	 НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.ВДекретномОтпуске);
	 НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.Уволен);
	 ЗапросСоб.УстановитьПараметр("НеАктивные",НеАктивные);

	 ЗапросСоб.УстановитьПараметр("дата1",НачалоДня(дата1));
	 ЗапросСоб.УстановитьПараметр("дата2",КонецДня(дата2));
	 ЗапросСоб.УстановитьПараметр("владелец",резОрг.Контрагент);
	   	      		
	    резСоб = ЗапросСоб.Выполнить();
	   	    
	    если резСоб.Пустой() тогда
	    	//пустая строка
	    	ПустаяСтрока.ТекущаяОбласть.ЦветФона = КрЦвет;
	    	табдок.Вывести(ПустаяСтрока, 2);

	    иначе
	    	 ВыборкаРезСоб = резСоб.Выбрать();
	    		
	    	пока ВыборкаРезСоб.Следующий() цикл
	    		документ.Параметры.Заполнить(ВыборкаРезСоб);
	    		табдок.Вывести(документ, 2);
	    		
	    	КонецЦикла;
	    	
	    КонецЕсли;
	    	 		
	КонецЦикла;
	табдок.ЗакончитьАвтогруппировкуСтрок();
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
7. Sashares 33 21.11.23 14:11 Сейчас в теме
(1) как то так:

резСоб = ЗапросСоб.Выполнить();
               
        если резСоб.Пустой() тогда
            //пустая строка
            ПустаяСтрока.ТекущаяОбласть.ЦветФона = КрЦвет;
            табдок.Вывести(ПустаяСтрока, 2);

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

            КонецЦикла;
            
        КонецЕсли;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 21.11.23 08:29 Сейчас в теме
(1)
ЗакончитьАвтогруппировкуСтрок
нельзя закончить, не начав.
4. anytka_es 21.11.23 08:33 Сейчас в теме
(2) Она выше начинается, я не весь код прикрепила )
7. Sashares 33 21.11.23 14:11 Сейчас в теме
(1) как то так:

резСоб = ЗапросСоб.Выполнить();
               
        если резСоб.Пустой() тогда
            //пустая строка
            ПустаяСтрока.ТекущаяОбласть.ЦветФона = КрЦвет;
            табдок.Вывести(ПустаяСтрока, 2);

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

            КонецЦикла;
            
        КонецЕсли;
Показать
8. anytka_es 21.11.23 14:49 Сейчас в теме
Спасибо Вам огромное!
3. Marses 21.11.23 08:30 Сейчас в теме
Это нужно делать с помощью СКД. Есть вкладка макет, там нужно вставить в заголовок шаблон "Период [Период]", заполнить шапку ТЧ и строки заполнять. Либо если вы хотите сворачивание на обычной форме, то это дерево значений
5. BackinSoda 21.11.23 08:46 Сейчас в теме
Дайте скрин макета с областями.. И Уровень группировки лучше для строк указывать тогда, а не всех выводимых областей. НачатьАвтогруппировкуСтрок непосредственно перед циклом по строкам
6. anytka_es 21.11.23 13:46 Сейчас в теме
(5)Вот такой Макет
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот