Добрый день. Помогите пожалуйста новичку со сворачиванием строк. Необходимо чтобы строки сворачивались по Контактным лицам при помощи "+". В прикрепленном фото попробовала изобразить желаемое )
Код такой:
.....
Код такой:
.....
табдок.Вывести(ШапкаДок,2);
ЗапросСоб = новый запрос ("ВЫБРАТЬ
| События.КонтактноеЛицо КАК КонтактноеЛицоСоб,
| События.Дата КАК Дата,
| События.ВидСобытия.Наименование КАК ВидСобытия,
| События.Примечание КАК ПримечаниеВС
|ИЗ
| Документ.События КАК События
|ГДЕ
| События.Проведен
| И События.Дата МЕЖДУ &Дата1 И &Дата2
| И События.Контрагент = &Владелец
| И События.ВидСобытия.Код <> ""00031""
| И (События.КонтактноеЛицо.Функции.Функция.Код = ""000000020""
| ИЛИ События.КонтактноеЛицо.Функции.Функция.Код = ""000000018""
| ИЛИ События.КонтактноеЛицо.Функции.Функция.Код = ""000000017"")
| И (НЕ События.КонтактноеЛицо.Состояние В (&НеАктивные))
|
|УПОРЯДОЧИТЬ ПО
| КонтактноеЛицоСоб,
| Дата
|ИТОГИ ПО
| КонтактноеЛицоСоб");
НеАктивные = новый массив;
НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.Повтор);
НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.ВДекретномОтпуске);
НеАктивные.Добавить(Перечисления.СостояниеКонтактныхЛиц.Уволен);
ЗапросСоб.УстановитьПараметр("НеАктивные",НеАктивные);
ЗапросСоб.УстановитьПараметр("дата1",НачалоДня(дата1));
ЗапросСоб.УстановитьПараметр("дата2",КонецДня(дата2));
ЗапросСоб.УстановитьПараметр("владелец",резОрг.Контрагент);
резСоб = ЗапросСоб.Выполнить();
если резСоб.Пустой() тогда
//пустая строка
ПустаяСтрока.ТекущаяОбласть.ЦветФона = КрЦвет;
табдок.Вывести(ПустаяСтрока, 2);
иначе
ВыборкаРезСоб = резСоб.Выбрать();
пока ВыборкаРезСоб.Следующий() цикл
документ.Параметры.Заполнить(ВыборкаРезСоб);
табдок.Вывести(документ, 2);
КонецЦикла;
КонецЕсли;
КонецЦикла;
табдок.ЗакончитьАвтогруппировкуСтрок();
ПоказатьПрикрепленные файлы:
![](/upload/forum/upload/a32/a32ef15f96beea01feca799ee21c1018.png)
По теме из базы знаний
- ТОРГ-12 за поставщика (все строки)
- Восстановление развернутых строк ДереваЗначений после его обновления (управляемая форма)
- Внешняя компонента симуляции нажатий клавиатуры и мыши (в т.ч. сворачивание/разворачивание динамических списков)
- Счет на оплату с группировкой (сворачиванием) строк из документа Заказ клиента (ERP 2, КА 2, УТ 11)
- Заказ поставщику с группировкой (сворачиванием) строк из документа Заказ поставщику (ERP 2, КА 2, УТ 11)
Найденные решения
(1) как то так:
резСоб = ЗапросСоб.Выполнить();
если резСоб.Пустой() тогда
//пустая строка
ПустаяСтрока.ТекущаяОбласть.ЦветФона = КрЦвет;
табдок.Вывести(ПустаяСтрока, 2);
иначе
ВыборкаРезСоб = резСоб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
пока ВыборкаРезСоб.Следующий() цикл
документ.Параметры.Заполнить(ВыборкаРезСоб);
табдок.Вывести(документ, 2);
ДетальнаяВыборка = ВыборкаРезСоб.Выбрать();
пока ДетальнаяВыборка.Следующий() цикл
документ.Параметры.Заполнить(ДетальнаяВыборка);
табдок.Вывести(документ, 3);
КонецЦикла;
КонецЦикла;
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) как то так:
резСоб = ЗапросСоб.Выполнить();
если резСоб.Пустой() тогда
//пустая строка
ПустаяСтрока.ТекущаяОбласть.ЦветФона = КрЦвет;
табдок.Вывести(ПустаяСтрока, 2);
иначе
ВыборкаРезСоб = резСоб.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
пока ВыборкаРезСоб.Следующий() цикл
документ.Параметры.Заполнить(ВыборкаРезСоб);
табдок.Вывести(документ, 2);
ДетальнаяВыборка = ВыборкаРезСоб.Выбрать();
пока ДетальнаяВыборка.Следующий() цикл
документ.Параметры.Заполнить(ДетальнаяВыборка);
табдок.Вывести(документ, 3);
КонецЦикла;
КонецЦикла;
КонецЕсли;
Показать
Это нужно делать с помощью СКД. Есть вкладка макет, там нужно вставить в заголовок шаблон "Период [Период]", заполнить шапку ТЧ и строки заполнять. Либо если вы хотите сворачивание на обычной форме, то это дерево значений
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот