Свернуть колонки в скд 1с

Обновлено: 07.07.2024

В этой статье я расскажу про закладку «Другие настройки» в 1С СКД. Рассмотрим все параметры кроме тех, которые относятся к диаграмме.

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

  • Отчета в целом
  • Для таблицы
  • Для группировки (строк или колонок)

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

Итак, рассмотрим параметры по-порядку:

Макет оформления

Макет оформления отвечает за визуальное оформление структуры отчета. Если коротко, макет оформления это предустановленный набор правил оформления различных областей отчета – заголовков полей, ресурсов, итогов и т.д. Все что связано оформлением – цвет, шрифт, рамки и т.д. В этом параметре вы можете выбрать или типовой набор или свой собственный. Если этот параметр не установлен, используется «Основной» макет оформления. Есть возможность не использовать макет оформления вообще. Для этого нужно выбрать вариант «Без оформления» и тогда никакое оформление к ячейке табличного документа применяться не будет.

Количество записей

Параметр доступен только для группировок. В том числе для группировок строк и колонок таблицы. Если параметр задан, то выводятся не все записи группировки, а только указанное количество

Процент записей

Параметр доступен только для группировок. В том числе для группировок строк и колонок таблицы. Если параметр задан, то выводятся не все записи группировки, а только указанный процент от общего количества

Тип макета

Параметр доступен только для группировки. Не доступен для группировок строк и колонок таблицы. Отвечает за направление вывода ячеек записи группировки.

  • Авто. Работает как горизонтально
  • Горизонтально. Ячейки записи выводятся горизонтально
  • Вертикально. Ячейки записи выводятся вертикально

Расположение итогов

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

  • Нет. Отключает вывод значений ресурсов.
  • Начало. В начале выводится одна группировочная запись (для подчиненных)
  • Начало и Конец. К группировочной записи в начале добавляется ее копия, но уже после всех записей подчиненных группировок (то есть в конце)
  • Конец. Отключает вывод значений ресурсов в начальной записи. Но сама начальная запись добавляется
  • Авто. Работает как «Начало»

Расположение полей группировок

Интересный параметр, который влияет на расположение подчиненной группировки относительно родительской. Причем действует этот параметр на группировки строк(или просто группировки без таблицы) и группировки по колонок по-разному.

Для группировок строк:

  • Вместе. Работает как значение по умолчанию. Дочерняя группировка выводится под родительской группировкой в одной колонке
  • Отдельно. Дочерняя группировка выводится в отдельной колонке. Значение родительских группировок дублируются для подчиненной.
  • Отдельно и только в итогах. Дочерняя группировка выводится в отдельной колонке. Значение родительских группировок не дублируется для подчиненной


Для группировок колонок установка параметра работает похоже, но немного по другому. Если для группировок строк достаточно установить значение параметра для верхней группировки (или для отчета), то это значение распространяется на остальные подчиненные группировки. Для колонок этот принцип не работает. Не работает если установить параметр для отчета, для таблицы, для группировки первого уровня. Работает установка параметра начиная со второй (по вложенности) группировки. При этом значение параметра на следующие группировки не передается. И действует это значение не на подчиненную группировку, а на текущую. То есть :

  • Вместе. Колонка текущей группировки выводится в той же строке что и родительская
  • Отдельно. Колонка текущей группировки выводится на новой строке. Значение родительских группировок повторяется
  • Отдельно и только в итогах. Колонка текущей группировки выводится на новой строке. Значение родительских группировок не повторяется.


Расположение группировок

Параметр работает в некотором смысле аналогично параметру «Расположение итогов», но есть отличия в работе значений:

  • Нет. Полностью исключает записи данной группировки
  • Конец. В отличие от параметра «Расположение итого» такое значение на самом деле отключает вывод начальной записи

Если у группировки действуют оба параметра «Расположение группировок» и «Расположение итогов», то результат их действия объединяется через «ИЛИ».

Расположение реквизитов

Параметр отвечает за вывод реквизитов полей входящих в состав группировки. Если у вас есть группировка по какому-то полю, то чтобы вывести реквизиты объекта из этого поля вам не обязательно включать их в группировку. Достаточно добавить их в выбранные поля (развернув объект) в списке они будут отображаться через точку. За то как будут выводится такие поля отвечает этот параметр:

  • Вместе – все реквизиты выводятся в одной отдельной колонке вместе. Для каждой группировки своя отдельная колонка
  • Отдельно – каждый реквизит выводится в отдельной колонке
  • Вместе с владельцем – все реквизиты выводятся в колонке группировки. Это значение используется по умолчанию
  • В отдельной позицици – все реквизиты выводятся в отдельной колонке, но колонка в отличие от значения «Вместе» одна для всех группировок

Расположение ресурсов

Параметр отвечает за вывод заголовков ресурсов и вывод ресурсов в строке

  • Горизонтально (по умолчанию) – заголовки ресурсов выводятся в шапке (горизонтально). В строке группировки ресурсы выводятся также горизонтально
  • Вертикально – заголовки ресурсов выводятся в отдельной колонке в строках группировок (вертикально). В строке группировки ресурсы выводятся вертикально

Расположение общих итогов (по вертикали / по горизонтали)

Параметр отвечает за вывод общих итогов. Для отчета и таблицы доступны варианты «по вертикали», «по горизонтали». При этом вариант «по горизонтали» имеет смысл только для группировок колонок таблицы. Для группировок колонок доступен только один вариант – «расположение общих итогов» и означает итоги по горизонтали, соответственно для группировок строк таблицы также доступен такой же один вариант и означает он итоги по вертикали. Для группировок без таблицы хоть и доступен вариант «по горизонтали», но имеет значение только вариант «по вертикали».

  • Нет – итоги не выводятся
  • Начало – итоги выводятся в начале
  • Конец – итоги выводятся в конце (по умолчанию)
  • Начало и конец – итоги выводятся в начале и в конце
  • Авто – работает как «Конец»

Тип заголовка полей

Не совсем понятно как точно работает параметр, но в варианте «Полный» заголовок подчиненного реквизита выводится как «Владелец.Реквизит», в варианте «Краткий» выводится просто «Реквизит». Может еще на что-то влияет?

Выводить заголовок и Заголовок

Два параметра отвечают за вывод заголовка отчета, группировки, таблицы. Если параметр Выводить заголовок равен «Выводить», то выводится даже пустой заголовок. Если параметр имеет значение «Не выводить», то заголовок не выводится даже если задан. Если параметр имеет значение авто или не установлен, то заголовок выводится если заполнен и не выводится если не заполнен.

Выводить параметры

Параметр доступен только на уровне отчета. Отвечает за вывод значений параметров отчета. По умолчанию (и значение «Авто») параметры выводятся.

Выводить отбор

Параметр отвечает за вывод отбора. Доступен на уровне отчета, группировки. По умолчанию (и значение «Авто») отбор выводится

Автопозиция ресурсов

Параметр отвечает за позицию вывода ресурсов. Доступен для отчета, для таблицы, для группировок.

  • Не использовать – колонки ресурсов выводятся так, как задано в списке «Выбранные поля» при этом учитываются только поля группировок и ресурсов
  • После всех полей (по умолчанию) – колонки ресурсов выводятся после всех полей (группировок и реквизитов)

Фиксация слева и Фиксация сверху

Параметры доступны только для отчета. С помощью параметров можно отключить (по умолчанию включена) фиксацию слева (для таблиц) или сверху (и для таблиц и просто для группировок)

Цель: реализовать возможность скрывать блок колонок пользователем в отчёте, как показано на рисунках:



Отчёт выполнен на базе схемы компоновки данных (СКД).

Написан запрос, для выборки нужных данных. Он индивидуален, поэтому его нет смысла представлять.

Описание самого "увлекательного" процесса настройки СКД представлено ниже.

В параметры СКД вынесены необходимые параметры:



В данном случае, - Аналитика, ОбъектЭксплуатации и Управленческий.

В настройках СКД отчёт состоит из двух группировок: дополнительной информации и детальных записей.
В дополнительной информации выводится заголовок отчёта, а в детальных записях - его данные.
Обратим внимание, что в настройках отчёта необходимо вывести параметры: Аналитика, Объект эксплуатации и Управленческие аналитики.

Это показана на рисунке:


Зададим первоначальные значения этих параметров. В нашем случае, значение принимает следующий вид: "Ложь".

В детальных записях (вкладка Выбранные поля) выведены колонки отчёта и созданы группы, которые, в зависимости от выбранных пользователем параметров, будут выводиться в отчёт:


Не забываем, что эти параметры необходимо включить в пользовательские настройки:


На этом "увлекательный" процесс закончен. Перейдём к написанию кода для реализации скрытия нужных блоков (полный текст процедур можно найти после описания).

Достаточно много времени заняла отладка кода, чтобы попасть в нужный блок и установить свойство "Использование".
Все манипуляции будут проходить в модуле объекта отчёта, в процедуре "ПриКомпоновкеРезультата".


Итак, что мы делаем:

1) получаем пользовательские настройки элементов и структуры отчёта

2) создаём параметры видимости колонок

3) для удобства отладки вынесли названия выводимых заголовков (блоков)

4) перебираем параметры отчёта, получаем текущие значения видимости и обращаемся именно к нужному блоку отчёта с детальными записями. Если выбираемый блок относится к группе с заголовком "Расшифровки", а именно в этом блоке содержатся скрываемые колонки, то применяем процедуру "ОтображениеБлокаКолонок" для манипуляций с видимостью


5) манипуляции с видимостью заключаются в том, что в зависимости от установленного значения параметра видимости, свойство "Использование" принимает необходимое значение.

Получается, что одна колонка Б содержит четыре столбца (р1, р2, р3, р4), а таблица содержит несколько колонок. Хочется иметь возможность свернуть столбцы ресурсов в колонке.

(0)Программно хотите или просто настройками? Впрочем, там все так же как и с вертикальной группировкой вроде - в колонки таблицы добавляешь вложенные группировки и вот оно счастье
(0) Если хочешь, чтобы группировочные колонки разворачивались (с плюсиками были), то смотри в сторону группировки колонок.
Если нужно сделать без разворачивания группировочных колонок, то проще всего сделать через вычисляемые поля или пользовательские поля.
(3) Аппаратно) Руками то есть)
(4) Хочу. Только не группировку, а именно возможность свернуть - во всем строках таблицы значения поля Б уникальны (т.е. по 1 строке на каждое значение)
(0) Не совсем понял, что ты хочешь, но может быть в СКД в настройках на закладке выбранные поля добавить новую группу, туда перетащить все 4 ресурса и у группы поставить расположение - вертикально. Это?
(8) добавить кнопку на форму, которая будет программно формировать отчет, и в список выбранных полей не включать ненужное поле
(10) может быть в наборах данных задать выражение представление? Например, установить на форму флажок, если он равен истина, то использовать такое-то выражение. Там ведь можно использовать общий модуль, можно там описать
(12) Просто нужна возможность скрывать некоторые колонки)
(10) Блин, ну возьми и управляй тогда руками ТабличнымПолем. Можно сделать невидимым нужный столбец, это просто, и не надо отчет переформировывать. Кнопку свою заведи на форме, даже много кнопок - скрыть/показать. И при нажатии присваивай Видимость = Ложь/Истина.
Так что в итоге, как сделать плюсики на столбцах. Не группировки ради, а чтобы скрыть/показать колонку. И Сделать это методами СКД.

(19) группировку с ресурсами добавить в пользовательские настройки - все

(20) не понял, как это сделать? и решит ли это мою задачу, а задача стоит в том чтобы эти самые плюсики выставить всем столбцам, а не только ресурсам

(21) забудь про "плюсики" - это метод решения твоей проблемы через задницу

включение группировок в пользовательские настройки вызывает тот же визуальный эффект - выключил группировку и получаешь отчет БЕЗ колонок этой групрпировки.

главное удобно расположить панель быстрых настроек(я делаю ее в выпадающей форме настроек по кнопке, а не прямо на форме как в типовых)

сделать это можно автогенерацией формы и прописать пару связок в палитре свойств основной форме.

работы на 10 минут, результат тот, что тебе нужен, цена 500К или приобрети опыт сам.

Есть таблица СКД. Пусть строки - А, колонки - Б, ресурсы - р1, р2, р3, р4. Т.е. исходная таблица имеет вида А, Б, р1, р2, р3, р4 Получается, что одна колонка Б содержит четыре столбца (р1, р2, р3, р4), а таблица содержит несколько колонок. Хочется иметь возможность свернуть столбцы ресурсов в колонке.

Программно хотите или просто настройками? Впрочем, там все так же как и с вертикальной группировкой вроде - в колонки таблицы добавляешь вложенные группировки и вот оно счастье

Если хочешь, чтобы группировочные колонки разворачивались (с плюсиками были), то смотри в сторону группировки колонок. Если нужно сделать без разворачивания группировочных колонок, то проще всего сделать через вычисляемые поля или пользовательские поля.

Аппаратно) Руками то есть) Хочу. Только не группировку, а именно возможность свернуть - во всем строках таблицы значения поля Б уникальны (т.е. по 1 строке на каждое значение)

Не совсем понял, что ты хочешь, но может быть в СКД в настройках на закладке выбранные поля добавить новую группу, туда перетащить все 4 ресурса и у группы поставить расположение - вертикально. Это?

Нет) Допустим, колонка Контрагент, а ресурсы - Приход, Расход, Оборот Отчёт будет состоять из колонок вида |Контрагент | |Приход|Расход|Оборот| Нужна возможность прятать некоторые колонки (плюсом или как-нибудь) из формы

добавить кнопку на форму, которая будет программно формировать отчет, и в список выбранных полей не включать ненужное поле

может быть в наборах данных задать выражение представление? Например, установить на форму флажок, если он равен истина, то использовать такое-то выражение. Там ведь можно использовать общий модуль, можно там описать

Просто нужна возможность скрывать некоторые колонки)

Блин, ну возьми и управляй тогда руками ТабличнымПолем. Можно сделать невидимым нужный столбец, это просто, и не надо отчет переформировывать. Кнопку свою заведи на форме, даже много кнопок - скрыть/показать. И при нажатии присваивай Видимость = Ложь/Истина.

Так что в итоге, как сделать плюсики на столбцах. Не группировки ради, а чтобы скрыть/показать колонку. И Сделать это методами СКД.

группировку с ресурсами добавить в пользовательские настройки - все делай

не понял, как это сделать? и решит ли это мою задачу, а задача стоит в том чтобы эти самые плюсики выставить всем столбцам, а не только ресурсам

забудь про "плюсики" - это метод решения твоей проблемы через задницу включение группировок в пользовательские настройки вызывает тот же визуальный эффект - выключил группировку и получаешь отчет БЕЗ колонок этой групрпировки. главное удобно расположить панель быстрых настроек(я делаю ее в выпадающей форме настроек по кнопке, а не прямо на форме как в типовых) сделать это можно автогенерацией формы и прописать пару связок в палитре свойств основной форме. работы на 10 минут, результат тот, что тебе нужен, цена 500К или приобрети опыт сам.

тогда нужно будет отчет переформировать каждый раз - я правильно понимаю?

такой метод ясен и понятен и правилен, но отчет очень большой и формируется долго, и какие колонки понадобятся на текущий момент - даже пользователи не знают, поэтому. но всерано спасибо.

есть вариант Результат.Область(,2,,2).Сгруппировать, но там шапка мешает, как ее обойти .

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

Данный код в модуле отчета позволяет свернуть группировки до необходимого уровня (0,1,2. ):

Разместил: E_Migachev  Версии: | 8.2 УП | 8.3 |  Дата: 28.07.2014   Прочитано: 33217

Распечатать

Похожие FAQ

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2)  0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Выборка из результата запроса всех вошедших в него значений группировок  4
При обходе результата запроса нередко возникает необходимость получения всех значений группировок внутри какой-либо другой группировки. Такая возможность может понадобиться, например, при выводе кросс отчета. Для обеспечения такой возможности в объек Посмотреть все результаты поиска похожих

Еще в этой же категории

Произвольный макет в СКД  45
Делал недавно отчет с неопределенным количеством колонок. Возиться с кодом было неохота, решил сделать на СКД. С этим проблема не возникла, необходимо было натянуть результат на произвольный макет (свой заголовок + период). Покажу на примере по шагам Программный вывод отчета СКД  35
Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию. //Получаем схему из макета СхемаКомпоновкиДанны Как сформировать отчет СКД без проверки прав (в привилегированном режиме)?  21
Что при разработке отчетов требуется чтобы у пользователя с ограниченными правами, отчет формировался полностью без проверки прав! Особенно если настроен RLS Есть несколько способов как это сделать: 1. Установить привилегированный режим в модул Конструктор схемы компоновки данных - Закладка Связи наборов данных  17
На этой закладке можно указать, какие осуществляются связи между двумя и более наборами дан-ных, по каким параметрам и условиям. https://helpf.pro/uploads/img/sukpd038.jpg 1. «Источник связи» - указывается первый набор данных, от которого осуще Как программно сформировать отчет СКД указав параметры и на выходе получить таблице значений?  12
В одном документе для расчета потребовалось получать данные из отчета на СКД, реализовал следующим образом: //Програмное формирование отчета СКД СхемаОст = Отчеты.ТоннажПоЭкспедиторам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикН Посмотреть все в категории Схема Компоновки Данных

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

Дополню. Если свернуть приведенным в статье кодом, то группировки свернутся, но при раскрытии, если есть ещё нижележащие группировки, они также будут раскрыты. Предлагаю доработать:

КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;

Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

Читайте также: