Дополнительные отборы - инструмент для упрощения и расширения возможностей классических отборов в отчётах и формах списков, реализованный в виде расширения для 1С. Этот инструмент стал логичным продолжением более раннего решения, которое называется Подобно в списке.
Отборы в 1С богаты различными видами сравнения. Одними из таких являются виды "В списке" и "Соответствует шаблону". "В списке" позволяет отбирать сразу несколько значений по одному реквизиту, не дублируя один и тот же отбор несколько раз подряд и не требуя лишних операций со стороны пользователя. В свою очередь, "Соответствует шаблону" (он же "Подобно") - вид сравнения, который позволяет использовать в отборах доступные в 1С регулярные выражения. Но по умолчанию одновременное использование этих 2 видов сравнений, как это реализовано с видом "В группе из списка", увы невозможно. Именно этот пробел призвано восполнить расширение "Дополнительные отборы" в отчётах и формах списков. В предлагаемом файле расширения это реализовано на примере общей формы отчётов из БСП и типового справочника Валюты. Программисты также могут масштабировать это решение и на другие СКД-отчёты и формы списка в своих конфигурациях.
В Дополнительных отборах также добавлен механизм отборов по списку диапазонов значений, что упрощает и ускоряет взаимодействие пользователя с отборами.
Преимущества:
- Простой и минималистичный интерфейс.
- Использование типового механизма настроек списков и СКД-отчётов для создания отборов.
- Использование текстового и табличного документов для взаимодействия с буфером обмена.
- Все отборы сразу выводятся на панель быстрого доступа, что облегчает работу с ними рядовым пользователям.
Особенности работы:
- В режиме "Маски" поддерживаются реквизиты только с типом Строка, а в режиме "Диапазоны" - Строка, Число и Дата.
- Отбор формируется используя типовые механизмы Платформы. В режиме "Маски" создаётся группа Или, в которую помещаются несколько отборов к одному и тому же реквизиту с видом сравнения Соответствует шаблону. Режим "Диапазоны" строится на сочетании видов сравнения "Больше или равно" и "Меньше или равно", которые объединены в группу И.
- В режиме "Маски" значения берутся построчно. В режиме "Диапазоны" значения От и До распределены между 2 столбцами таблицы, а каждая пара значений берётся тоже построчно. При этом важно, чтобы пустых строк между заполненными строками не было.
Пример использования режима "Маски":
- Открываем отчёт, который построен с использованием общей формы отчётов конфигурации. Например, Универсальный отчёт и рассмотрим там справочник Банковские счета (данные взяты из демонстрационной конфигурации).
- Переходим в подменю Ещё на командной панели и нажимаем кнопку "Дополнительные отборы":
-
Открылось основное окно формы с активным переключателем "Маски", где далее можно будет ввести список шаблонов (масок):
- Введём поле, по которому будем совершать отбор. В нашем примере попытаемся выбрать Банковский счет.Номер счета. Вводим "Банковский счет" и видим, что больше вариантов нет, а само поле не позволяет по себе фильтровать, т.к. это ссылка:
- Воспользуемся кнопкой получения вложенных полей
и продолжим ввод. Как видим, недостающее поле появилось, а область списка значений стала доступна для ввода:
- Введём несколько примеров в Список значений:
- %999999999 - заканчиваются на "999999999" (девять девяток);
- %4444% - содержат "4444" (четыре четвёрки) в любой части текста;
- 123% - начинаются на "123";
- ____ - состоит из любых 4 символов, т.е. любое значение с длиной строки равной 4;
- ___ - состоит из любых 3 символов, т.е. любое значение с длиной строки равной 3;
- __ - состоит из любых 2 символов, т.е. любое значение с длиной строки равной 2.
- Нажмём кнопку "Применить" и посмотрим, что вышло. Как видим, на панели быстрого доступа отчёта появился переключатель с описанием нашего отбора и мы можем в любой момент этот отбор отключить:
- Сформируем отчёт и посмотрим на результат. В получившемся отчёте мы можем увидеть счета соответствующие каждой из нашей масок (шаблонов):
- Готово. Что-то имеет длину от 2 до 4 символов, что-то начинается на 123, что-то содержит четыре четвёрки, а что-то заканчивается на девять девяток.
- Теперь можем обратиться к настройкам отчёта и посмотреть каким образом всё это было реализовано (важно учитывать, что на формах списков аналогичный просмотр почему-то недоступен). Внутри в настройках отборов нас ждёт вполне обычная группа Или с несколькими отборами к одному и тому же полю Банковский счет.Номер счета и видом сравнения Соответствует шаблону в каждом из них:
Пример использования режима "Диапазоны":
- Открываем отчёт, который построен с использованием общей формы отчётов конфигурации. Например, Универсальный отчёт и рассмотрим там справочник Демо:Номенклатура (данные взяты из демонстрационной конфигурации).
- Переходим в подменю Ещё на командной панели и нажимаем кнопку "Дополнительные отборы":
-
Открылось основное окно уже известной нам формы, где далее можно будет ввести список диапазонов значений:
- Введём поле, по которому будем совершать отбор. В нашем примере возьмём поле Код и переведём переключатель в положение "Диапазоны" (если поле имеет тип Число или Дата переход в режим диапазонов произойдёт автоматически, т.к. отбор по маскам в этих типах недоступен):
- Введём несколько примеров в Список значений:
- Нажмём кнопку "Применить" и посмотрим, что вышло. Как видим, на панели быстрого доступа отчёта появился переключатель с описанием нашего отбора и мы можем в любой момент этот отбор отключить:
- Сформируем отчёт и посмотрим на результат. В получившемся отчёте мы можем увидеть номенклатуры, коды которых соответствуют определённым диапазонам значений:
- Готово. Для простых кодов получили значения от 13 до 15, для префикса "00" - от 14 до 20 и от 31 до 35, а для префикса "ДМ" - от 41 до 43.
- Теперь можем обратиться к настройкам отчёта и посмотреть каким образом всё это было реализовано (важно учитывать, что на формах списков аналогичный просмотр почему-то недоступен). Внутри в настройках отборов нас ждёт вполне обычная группа Или, внутри которой ещё несколько групп И с парами отборов с видами сравнений "Больше или равно" и "Меньше или равно" к одному и тому же полю Код:
Спасибо за внимание! Надеюсь этот инструмент будет Вам полезен😊.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.3.276
Вступайте в нашу телеграмм-группу Инфостарт