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

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 189 27.01.22 09:40 Сейчас в теме
(1) Это можно сделать двумя разными способами (в конфигураторе и в режиме 1С предприятия). Кратко: создать группу полей с вертикальным расположением группировки. Прикрепил скриншоты
Если ответ помог - не забудьте отдать вознаграждение тому, кто помог ;)
Прикрепленные файлы:
4. Denis211990 20 27.01.22 10:32 Сейчас в теме
(3) При таком варианте располагаются лишь поля, а не группировки (Клиент и Сделка)
6. Aleksandr_prof 189 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 Ответить
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день