СКД + Макет. Удаление колонки программно

18.07.24

Разработка - СКД

Имеется табличный документ, сформированный СКД с настроенным макетом. Возникли проблемы: при программном удалении колонка удаляется не вся; для разных группировок колонки имеют разную ширину. В статье предложен вариант решения.

Имеется табличный документ, сформированный СКД с настроенным макетом.

 

 

В нем надо удалить колонку по флажку программно:

Если ДополнительнаяКолонка = Ложь Тогда

      Область = Результат.НайтиТекст("Дополнительная колонка");

      Результат.УдалитьОбласть(Результат.Область("C"+Область.Лево + ":C" + (Область.Лево)), ТипСмещенияТабличногоДокумента.ПоГоризонтали);

КонецЕсли;

Проблемы:

  1. Удаляется только верхняя часть колонки (шапка таблицы). Все, что ниже – нет.
  2. При формировании табличного документа ширина колонок для разных группировок строк разъезжается.

Причины и решение:

Структура имеет несколько группировок строк, расположенных на первом уровне, с одинаковым составом колонок в макете. Автонастройка ширины колонок, запускаемая при выводе табличного документа, относится только к 1 группировке, а для 2 и последующих выполняется заново. При этом для каждой подтаблицы, соответствующей очередной группировки, создается отдельный формат строк.

Решением стало: все группировки расположить внутри одной (служебной, которая отвечает за вывод шапки) . В результате автонастройка ширины колонок отнеслась не только к 1 группировке, но и ко всем подчиненным.

Итого, в результате создаваемый формат строк стал единым для всего табличного документа, что позволило решить обе проблемы.

 

 

При поиске решения рассматривались варианты:

  1. https://forum.infostart.ru/forum9/topic221584/ - из недостатков стало то, что удаляется и группировка строк. Рассматривался вариант компенсировать копированием группировок строк: //infostart.ru/1c/articles/1213983/ -
  2. Также как вариант решения было построчное удаление.
Результат.УдалитьОбласть(Результат.Область("C"+Область.Лево + ":C" + (Область.Лево)), ТипСмещенияТабличногоДокумента.ПоГоризонтали); //удаляло колонку только в шапке

Для Ном = 11 По Результат.ВысотаТаблицы Цикл //Удаление колонок во всех последующих строках

    лсНом = СтрЗаменить(Строка(Ном),Символы.НПП,"");

    Результат.УдалитьОбласть(Результат.Область("R"+лсНом+"C"+Область.Лево+":R"+лсНом+"C" + (Область.Лево)), ТипСмещенияТабличногоДокумента.ПоГоризонтали);

КонецЦикла;

Т.к. формат строк в области, состоящей из 1 строки не может быть различным, то работало. Но решало только проблему 1, а не проблему 2: после удаления ячейки происходил сдвиг по горизонтали на 1 колонку влево. При этом ширина, естественно, оставалась прежней (левой колонки).

Табличный документ ТабДок СКД макет удалить колонку

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    187233    1044    403    

976

СКД Программист Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    10287    ovetgana    50    

87

СКД Программист Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

СКД – инструмент, на базе которого в современных конфигурациях реализованы практически все отчеты. СКД используется в динамических списках, печатных формах и универсальных механизмах. Если построить простейший отчет может каждый разработчик, то с нюансами знакомы далеко не все. Расскажем о неочевидных на первый взгляд приемах, способных значительно повысить качество отчетов.

24.12.2024    7671    Akcium    13    

44

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    13932    implecs    6    

52

Инструментарий разработчика СКД Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

По выбранной схеме компоновки данных генерирует программный код, который генерирует СКД, аналогичную исходной схеме. Есть дополнительные инструменты для просмотра дерева схемы, сравнение исходной схемы и полученной по коду, а также сравнение изменений в сгенерированном коде для исходной схемы и для измененной.

3 стартмани

05.02.2024    9312    65    obmailok    21    

83

Запросы СКД Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    3776    6    Yashazz    2    

34

СКД WEB-интеграция Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    12984    27    John_d    30    

128
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. BackinSoda 18.07.24 09:01 Сейчас в теме
" все группировки расположить внутри одной (служебной, которая отвечает за вывод шапки) " показали бы на скрине как это выглядит, а то не очень понятно
Оставьте свое сообщение