1C СКД Видимость колонки по условию
Рассмотрим задачу, когда колонку СКД нужно выводить в зависимости от выполнения какого-то условия.
Рассмотрим на примере внешнего отчета (без формы отчета, только СКД), условие вывода колонки задано в параметре СКД с типом Булево. Все доступные параметры выведены на форму отчета с помощью свойства параметров Включать в пользовательские настройки (правой кнопкой мышки по параметру Свойства элемента пользовательских настроек) (рис. 1):
Рис. 1. Свойства параметра отчета
В списке выбранных полей отчета присутствует колонка Себестоимость, выводом которой нужно управлять (рис. 2):
Рис. 2. Выбранные поля отчета
У параметра Себестоимость, отвечающего за вывод колонки отчета СКД Себестоимость, на закладке Параметры в СКД задаем свойству Использование значение Всегда, чтобы пользователи выбирали только значение параметра и не могли управлять использованием параметра (рис. 3):
Рис. 3. Свойство параметра Использование
Далее в модуле объекта отчета определяем процедуру ПриКомпоновкеРезультата(), в функции КолонкаСебестоимостьДоступна() прописываем возможные дополнительные условия вывода колонки:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Для Каждого ПараметрОтчета Из ПараметрыОтчета Цикл
Если ТипЗнч(ПараметрОтчета) = Тип(«ЗначениеПараметраНастроекКомпоновкиДанных») И ПараметрОтчета.Параметр = Новый ПараметрКомпоновкиДанных(«Себестоимость«) Тогда
Если НЕ (КолонкаСебестоимостьДоступна() И ПараметрОтчета.Значение) Тогда
//убирем из выводимых колонок
Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда
//добавляем, если нет
Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда
Источник
1C СКД Видимость колонки по условию
Рассмотрим задачу, когда колонку СКД нужно выводить в зависимости от выполнения какого-то условия.
Рассмотрим на примере внешнего отчета (без формы отчета, только СКД), условие вывода колонки задано в параметре СКД с типом Булево. Все доступные параметры выведены на форму отчета с помощью свойства параметров Включать в пользовательские настройки (правой кнопкой мышки по параметру Свойства элемента пользовательских настроек) (рис. 1):
Рис. 1. Свойства параметра отчета
В списке выбранных полей отчета присутствует колонка Себестоимость, выводом которой нужно управлять (рис. 2):
Рис. 2. Выбранные поля отчета
У параметра Себестоимость, отвечающего за вывод колонки отчета СКД Себестоимость, на закладке Параметры в СКД задаем свойству Использование значение Всегда, чтобы пользователи выбирали только значение параметра и не могли управлять использованием параметра (рис. 3):
Рис. 3. Свойство параметра Использование
Далее в модуле объекта отчета определяем процедуру ПриКомпоновкеРезультата(), в функции КолонкаСебестоимостьДоступна() прописываем возможные дополнительные условия вывода колонки:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Для Каждого ПараметрОтчета Из ПараметрыОтчета Цикл
Если ТипЗнч(ПараметрОтчета) = Тип(«ЗначениеПараметраНастроекКомпоновкиДанных») И ПараметрОтчета.Параметр = Новый ПараметрКомпоновкиДанных(«Себестоимость«) Тогда
Если НЕ (КолонкаСебестоимостьДоступна() И ПараметрОтчета.Значение) Тогда
//убирем из выводимых колонок
Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда
//добавляем, если нет
Для Каждого ЭлКолонки Из КомпоновщикНастроек.Настройки.Выбор.Элементы Цикл
Если ЭлКолонки.Поле = Новый ПолеКомпоновкиДанных(«Себестоимость«) Тогда
Источник
СКД, пробуем вывести содержимое строк в колонки
Введение.
В свое время я долго искал, как можно вывести данные из табличных частей в колонки. В принципе я понимал, что таблица — это наше все, но как вывести это все вместе и чтобы суммы «пошли» — как-то не находил. Но потом все-таки разобрался. В качестве примера хочу привести простой отчетик, который будет выводить данные документа «Реализация товаров» (данные взяты из демоверсии последней УТ), которые продолжит знаком «х» напротив имеющихся в документе видов номенклатуры, выводящихся в свою очередь в колонки.
Итак, делаем:
1. Документы «Реализация товаров». Добавим их в первый набор данных. Добавим для красоты «ГДЕ Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода».
2. Табличная часть «Товары» документа («Реализация товаров») — добавим ее во второй набор данных + добавим туда вид номенклатуры.
Свяжем эти два набора по ссылке.
Добавим в ресурсы суммы и номенклатуру.
В параметры добавим Период типа «Стандартный период», а в даты пропишем выражения «&Период.ДатаНач/Кон. «.
В выбранные поля пропишем ссылку, суммы, клиента и соглашение, организацию и прочее разное, что нам надо.
Добавим таблицу. В поле колонок добавим ВидНоменклатуры, в выбранные поля добавим «ВидНоменклатуры» и «Номенклатура» (это у нас ресурс, кстати).
В строки добавим пустую группировку, которая станет Детальными записями.
В общих настройках отчета выберем «Автопозиция ресурсов» = «Не использовать», в настройках колонки ВидНоменклатуры «Автопозиция ресурсов» = «После всех полей».
В условном оформлении детальных записей установим текст для заполненной номенклатуры «х».
Источник
СКД: скрываем нужные группы (блоки) по требованию пользователя
Цель: реализовать возможность скрывать блок колонок пользователем в отчёте, как показано на рисунках:
Отчёт выполнен на базе схемы компоновки данных (СКД).
Написан запрос, для выборки нужных данных. Он индивидуален, поэтому его нет смысла представлять.
Описание самого «увлекательного» процесса настройки СКД представлено ниже.
В параметры СКД вынесены необходимые параметры:
В данном случае, — Аналитика, ОбъектЭксплуатации и Управленческий.
В настройках СКД отчёт состоит из двух группировок: дополнительной информации и детальных записей.
В дополнительной информации выводится заголовок отчёта, а в детальных записях — его данные.
Обратим внимание, что в настройках отчёта необходимо вывести параметры: Аналитика, Объект эксплуатации и Управленческие аналитики.
Это показана на рисунке:
Зададим первоначальные значения этих параметров. В нашем случае, значение принимает следующий вид: «Ложь».
В детальных записях (вкладка Выбранные поля) выведены колонки отчёта и созданы группы, которые, в зависимости от выбранных пользователем параметров, будут выводиться в отчёт:
Не забываем, что эти параметры необходимо включить в пользовательские настройки:
На этом «увлекательный» процесс закончен. Перейдём к написанию кода для реализации скрытия нужных блоков (полный текст процедур можно найти после описания).
Достаточно много времени заняла отладка кода, чтобы попасть в нужный блок и установить свойство «Использование».
Все манипуляции будут проходить в модуле объекта отчёта, в процедуре «ПриКомпоновкеРезультата».
Итак, что мы делаем:
1) получаем пользовательские настройки элементов и структуры отчёта
2) создаём параметры видимости колонок
3) для удобства отладки вынесли названия выводимых заголовков (блоков)
4) перебираем параметры отчёта, получаем текущие значения видимости и обращаемся именно к нужному блоку отчёта с детальными записями. Если выбираемый блок относится к группе с заголовком «Расшифровки», а именно в этом блоке содержатся скрываемые колонки, то применяем процедуру «ОтображениеБлокаКолонок» для манипуляций с видимостью
5) манипуляции с видимостью заключаются в том, что в зависимости от установленного значения параметра видимости, свойство «Использование» принимает необходимое значение.
Источник
Скд вывод колонок по параметру
Кому подойдет информация: Программист 1С
Пожалуй, наиболее популярный вопрос, который возникает у программистов 1С при работе со схемой компоновки данных.
Когда создается отчет на СКД, то, пока не определены ресурсы, показатели будут выводиться в той последовательности, которая определена на вкладке «Выбранные поля» вкладки «Настройки».
Нажатие на изображения увеличит их
Рис.1. Пример вывода полей (колонок) отчета на СКД , пока не определены ресурсы.
Если определить, какие из полей будут ресурсами, то колонки ресурсов будут выведены схемой компоновки данных после всех полей. Для определенных задач, не смотря на то, что все же данные в отчете есть, это может оказаться не удобным хотя бы в силу человеческого восприятия. Поэтому один из популярных вопросов, касающихся отчетов, созданных на СКД — «Как СКД вывести ресурсы не в конце?» Наиболее распространенный ответ на этот вопрос заключается в том, чтобы «нарисовать» макет для группировок отчета на вкладке «Макеты» — об этом на примере можно прочитать в книге «Разработка сложных отчетов в 1С:Предприятии 8. Система компоновки данных» под авторством Е.Ю.Хрусталевой в Главе 5 — «Макеты», где приведены примеры для макетов полей, ресурсов, группировок, заголовков группировок и остального. Но это может оказаться трудоемким процессом, тем более тогда, когда макет определен, а нужно отчет дополнить новыми данными. Сделать то, конечно можно, но время будет израсходовано прилично, чтобы изменять макет, особенно если отчет и макет соответственно сложный.
Рис. 2. Результат вывода полей(колонок) отчета после определения ресурсов
Но есть одно простое, не идеальное, но доступное решение этой ситуации произвольного вывода колонок ресурсов. На вкладке «Другие настройки» формы схемы компоновки для параметра «Авто позиция ресурсов» выбрать значение «Не использовать». Не идеальность заключается в том, что неплохо работает для группировок, и может совсем плохо себя «повести» для таблицы.
Рис. 3. Настройки схемы компоновки данных для изменения порядка вывода ресурсов
Тогда порядок следования колонок ресурсов между колонками полей будет соответствовать порядку, установленному на вкладке «Выбранные поля» СКД.
Рис. 4. Колонки ресурсов в отчете выведены между колонками полей СКД.
Источник