Вертикальная группировка колонок в СКД

1. Denis211990 20 20.01.22 18:17 Сейчас в теме
Как настроить схему компоновки так, чтобы группировки колонок в табличном представлении отчета выводились вертикально, а не горизонтально? Как сделать группировка в таком виде как на скрине?
Первая группировка по контрагенту, вторая группировка по сделке, остальные дальше - ресурсы
Прикрепленные файлы:
smartcoder; +1 Ответить
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. JohnGalt 57 20.01.22 19:01 Сейчас в теме +4 $m
Не нужно поле Сделка выносить в отдельную подгруппу. Просто в одной строке указать И Клиент и потом сделку. И еще в настройках указать расположение реквизитов не "Вместе с владельцем", а "Отдельно"
smartcoder; simgo83; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Aleksandr_prof 192 27.01.22 09:40 Сейчас в теме
(1) Это можно сделать двумя разными способами (в конфигураторе и в режиме 1С предприятия). Кратко: создать группу полей с вертикальным расположением группировки. Прикрепил скриншоты
Если ответ помог - не забудьте отдать вознаграждение тому, кто помог ;)
Прикрепленные файлы:
4. Denis211990 20 27.01.22 10:32 Сейчас в теме
(3) При таком варианте располагаются лишь поля, а не группировки (Клиент и Сделка)
6. Aleksandr_prof 192 27.01.22 11:06 Сейчас в теме
(4) Просто не до конца понятно, что вы хотите сделать. Может быть тогда в таблице колонки превратить в строки?
7. Denis211990 20 27.01.22 13:03 Сейчас в теме
(6) Клиенты и сделки должны выводится по колонкам - вертикально - это обязательное условие
2. JohnGalt 57 20.01.22 19:01 Сейчас в теме +4 $m
Не нужно поле Сделка выносить в отдельную подгруппу. Просто в одной строке указать И Клиент и потом сделку. И еще в настройках указать расположение реквизитов не "Вместе с владельцем", а "Отдельно"
smartcoder; simgo83; +2 Ответить
5. Denis211990 20 27.01.22 10:33 Сейчас в теме
(2) Этот вариант более подходящим оказался, хотя и не достигнуто цели. Пришлось с этим дублированием группировки "Клиент" сделать отчет.
8. simgo83 69 21.09.22 06:25 Сейчас в теме
(5) В купе с вариантом (2) в модуле отчета вставить код

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки, Истина);
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
    ДокументРезультат = ОбработатьЗаголовки(ДокументРезультат);

КонецПроцедуры

Функция ОбъединятьЯчейки(ТабДок, индСтр, индКол)
    Ячейка = ТабДок.Область(индСтр, индКол);
    ЯчейкаСлед = ТабДок.Область(индСтр, индКол+1);
    Если ПустаяСтрока(Ячейка.Текст) Тогда
        Возврат ложь
    ИначеЕсли
        Ячейка.Текст = ЯчейкаСлед.Текст
            И Ячейка.Верх = Ячейка.Низ И ЯчейкаСлед.Верх = ЯчейкаСлед.Низ Тогда
        Возврат Истина;
    Иначе
        Возврат ложь
    КонецЕсли;
КонецФункции

Функция ОбработатьЗаголовки(ТабДок)
    ВысотаФ = ТабДок.ФиксацияСверху;
    ШиринаФ = ТабДок.ФиксацияСлева;
    ОбъединяемаяОбласть = Неопределено;
    Для индСтр = -ВысотаФ По -1 Цикл
        Если ТабДок.Область(-индСтр,1).Текст = "" Тогда
            Возврат ТабДок;
        КонецЕсли; 
        НачальнаяКолонка = 0;
        Для индКол=ШиринаФ+1 По ТабДок.ШиринаТаблицы Цикл
            Если ОбъединятьЯчейки(ТабДок, -индСтр, индКол) Тогда
                Если не НачальнаяКолонка Тогда
                    НачальнаяКолонка = индКол;
                КонецЕсли;
            ИначеЕсли НачальнаяКолонка Тогда
                ТекстЗаголовка = ТабДок.Область(-индСтр, индКол).Текст;
                ОбъединяемаяОбласть = ТабДок.Область(-индСтр, НачальнаяКолонка, -индСтр, индКол);
                ОбъединяемаяОбласть.Объединить();
                ОбъединяемаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
                ОбъединяемаяОбласть.Текст = ТекстЗаголовка;
                НачальнаяКолонка = 0;
            Иначе
                НачальнаяКолонка = 0;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
    Возврат ТабДок;
КонецФункции
Показать
bayselonarrend; ulenergo; smartcoder; exitel; ErAK; +5 Ответить
Оставьте свое сообщение

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