1с отчеты как вывести отбор на форму
Как же теперь вывести быстрые настройки в отчетах на управляемых формах, например отбор? Тут просто нужно знать, что делать. Некоторый плюс управляемых форм — не нужно рисовать элементы формы, платформа их разметит сама. Только нужно ей сказать об этом. И в данном случае нужно знать, каким образом указать необходимость размещения на форме отчета на СКД вывода параметров отчета. Пример из типовой конфигурации 1С: Управление торговлей 8, ред. 11
Как же разработчикам удалось разместить на управляемой форме отчета быстрый доступ к параметру отчета типа начало периода/конец периода и к отборам, учитывая тот факт, что явно в конфигураторе форма у отчета никак не определена? Все оказывается достаточно не сложно.
Для определения параметра в виде "Период" на форме отчета, как видно на предыдущей картинке, необходимо к существующим параметрам, полученным из параметров запроса (источника данных) "НачалоПериода" и "КонецПериода" доопределить дополнительный параметр "Период", тип которого "СтандартныйПериод", значение выбриается из списка, какой больше будет подходить. В колонке "В. " ( "Видимость " ) установить флажок, снять признак "О. " ("Органичение доступности"), у исходных параметров — наоборот. Так же необходимо определить выражения для параметров "Начало периода" и "КонецПериода", как представлено: &Период.ДатаНачало и &Период.ДатаОкончания
Теперь нужно настроить в СКД возможность вывода параметру на управляемую форму автоматически. Для этого переходим на закладку "Найстройки" схемы компоновки данных. На закладке параметры выделяемя строку с параметром "Период", справа от списка паарметров нажимаем кнопку "Свойства элемента пользовательских настроек". И в окне "Пользовательские настройки элемента" устанавливаете признак "Включать в пользовательские настройки". После этой процедуры параметр сам автоматически будет выведен на форму отчета, работающего в управляемом приложении.
После этого только хочется дополнить, что вывод отборов отчета на управляемой форме настраивается подобным образом:
Предисловие
Редко какой отчет в 1С не использует отборы, разве что печатные формы и какие-то специальные отчеты. В большинстве отчетов в 1С требуется возможность выборочного анализа. Поэтому в этой статье мы поговорим про настройку отборов в отчетах, построенных с помощью 1С СКД.
После того как вы добавили наборы, определили ресурсы, задали структуру отчета с помощью группировок , можно приступать к настройке фильтров. В СКД это делается на закладке «Отбор», которая доступна или для всего отчета или для определенной группировки.
Новый элемент в список отбора можно добавить несколькими способами – двойной клик по доступному полю, перетаскивание, клавиша в меню:
При этом только через клавишу в меню можно добавить группу в отбор, которая объединяет элементы внутри этой группы по заданному условию (И, ИЛИ).
По умолчанию если элементы отбора не включены ни в какую группу и объединяются с помощью оператора «И».
Вид сравнения в элементе отбора зависит от типа поля (левого значения):
Операции доступные для числа:
Операции доступные для строки:
Для строки добавлены операции – «содержит», «начинается с», «соответствует шаблону» и те же операции с оператором «Не» (Не содержит и т.д.).
Операции доступные для ссылки:
Далее разберем типовые ситуации при использовании отбора
Фиксированный отбор
Самый простой вариант использование отбора – добавить фиксированный отбор, который будет действовать всегда (если конечно пользователь не изменит его в варианте отчета):
Обычно такие отборы имеет смысл переносить в текст запроса. Особенно в том случае, если пользователь не должен его менять вообще ни при каком условии.
Исключение определенных группировок из отчета
Иногда в отчете на 1С СКД возникает необходимость исключить в отчете значения некоторых группировок (колонок или строк). Причем сделать это в запросе не представляется возможным, потому что исключать такие строки возможно только после компоновки.
В этом случае используется возможность СКД накладывать отборы на заданную группировку. Рассмотрим, например, такой отчет:
Допустим нам нужно исключить из отчета все строки, в которых итоговое количество по номенклатуре меньше 15. В запросе мы такое условие применить не можем. Установим для этого отбора для группировки «Номенклатура»:
Получим такой отчет:
Отборы на группировках часто используются в отчетах вида «Ведомость по остаткам»:
При использовании группировки по периоду (регистратору) в таких отчетах появляются строки, отвечающие за начальный остаток при использовании даты начала периода отличной от самой ранней. Чтобы убрать такие строки, можно использовать отбор на группировке по регистратору:
Чтобы убрать отбор, выделенный на рисунке на закладке «Другие настройки» для этой же группировки отключим вывод отбора:
Добавить отбор для пользователя
Обычно мы редко используем фиксированные отборы. Чаще нам нужны отборы, которые может изменять пользователь. Можно, чтобы пользователь изменял отборы через функционал 1С СКД «Изменить вариант», но это не совсем верный путь – вариант отчета это скорее постоянный «скелет», который настраивается один раз и потом используется многократно. Отборы же это что-то часто изменяемое, поэтому правильнее редактировать их через механизм пользовательских настроек.
Итак, вернемся к нашему отчету. Допустим нам необходимо добавить в отчет отбор по группе номенклатуры (или по элементу) и чтобы этот отбор был доступен для изменения пользователем.
Добавим для этого отбор на уровне отчета. Вид сравнения по умолчанию сделаем «В группе», отключим по умолчанию использование отбора и в диалоге редактирования пользовательских настроек включим наш отбор в пользовательские настройки.
Перейдем теперь в режим предприятия.
Наш отбор доступен для редактирования на форме. За доступность прямо в форме отчета отвечает «Режим редактирования». Значение «Быстрый доступ» означает, что отбор доступен прямо на форме отчета. Если значение равно «Обычный», отбор доступен через кнопку «Настройки». Как видно на рисунке пользователь может выбирать вариант сравнения, управлять действием (включен / отключен) отбора.
Если вам необходимо установить фиксированный отбор (вид сравнения и правое значение константы), но пользователь должен управлять включением / отключением отбора, тогда вам необходимо заполнить представление отбора в пользовательской настройке:
В этом случае в настройки добавляется только флаг использования отбора, которым может управлять пользователь:
Если вам в отборе нужно изменить представления поля, по которому делается отбор, то для этого есть еще одно представление:
Получается вот так:
Мы можем вывести все отборы для редактирования пользователем. Для этого на уровне отчета вызовем диалог редактирования пользовательских настроек:
То же самое можно сделать на уровне любой группировки, если нужно, чтобы была возможность редактирования отборов для заданной группировки. В режиме предприятия это выглядит следующим образом:
Отборы на форме и в динамических списках
Как известно, в 1С СКД используется не только в отчетах, но и в формах, содержащих динамические списки. У динамического списка есть несколько свойств, которые относятся к СКД. Среди этих свойств имеется свойство «Отбор» с типом «ОтборКомпоновкиДанных». Чтобы установить отбор в динамическом списке есть два способа. Первый способ – передать отборы через параметр формы с одноименным названием – «Отбор». Этот параметр является структурой, в которой ключ ссылается на поле, для которого устанавливается отбор. Значение же содержит данные, с которыми производится сравнение. Можно также передать в качестве правого значения – массив, фиксированный массив, список значений. В этом случае вид сравнения равняется «ВСписке», для одиночного элемента вид сравнения устанавливается как «Равно». Этот способ ограничен в возможностях – с его помощью нельзя накладывать сложные условия с операторами «И» и «ИЛИ», нельзя использовать виды сравнения кроме двух указанных.
Отбор, установленный таким образом, передается в фиксированные настройки компоновщика настроек, связанного с динамическим списком. Он не виден пользователю и недоступен для изменения.
Второй способ – непосредственное редактирование отбора в динамическом списке или в компоновщике. Обычно в типовых конфигурация для этого есть ряд методов и функций для установки таких отборов.
Например, вызов основного метода для установки отбора выглядит так:
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, «Ссылка», Параметры.ДобавитьДля, ВидСравненияКомпоновкиДанных.НеРавно);
Данная функция производит поиск существующего элемента отбора, изменяет его если нашла, а если не нашла, то добавляет с помощью такой процедуры:
В форме содержащей динамический список также как в отчете на СКД, возможно настроить пользовательский отбор. Как это можно сделать показано на рисунке:
Также у элемента формы, с которым связан список нужно установить группу пользовательских настроек, в которой будут отображаться настройки для пользователя:
Как сделать отбор в отчете в 1С:Бухгалтерия?
Материал в статье будет посвящен тому, каким образом сделать отборы в отчете в 1С:Бухгалтерия 3 и как с ними работать. Также данный материал будет актуален и для других программных продуктов фирмы 1С, таких как 1С:Зарплата и Управление Персоналом, 1С:Управление Торговлей, 1С:Управление небольшой фирмой и др. Зная, как работать с отборами хотя бы с одним отчетом, в дальнейшем для вас не составит никакого труда устанавливать отборы при работе с другими отчетами. Для чего нужны отборы в отчетах? Отборы позволяют формировать отчеты “по нужной нам информации”. К примеру, у нас есть отчет остатки товаров и нам необходимо посмотреть остатки по интересующей нас конкретной номенклатурной позиции. Для этого мы устанавливаем в качестве значения отбора эту позицию и формируем отчет. После чего у нас в отчете отобразиться информация по остаткам на складе только по данной выбранной позиции. Это значительно упрощает работу с отчетами и как следствие сокращает время на выполнение рабочих обязанностей.
Давайте перейдем в программе в раздел “Склад” и выберем отчет “Остатки товаров”. В шапке отчета у нас уже имеется стандартное поле для отбора по реквизиту “Организация”. Сформируем отчет по одной из организаций.
В отчете отобразилась информация по всем имеющимся позициям на складах. Далее для установки отбора нажимаем на кнопку в шапке “Показать настройки” и в открывшемся элементе с настройками переходим на закладку “Отбор”.
По умолчанию в текущем отчете уже присутствуют два поля отбора “номенклатура” и “склад”. Установим отбор по обоим и вид сравнения в нашем случае будет “равно”. К примеру, если бы требовалось установить отбор по нескольким номенклатурным позициям, то для поля “Номенклатура” следовало бы выбрать вид сравнения “В списке” и в колонке “Значение” указать все эти позиции.
По кнопке “Добавить” или нажав правую клавиши мыши, находясь в таб. части отбора можно добавить и другие поля для отбора.
Далее выбираем поле для отбора и нажимаем “ОК”. Следует отметить, что если у поля слева имеется “плюсик”, то его можно раскрыть и выбрать подчиненное поле для отбора. К примеру “Вид номенклатуры” внутри поля “Номенклатура”.
Переформируем отчет с отборами по номенклатуре и складу. Также мелким шрифтом над данными отчета будет отображен отбор.
Также имеется возможность группировать поля отбора. Для этого существует действие “Сгруппировать условия”. В результате эти два отбора в нашем случае будут работать как один общий отбор по указанным значениям. Действие “Разгруппировать” отменяет группировку.
Также возможно выбрать разные типы группы
Аналогичным образом будет настраиваться и работать отбор в других отчетах информационной базы
Отображение отборов СКД в форме обычного приложения
В обычном приложении поля отбора автоматически не появляются в форме, управлять настройками СКД возможно, либо по кнопке «Настройки…» панели действий формы, либо программно.
Создание элементов диалога
Для быстрого управления некоторыми настройками СКД добавляете табличное поле на форму и выбираете в поле данные
Доступные значения для выбора:
В режиме обычного приложения при выборе в свойстве «Данные» табличного поля КомпоновщикНастроек.ПользовательскиеНастройки не доступны для правки, возможно использовать в качестве сводной информации для пользователя, а управлять другими средствами.
При выборе «КомпоновщикНастроек.Настройки« 
- Появляется возможность быстро включать выводимые таблицы или диаграммы, когда их несколько
- Менять структуру отчета
- Отключать выводимые группировки
При выборе «КомпоновщикНастроек.Настройки.Отбор«
- Нельзя управлять списком отборов на этапе предустановок: всегда отображаются все элементы и группы отбора
- Возможно программно удалять элементы отбора, они сразу будут изменяться в строках табличного поля
- Доступно управлять представлением отбора сразу на этапе конфигурирования
- Пользователь доступно отключение отбора и изменение значение отбора
При выборе «КомпоновщикНастроек.Настройки.Выбор«
- возможность изменять состав выбранных полей (обычных поле и ресурсов)
При выборе «КомпоновщикНастроек.Настройки.Порядок«
- возможность управлять сортировкой (добавлять поля сортировки, менять порядок, отключать сортировку)
Реклама — фантазирование об обычном предмете в извращенной форме.
— Равиль Алев
1с отчеты как вывести отбор на форму
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: делаем отбор и сортировку на уровне СКД
Автор уроков и преподаватель школы: Владимир Милькин
Ставим цель
- Создать новый отчёт «Урок5.erf».
- Вывести в этом отчёте города (включая название города, мэра и численность).
- Упорядочить города в списке по численности (по возрастанию)
- Прямо на форме отчёта дать пользователю возможность делать отбор городов по минимальной численности.
Создаём новый отчёт в конфигураторе
Открываем базу «Гастроном» в конфигураторе.
Из главного меню конфигуратора выбираем пункт «Файл»->»Новый. «:
Вид документа: «Внешний отчет»:
В качестве имени пишем «Урок5» и нажимаем кнопку «Открыть схему компоновки данных»:
Соглашаемся с именем схемы компоновки данных по умолчанию:
В открывшейся схеме компоновки данных добавляем набор данных — запрос:
Составляем запрос
Запускаем конструктор запроса:
Из таблицы справочника «Города» выбираем поля: «Наименование», «Мэр» и «Численность»:
Получился такой запрос:
Выводим отчёт в виде списка
Переходим на закладку «Настройки» и нажимаем волшебную палочку, чтобы вызывать конструктор настроек:
Тип отчёта выбираем «Список»:
В отчёте будут отображаться следующие поля:
Сохраняем отчет и тут же проверяем в режиме пользователя:
Сортируем города по численности
Теперь давайте упорядочим записи отчёта по возрастанию численности.
Для этого переходим на вкладку «Настройки», выбираем пункт «Отчет», ниже выбираем вкладку «Сортировка» и перетаскиваем поле численность из первой колонки во вторую.
Направление сортировки указываем «По возрастанию»:
Сохраняем отчёт и проверяем в режиме пользователя:
Делаем отбор городов по численности
Теперь давайте сделаем так, чтобы в отчёте выводились только города с численностью от 1 миллиона человек (включительно). Такая возможность называется отбор.
Переходим на вкладку «Настройки», выбираем пункт «Отчет», далее переходим на вкладку «Отбор» и перетаскиваем поле «Численность» из левой колонки в правую.
В качестве вида сравнения указываем «Больше или равно», а в качестве правого значения — 1000000:
Сохраняем отчет и проверяем в режиме пользователя:
Видим, что остались города с численностью больше миллиона и этот факт (отбора) явно отражён в заголовке отчета.
Выносим параметр отбора на форму отчета
Осталось сделать так, чтобы пользователь мог сам настраивать пороговое значение отбора. Другими словами, чтобы вместо миллиона он мог поставить свою цифру.
Заходим на вкладку «Настройки», выделяем пункт «Отчет», внизу выбираем вкладку «Отбор», выделяем элемент отбора «Численность» и нажимаем справа внизу на зелёный плюсик:
В открывшемся окне ставим галку «Включать в пользовательские настройки»:
Вновь сохраняем отчет и запускаем в режиме пользователя.
Видим, что появилось поле «Численность» меняя условие и значение которого мы управляем отбором городов в отчёте:
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Отборы СКД на форме УФ
Доброго времени суток. Возникла у меня потребность в динамическом отборе таблицы значений. На не управляемых формах эту функцию использовал очень часто. Но на УФ как то не доводилось. Но понадобилось. И после изучения данного вопроса получился аккуратный шаблон для использования.
Создание динамического отбора для ТЗ
- Создаем реквизит с типом «КомпоновщикНастроекКомпоновкиДанных»
- Создадим для наглядности два реквизита ДатаНачала и ДатаОкончания
- Далее создаем Макет СКД который будит выбирать необходимую таблицу значений.
С одним условием Период ДатаНач и ДатаОкон.
В запросе СКД я выбираю Список документов за период.
Дальше создаем таблицу значений и переходим к формированию формы.
- Выносим реквизиты Периода
- Потом выносим реквизит на форму для формирования отбора Настройки (это наш КомпоновщикНастроекКомпоновкиДанных )->Настройки->Отбор (Объект.Настройки.Настройки.Отбор)
- И ,соответственно, нашу таблицу значений выносим на форму. Также не забываем команду для запуска отбора
- Далее переходим в модуль формы
- При создании на сервере прописываем такой код. Это необходимо для того чтобы в таблицу подтянулись настройки отборов из СКД
- Описываем команду для формирования ТЗ
Сохраняем и проверяем.
Вот что у нас получилось. Спасибо за внимание .
Тестировалась на платформе 1С:Предприятие 8.3 (8.3.18.1741).
Скачать файлы
См. также
Infostart Toolkit
Набор инструментов (расширение) программистов — разработчиков, специалистов 1С для конфигураций на управляемых формах. Продукт хорошо оптимизирован и обладает широким функционалом. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента.
11000 10000 руб.
02.09.2020 87324 433 374
Гибкие отборы через СКД на управляемых формах. Демо-обработка
В данной публикации предлагаю вам рабочий пример использования системы компоновки данных для отборов на управляемых формах.
1 стартмани
07.06.2023 3776 19 quazare 7
Вывод элементов иерархии верхнего уровня на СКД
Как получить родителя первого уровня иерархического справочника с помощью СКД.
1 стартмани
06.06.2023 2723 echo77 6
Новичок новичку: самый простой способ сделать расшифровку в СКД (обычные\управляемые формы)
Рассказываю на примере, как наиболее просто сделать расшифровку в СКД
20.03.2023 4655 user1312100 86
Обработка результатов запроса произвольными вычисляемыми полями. Обзор некоторых новых функций СКД
В данной статье вспомним, как обрабатывать результаты запроса в вычисляемых полях СКД, а также сделаем небольшой обзор на новые функции СКД платформы 8.3.20.
07.02.2023 4070 quazare 7
Приемы работы с СКД: выгрузка данных справочников и документов в линейном виде в табличный документ
Программное использование схемы компоновки данных для выгрузки данных справочников и документов в табличный документ.
1 стартмани
24.01.2023 3939 17 RocKeR_13 1
Выборочная свертка группировок для СКД
Методика разработки отчета на СКД с возможностью свёртки части группировок по заданному программно условию. — свертка по значению поля (неотрицательные — сворачиваются); — свертка подчиненных в иерархии с произвольным количеством уровней.
1 стартмани
16.01.2023 2316 schthaxe 3
Разрабатываем отчет на СКД, содержащий данные из расширения
Ввиду развития механизма расширений в 1С часто приходится сталкиваться с задачей, когда требуется разработать отчет, который должен строиться как по данным конфигурации, так и по данным расширения. И здесь присутствует нюанс, о котором я и хотел бы поведать в этой статье. Расскажу также о способе решения, который я использую.
17.10.2022 4855 al_zzz 10
Хитрости СКД. Часть 4
Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Работа с 2 схемами в одном отчете, когда данные одной схемы являются исходными для другой. Копирование пользовательских отборов из одной схемы в другую. Корректная модификация формы отчета БСП.
1с отчеты как вывести отбор на форму
Как же теперь вывести быстрые настройки в отчетах на управляемых формах, например отбор? Тут просто нужно знать, что делать. Некоторый плюс управляемых форм — не нужно рисовать элементы формы, платформа их разметит сама. Только нужно ей сказать об этом. И в данном случае нужно знать, каким образом указать необходимость размещения на форме отчета на СКД вывода параметров отчета. Пример из типовой конфигурации 1С: Управление торговлей 8, ред. 11
Как же разработчикам удалось разместить на управляемой форме отчета быстрый доступ к параметру отчета типа начало периода/конец периода и к отборам, учитывая тот факт, что явно в конфигураторе форма у отчета никак не определена? Все оказывается достаточно не сложно.
Для определения параметра в виде "Период" на форме отчета, как видно на предыдущей картинке, необходимо к существующим параметрам, полученным из параметров запроса (источника данных) "НачалоПериода" и "КонецПериода" доопределить дополнительный параметр "Период", тип которого "СтандартныйПериод", значение выбриается из списка, какой больше будет подходить. В колонке "В. " ( "Видимость " ) установить флажок, снять признак "О. " ("Органичение доступности"), у исходных параметров — наоборот. Так же необходимо определить выражения для параметров "Начало периода" и "КонецПериода", как представлено: &Период.ДатаНачало и &Период.ДатаОкончания
Теперь нужно настроить в СКД возможность вывода параметру на управляемую форму автоматически. Для этого переходим на закладку "Найстройки" схемы компоновки данных. На закладке параметры выделяемя строку с параметром "Период", справа от списка паарметров нажимаем кнопку "Свойства элемента пользовательских настроек". И в окне "Пользовательские настройки элемента" устанавливаете признак "Включать в пользовательские настройки". После этой процедуры параметр сам автоматически будет выведен на форму отчета, работающего в управляемом приложении.
После этого только хочется дополнить, что вывод отборов отчета на управляемой форме настраивается подобным образом:
Предисловие
Редко какой отчет в 1С не использует отборы, разве что печатные формы и какие-то специальные отчеты. В большинстве отчетов в 1С требуется возможность выборочного анализа. Поэтому в этой статье мы поговорим про настройку отборов в отчетах, построенных с помощью 1С СКД.
После того как вы добавили наборы, определили ресурсы, задали структуру отчета с помощью группировок , можно приступать к настройке фильтров. В СКД это делается на закладке «Отбор», которая доступна или для всего отчета или для определенной группировки.
Новый элемент в список отбора можно добавить несколькими способами – двойной клик по доступному полю, перетаскивание, клавиша в меню:
При этом только через клавишу в меню можно добавить группу в отбор, которая объединяет элементы внутри этой группы по заданному условию (И, ИЛИ).
По умолчанию если элементы отбора не включены ни в какую группу и объединяются с помощью оператора «И».
Вид сравнения в элементе отбора зависит от типа поля (левого значения):
Операции доступные для числа:
Операции доступные для строки:
Для строки добавлены операции – «содержит», «начинается с», «соответствует шаблону» и те же операции с оператором «Не» (Не содержит и т.д.).
Операции доступные для ссылки:
Далее разберем типовые ситуации при использовании отбора
Фиксированный отбор
Самый простой вариант использование отбора – добавить фиксированный отбор, который будет действовать всегда (если конечно пользователь не изменит его в варианте отчета):
Обычно такие отборы имеет смысл переносить в текст запроса. Особенно в том случае, если пользователь не должен его менять вообще ни при каком условии.
Исключение определенных группировок из отчета
Иногда в отчете на 1С СКД возникает необходимость исключить в отчете значения некоторых группировок (колонок или строк). Причем сделать это в запросе не представляется возможным, потому что исключать такие строки возможно только после компоновки.
В этом случае используется возможность СКД накладывать отборы на заданную группировку. Рассмотрим, например, такой отчет:
Допустим нам нужно исключить из отчета все строки, в которых итоговое количество по номенклатуре меньше 15. В запросе мы такое условие применить не можем. Установим для этого отбора для группировки «Номенклатура»:
Получим такой отчет:
Отборы на группировках часто используются в отчетах вида «Ведомость по остаткам»:
При использовании группировки по периоду (регистратору) в таких отчетах появляются строки, отвечающие за начальный остаток при использовании даты начала периода отличной от самой ранней. Чтобы убрать такие строки, можно использовать отбор на группировке по регистратору:
Чтобы убрать отбор, выделенный на рисунке на закладке «Другие настройки» для этой же группировки отключим вывод отбора:
Добавить отбор для пользователя
Обычно мы редко используем фиксированные отборы. Чаще нам нужны отборы, которые может изменять пользователь. Можно, чтобы пользователь изменял отборы через функционал 1С СКД «Изменить вариант», но это не совсем верный путь – вариант отчета это скорее постоянный «скелет», который настраивается один раз и потом используется многократно. Отборы же это что-то часто изменяемое, поэтому правильнее редактировать их через механизм пользовательских настроек.
Итак, вернемся к нашему отчету. Допустим нам необходимо добавить в отчет отбор по группе номенклатуры (или по элементу) и чтобы этот отбор был доступен для изменения пользователем.
Добавим для этого отбор на уровне отчета. Вид сравнения по умолчанию сделаем «В группе», отключим по умолчанию использование отбора и в диалоге редактирования пользовательских настроек включим наш отбор в пользовательские настройки.
Перейдем теперь в режим предприятия.
Наш отбор доступен для редактирования на форме. За доступность прямо в форме отчета отвечает «Режим редактирования». Значение «Быстрый доступ» означает, что отбор доступен прямо на форме отчета. Если значение равно «Обычный», отбор доступен через кнопку «Настройки». Как видно на рисунке пользователь может выбирать вариант сравнения, управлять действием (включен / отключен) отбора.
Если вам необходимо установить фиксированный отбор (вид сравнения и правое значение константы), но пользователь должен управлять включением / отключением отбора, тогда вам необходимо заполнить представление отбора в пользовательской настройке:
В этом случае в настройки добавляется только флаг использования отбора, которым может управлять пользователь:
Если вам в отборе нужно изменить представления поля, по которому делается отбор, то для этого есть еще одно представление:
Получается вот так:
Мы можем вывести все отборы для редактирования пользователем. Для этого на уровне отчета вызовем диалог редактирования пользовательских настроек:
То же самое можно сделать на уровне любой группировки, если нужно, чтобы была возможность редактирования отборов для заданной группировки. В режиме предприятия это выглядит следующим образом:
Отборы на форме и в динамических списках
Как известно, в 1С СКД используется не только в отчетах, но и в формах, содержащих динамические списки. У динамического списка есть несколько свойств, которые относятся к СКД. Среди этих свойств имеется свойство «Отбор» с типом «ОтборКомпоновкиДанных». Чтобы установить отбор в динамическом списке есть два способа. Первый способ – передать отборы через параметр формы с одноименным названием – «Отбор». Этот параметр является структурой, в которой ключ ссылается на поле, для которого устанавливается отбор. Значение же содержит данные, с которыми производится сравнение. Можно также передать в качестве правого значения – массив, фиксированный массив, список значений. В этом случае вид сравнения равняется «ВСписке», для одиночного элемента вид сравнения устанавливается как «Равно». Этот способ ограничен в возможностях – с его помощью нельзя накладывать сложные условия с операторами «И» и «ИЛИ», нельзя использовать виды сравнения кроме двух указанных.
Отбор, установленный таким образом, передается в фиксированные настройки компоновщика настроек, связанного с динамическим списком. Он не виден пользователю и недоступен для изменения.
Второй способ – непосредственное редактирование отбора в динамическом списке или в компоновщике. Обычно в типовых конфигурация для этого есть ряд методов и функций для установки таких отборов.
Например, вызов основного метода для установки отбора выглядит так:
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, «Ссылка», Параметры.ДобавитьДля, ВидСравненияКомпоновкиДанных.НеРавно);
Данная функция производит поиск существующего элемента отбора, изменяет его если нашла, а если не нашла, то добавляет с помощью такой процедуры:
В форме содержащей динамический список также как в отчете на СКД, возможно настроить пользовательский отбор. Как это можно сделать показано на рисунке:
Также у элемента формы, с которым связан список нужно установить группу пользовательских настроек, в которой будут отображаться настройки для пользователя:
Как сделать отбор в отчете в 1С:Бухгалтерия?
Материал в статье будет посвящен тому, каким образом сделать отборы в отчете в 1С:Бухгалтерия 3 и как с ними работать. Также данный материал будет актуален и для других программных продуктов фирмы 1С, таких как 1С:Зарплата и Управление Персоналом, 1С:Управление Торговлей, 1С:Управление небольшой фирмой и др. Зная, как работать с отборами хотя бы с одним отчетом, в дальнейшем для вас не составит никакого труда устанавливать отборы при работе с другими отчетами. Для чего нужны отборы в отчетах? Отборы позволяют формировать отчеты “по нужной нам информации”. К примеру, у нас есть отчет остатки товаров и нам необходимо посмотреть остатки по интересующей нас конкретной номенклатурной позиции. Для этого мы устанавливаем в качестве значения отбора эту позицию и формируем отчет. После чего у нас в отчете отобразиться информация по остаткам на складе только по данной выбранной позиции. Это значительно упрощает работу с отчетами и как следствие сокращает время на выполнение рабочих обязанностей.
Давайте перейдем в программе в раздел “Склад” и выберем отчет “Остатки товаров”. В шапке отчета у нас уже имеется стандартное поле для отбора по реквизиту “Организация”. Сформируем отчет по одной из организаций.
В отчете отобразилась информация по всем имеющимся позициям на складах. Далее для установки отбора нажимаем на кнопку в шапке “Показать настройки” и в открывшемся элементе с настройками переходим на закладку “Отбор”.
По умолчанию в текущем отчете уже присутствуют два поля отбора “номенклатура” и “склад”. Установим отбор по обоим и вид сравнения в нашем случае будет “равно”. К примеру, если бы требовалось установить отбор по нескольким номенклатурным позициям, то для поля “Номенклатура” следовало бы выбрать вид сравнения “В списке” и в колонке “Значение” указать все эти позиции.
По кнопке “Добавить” или нажав правую клавиши мыши, находясь в таб. части отбора можно добавить и другие поля для отбора.
Далее выбираем поле для отбора и нажимаем “ОК”. Следует отметить, что если у поля слева имеется “плюсик”, то его можно раскрыть и выбрать подчиненное поле для отбора. К примеру “Вид номенклатуры” внутри поля “Номенклатура”.
Переформируем отчет с отборами по номенклатуре и складу. Также мелким шрифтом над данными отчета будет отображен отбор.
Также имеется возможность группировать поля отбора. Для этого существует действие “Сгруппировать условия”. В результате эти два отбора в нашем случае будут работать как один общий отбор по указанным значениям. Действие “Разгруппировать” отменяет группировку.
Также возможно выбрать разные типы группы
Аналогичным образом будет настраиваться и работать отбор в других отчетах информационной базы
Предисловие
Редко какой отчет в 1С не использует отборы, разве что печатные формы и какие-то специальные отчеты. В большинстве отчетов в 1С требуется возможность выборочного анализа. Поэтому в этой статье мы поговорим про настройку отборов в отчетах, построенных с помощью 1С СКД.
После того как вы добавили наборы, определили ресурсы, задали структуру отчета с помощью группировок , можно приступать к настройке фильтров. В СКД это делается на закладке «Отбор», которая доступна или для всего отчета или для определенной группировки.
Новый элемент в список отбора можно добавить несколькими способами – двойной клик по доступному полю, перетаскивание, клавиша в меню:
При этом только через клавишу в меню можно добавить группу в отбор, которая объединяет элементы внутри этой группы по заданному условию (И, ИЛИ).
По умолчанию если элементы отбора не включены ни в какую группу и объединяются с помощью оператора «И».
Вид сравнения в элементе отбора зависит от типа поля (левого значения):
Операции доступные для числа:
Операции доступные для строки:
Для строки добавлены операции – «содержит», «начинается с», «соответствует шаблону» и те же операции с оператором «Не» (Не содержит и т.д.).
Операции доступные для ссылки:
Далее разберем типовые ситуации при использовании отбора
Фиксированный отбор
Самый простой вариант использование отбора – добавить фиксированный отбор, который будет действовать всегда (если конечно пользователь не изменит его в варианте отчета):
Обычно такие отборы имеет смысл переносить в текст запроса. Особенно в том случае, если пользователь не должен его менять вообще ни при каком условии.
Исключение определенных группировок из отчета
Иногда в отчете на 1С СКД возникает необходимость исключить в отчете значения некоторых группировок (колонок или строк). Причем сделать это в запросе не представляется возможным, потому что исключать такие строки возможно только после компоновки.
В этом случае используется возможность СКД накладывать отборы на заданную группировку. Рассмотрим, например, такой отчет:
Допустим нам нужно исключить из отчета все строки, в которых итоговое количество по номенклатуре меньше 15. В запросе мы такое условие применить не можем. Установим для этого отбора для группировки «Номенклатура»:
Получим такой отчет:
Отборы на группировках часто используются в отчетах вида «Ведомость по остаткам»:
При использовании группировки по периоду (регистратору) в таких отчетах появляются строки, отвечающие за начальный остаток при использовании даты начала периода отличной от самой ранней. Чтобы убрать такие строки, можно использовать отбор на группировке по регистратору:
Чтобы убрать отбор, выделенный на рисунке на закладке «Другие настройки» для этой же группировки отключим вывод отбора:
Добавить отбор для пользователя
Обычно мы редко используем фиксированные отборы. Чаще нам нужны отборы, которые может изменять пользователь. Можно, чтобы пользователь изменял отборы через функционал 1С СКД «Изменить вариант», но это не совсем верный путь – вариант отчета это скорее постоянный «скелет», который настраивается один раз и потом используется многократно. Отборы же это что-то часто изменяемое, поэтому правильнее редактировать их через механизм пользовательских настроек.
Итак, вернемся к нашему отчету. Допустим нам необходимо добавить в отчет отбор по группе номенклатуры (или по элементу) и чтобы этот отбор был доступен для изменения пользователем.
Добавим для этого отбор на уровне отчета. Вид сравнения по умолчанию сделаем «В группе», отключим по умолчанию использование отбора и в диалоге редактирования пользовательских настроек включим наш отбор в пользовательские настройки.
Перейдем теперь в режим предприятия.
Наш отбор доступен для редактирования на форме. За доступность прямо в форме отчета отвечает «Режим редактирования». Значение «Быстрый доступ» означает, что отбор доступен прямо на форме отчета. Если значение равно «Обычный», отбор доступен через кнопку «Настройки». Как видно на рисунке пользователь может выбирать вариант сравнения, управлять действием (включен / отключен) отбора.
Если вам необходимо установить фиксированный отбор (вид сравнения и правое значение константы), но пользователь должен управлять включением / отключением отбора, тогда вам необходимо заполнить представление отбора в пользовательской настройке:
В этом случае в настройки добавляется только флаг использования отбора, которым может управлять пользователь:
Если вам в отборе нужно изменить представления поля, по которому делается отбор, то для этого есть еще одно представление:
Получается вот так:
Мы можем вывести все отборы для редактирования пользователем. Для этого на уровне отчета вызовем диалог редактирования пользовательских настроек:
То же самое можно сделать на уровне любой группировки, если нужно, чтобы была возможность редактирования отборов для заданной группировки. В режиме предприятия это выглядит следующим образом:
Отборы на форме и в динамических списках
Как известно, в 1С СКД используется не только в отчетах, но и в формах, содержащих динамические списки. У динамического списка есть несколько свойств, которые относятся к СКД. Среди этих свойств имеется свойство «Отбор» с типом «ОтборКомпоновкиДанных». Чтобы установить отбор в динамическом списке есть два способа. Первый способ – передать отборы через параметр формы с одноименным названием – «Отбор». Этот параметр является структурой, в которой ключ ссылается на поле, для которого устанавливается отбор. Значение же содержит данные, с которыми производится сравнение. Можно также передать в качестве правого значения – массив, фиксированный массив, список значений. В этом случае вид сравнения равняется «ВСписке», для одиночного элемента вид сравнения устанавливается как «Равно». Этот способ ограничен в возможностях – с его помощью нельзя накладывать сложные условия с операторами «И» и «ИЛИ», нельзя использовать виды сравнения кроме двух указанных.
Отбор, установленный таким образом, передается в фиксированные настройки компоновщика настроек, связанного с динамическим списком. Он не виден пользователю и недоступен для изменения.
Второй способ – непосредственное редактирование отбора в динамическом списке или в компоновщике. Обычно в типовых конфигурация для этого есть ряд методов и функций для установки таких отборов.
Например, вызов основного метода для установки отбора выглядит так:
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, «Ссылка», Параметры.ДобавитьДля, ВидСравненияКомпоновкиДанных.НеРавно);
Данная функция производит поиск существующего элемента отбора, изменяет его если нашла, а если не нашла, то добавляет с помощью такой процедуры:
В форме содержащей динамический список также как в отчете на СКД, возможно настроить пользовательский отбор. Как это можно сделать показано на рисунке:
Также у элемента формы, с которым связан список нужно установить группу пользовательских настроек, в которой будут отображаться настройки для пользователя:
1с отчеты как вывести отбор на форму
Как же теперь вывести быстрые настройки в отчетах на управляемых формах, например отбор? Тут просто нужно знать, что делать. Некоторый плюс управляемых форм — не нужно рисовать элементы формы, платформа их разметит сама. Только нужно ей сказать об этом. И в данном случае нужно знать, каким образом указать необходимость размещения на форме отчета на СКД вывода параметров отчета. Пример из типовой конфигурации 1С: Управление торговлей 8, ред. 11
Как же разработчикам удалось разместить на управляемой форме отчета быстрый доступ к параметру отчета типа начало периода/конец периода и к отборам, учитывая тот факт, что явно в конфигураторе форма у отчета никак не определена? Все оказывается достаточно не сложно.
Для определения параметра в виде "Период" на форме отчета, как видно на предыдущей картинке, необходимо к существующим параметрам, полученным из параметров запроса (источника данных) "НачалоПериода" и "КонецПериода" доопределить дополнительный параметр "Период", тип которого "СтандартныйПериод", значение выбриается из списка, какой больше будет подходить. В колонке "В. " ( "Видимость " ) установить флажок, снять признак "О. " ("Органичение доступности"), у исходных параметров — наоборот. Так же необходимо определить выражения для параметров "Начало периода" и "КонецПериода", как представлено: &Период.ДатаНачало и &Период.ДатаОкончания
Теперь нужно настроить в СКД возможность вывода параметру на управляемую форму автоматически. Для этого переходим на закладку "Найстройки" схемы компоновки данных. На закладке параметры выделяемя строку с параметром "Период", справа от списка паарметров нажимаем кнопку "Свойства элемента пользовательских настроек". И в окне "Пользовательские настройки элемента" устанавливаете признак "Включать в пользовательские настройки". После этой процедуры параметр сам автоматически будет выведен на форму отчета, работающего в управляемом приложении.
После этого только хочется дополнить, что вывод отборов отчета на управляемой форме настраивается подобным образом:
Отборы СКД на форме УФ
Доброго времени суток. Возникла у меня потребность в динамическом отборе таблицы значений. На не управляемых формах эту функцию использовал очень часто. Но на УФ как то не доводилось. Но понадобилось. И после изучения данного вопроса получился аккуратный шаблон для использования.
Создание динамического отбора для ТЗ
- Создаем реквизит с типом «КомпоновщикНастроекКомпоновкиДанных»
- Создадим для наглядности два реквизита ДатаНачала и ДатаОкончания
- Далее создаем Макет СКД который будит выбирать необходимую таблицу значений.
С одним условием Период ДатаНач и ДатаОкон.
В запросе СКД я выбираю Список документов за период.
Дальше создаем таблицу значений и переходим к формированию формы.
- Выносим реквизиты Периода
- Потом выносим реквизит на форму для формирования отбора Настройки (это наш КомпоновщикНастроекКомпоновкиДанных )->Настройки->Отбор (Объект.Настройки.Настройки.Отбор)
- И ,соответственно, нашу таблицу значений выносим на форму. Также не забываем команду для запуска отбора
- Далее переходим в модуль формы
- При создании на сервере прописываем такой код. Это необходимо для того чтобы в таблицу подтянулись настройки отборов из СКД
- Описываем команду для формирования ТЗ
Сохраняем и проверяем.
Вот что у нас получилось. Спасибо за внимание .
Тестировалась на платформе 1С:Предприятие 8.3 (8.3.18.1741).
Скачать файлы
См. также
Infostart Toolkit
Набор инструментов (расширение) программистов — разработчиков, специалистов 1С для конфигураций на управляемых формах. Продукт хорошо оптимизирован и обладает широким функционалом. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента.
11000 10000 руб.
02.09.2020 87324 433 374
Гибкие отборы через СКД на управляемых формах. Демо-обработка
В данной публикации предлагаю вам рабочий пример использования системы компоновки данных для отборов на управляемых формах.
1 стартмани
07.06.2023 3776 19 quazare 7
Вывод элементов иерархии верхнего уровня на СКД
Как получить родителя первого уровня иерархического справочника с помощью СКД.
1 стартмани
06.06.2023 2723 echo77 6
Новичок новичку: самый простой способ сделать расшифровку в СКД (обычные\управляемые формы)
Рассказываю на примере, как наиболее просто сделать расшифровку в СКД
20.03.2023 4655 user1312100 86
Обработка результатов запроса произвольными вычисляемыми полями. Обзор некоторых новых функций СКД
В данной статье вспомним, как обрабатывать результаты запроса в вычисляемых полях СКД, а также сделаем небольшой обзор на новые функции СКД платформы 8.3.20.
07.02.2023 4070 quazare 7
Приемы работы с СКД: выгрузка данных справочников и документов в линейном виде в табличный документ
Программное использование схемы компоновки данных для выгрузки данных справочников и документов в табличный документ.
1 стартмани
24.01.2023 3939 17 RocKeR_13 1
Выборочная свертка группировок для СКД
Методика разработки отчета на СКД с возможностью свёртки части группировок по заданному программно условию. — свертка по значению поля (неотрицательные — сворачиваются); — свертка подчиненных в иерархии с произвольным количеством уровней.
1 стартмани
16.01.2023 2316 schthaxe 3
Разрабатываем отчет на СКД, содержащий данные из расширения
Ввиду развития механизма расширений в 1С часто приходится сталкиваться с задачей, когда требуется разработать отчет, который должен строиться как по данным конфигурации, так и по данным расширения. И здесь присутствует нюанс, о котором я и хотел бы поведать в этой статье. Расскажу также о способе решения, который я использую.
17.10.2022 4855 al_zzz 10
Хитрости СКД. Часть 4
Столкнулся с тем, что мне приходится писать гору отчетов. Во многих приходится использовать повторяющиеся приемы. Решил написать шпаргалку, которая, надеюсь пригодится не только мне. В этой статье: Работа с 2 схемами в одном отчете, когда данные одной схемы являются исходными для другой. Копирование пользовательских отборов из одной схемы в другую. Корректная модификация формы отчета БСП.