1с скд скрыть пустые колонки

СКД: скрываем нужные группы (блоки) по требованию пользователя

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

1с скд скрыть пустые колонки

Всем привет! Уважаемые знатоки СКД подскажите пожалуйста как можно по условию прятать колонки в СКД

Пример:
ОсновнаяЧасть|Колонка1|Колонка2|. |КолонкаN|
|Дни|Часы|Дни|Часы| |Дни|Часы|

Мне нужно к примеру если Колонка «Дни» полностью пуста в Колонке2 ее скрывать. Как это можно сделать и можно ли вообще это сделать в отчет написанном на СКД.
З.Ы. Макет в отчете сделан свой.

(1) imbaZeratul,
внутри самой СКД не знаю.

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

(9) imbaZeratul,
тогда уточним, что нужно:

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

|Колонка1 |Колонка2 |Колонка3 |
|Норма|Дни|Часы|Норма|Дни|Часы|Норма|Дни|Часы|

мне допустим надо скрыть колонки Дни или Часы именно там где значение будет не заполнено допустим отчет в колонке 2 дни и часы не заполнены тогда будет выглядеть так

| Колонка1 | Колонка2 |Колонка3 |
|Норма|Дни|Часы| Норма |Норма|Дни|Часы|

(14) imbaZeratul,
а . так это кросс-отчет!

блин вилы.
указанный способ позволяет скрыть «Дни» по определенному признаку
во всей кросс-таблице, а не в отдельных ее колонках.

(16) imbaZeratul,
да все равно как!
при этом можно по определенному признаку скрыть поле «Дни» — во всем отчете.

у тебя же выводится кросс-отчет
.
для каких-то значений группировок колонок
итог «Дней» по строкам может оказаться равным нулю — тогда поле «Дни» надо скрыть
(и только для этих сочетаний значений группировок колонок)

для других же значений группировок колонок
итог «Дней» может оказаться не пустым — и тогда скрывать ничего не нужно.

ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)

Источник

1C СКД Видимость колонки по условию

Рассмотрим задачу, когда колонку СКД нужно выводить в зависимости от выполнения какого-то условия.

Рассмотрим на примере внешнего отчета (без формы отчета, только СКД), условие вывода колонки задано в параметре СКД с типом Булево. Все доступные параметры выведены на форму отчета с помощью свойства параметров Включать в пользовательские настройки (правой кнопкой мышки по параметру Свойства элемента пользовательских настроек) (рис. 1):

Рис. 1. Свойства параметра отчета

В списке выбранных полей отчета присутствует колонка Себестоимость, выводом которой нужно управлять (рис. 2):

Рис. 2. Выбранные поля отчета

У параметра Себестоимость, отвечающего за вывод колонки отчета СКД Себестоимость, на закладке Параметры в СКД задаем свойству Использование значение Всегда, чтобы пользователи выбирали только значение параметра и не могли управлять использованием параметра (рис. 3):

Рис. 3. Свойство параметра Использование

Далее в модуле объекта отчета определяем процедуру ПриКомпоновкеРезультата(), в функции КолонкаСебестоимостьДоступна() прописываем возможные дополнительные условия вывода колонки:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

Для Каждого ПараметрОтчета Из ПараметрыОтчета Цикл

Если ТипЗнч(ПараметрОтчета) = Тип(«ЗначениеПараметраНастроекКомпоновкиДанных») И ПараметрОтчета.Параметр = Новый ПараметрКомпоновкиДанных(«Себестоимость«) Тогда

Если НЕ (КолонкаСебестоимостьДоступна() И ПараметрОтчета.Значение) Тогда

//убирем из выводимых колонок

Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл

Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда

//добавляем, если нет

Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл

Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда

Источник

1C СКД Видимость колонки по условию

Рассмотрим задачу, когда колонку СКД нужно выводить в зависимости от выполнения какого-то условия.

Рассмотрим на примере внешнего отчета (без формы отчета, только СКД), условие вывода колонки задано в параметре СКД с типом Булево. Все доступные параметры выведены на форму отчета с помощью свойства параметров Включать в пользовательские настройки (правой кнопкой мышки по параметру Свойства элемента пользовательских настроек) (рис. 1):

Рис. 1. Свойства параметра отчета

В списке выбранных полей отчета присутствует колонка Себестоимость, выводом которой нужно управлять (рис. 2):

Рис. 2. Выбранные поля отчета

У параметра Себестоимость, отвечающего за вывод колонки отчета СКД Себестоимость, на закладке Параметры в СКД задаем свойству Использование значение Всегда, чтобы пользователи выбирали только значение параметра и не могли управлять использованием параметра (рис. 3):

Рис. 3. Свойство параметра Использование

Далее в модуле объекта отчета определяем процедуру ПриКомпоновкеРезультата(), в функции КолонкаСебестоимостьДоступна() прописываем возможные дополнительные условия вывода колонки:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

Для Каждого ПараметрОтчета Из ПараметрыОтчета Цикл

Если ТипЗнч(ПараметрОтчета) = Тип(«ЗначениеПараметраНастроекКомпоновкиДанных») И ПараметрОтчета.Параметр = Новый ПараметрКомпоновкиДанных(«Себестоимость«) Тогда

Если НЕ (КолонкаСебестоимостьДоступна() И ПараметрОтчета.Значение) Тогда

//убирем из выводимых колонок

Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл

Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда

//добавляем, если нет

Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл

Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда

Источник

Скрыть колонку, по которой идет сортировка, в отчете СКД

Помощь в написании контрольных, курсовых и дипломных работ здесь.

СКД Скрыть колонку в таблице
Есть отчет с запросом ВЫБРАТЬ НормыВыдачиСпецодеждыСпецодежда.Наименование, .

Как скрыть колонку в макете СКД?
Доброго времени суток. Как в макете скд скрыть колонку, чтобы при открытие отчета ее не было видно.

В отчете скд как зафиксировать 1 колонку, чтобы не повторялась при выводе по периодам?
Платформа 8.1, конфигурация самописная. В приложении сам отчет и в экселе зеленым я отметил те.

Убрать поля в запросе (скрыть поля в отчете скд)
В запросе я создаю временную таблицу. В ней сгруппировав поля получаю нужную таблицу. Но некоторые.

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

Добавлено через 3 минуты
хотя может и не работает, у меня поле не заполнено, завтра на работе проверю на нормальной базе.

Решение

Нет. При отсутствии галок эти поля (группировки) не используются при построении отчета, это все равно, что их удалить.

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

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

Можешь приложить отчет?

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

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

Добавлено через 1 минуту
как програмно скрыть колонку? это вообще возможно?

Вложения

ПланПлан.7z (4.6 Кб, 9 просмотров)

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

Добавлено через 12 часов 41 минуту
Как думаете, если я в запросе получаю ссылку. А в настройке СКД: поля вытаскиваю из этой ссылки — это очень плохо?
Просто по другому (если запросом сразу все получать), то в случае Иерархии — родительские строки остаются незаполнеными (за исключением поля Ссылка).

Запрос в отчете с СКД
У меня есть такой запрос: ВЫБРАТЬ МашинноеВремя.Дата КАК Дата, МашинноеВремя.Ссылка.

Расшифровка в отчете на скд
Необходимо сделать свою расшифровку. Для начала не могу добраться до значения ресурса. функция.

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

Гиперссылка в отчете СКД
Здравствуйте. В отчете СКД вывожу путь к файлу в виде строки. Можно ли вывести путь в виде.

Источник

Читайте также:  Наушники со встроенными цапами
Оцените статью