Удобные фильтры: динамические кнопки-закладки для списков в 1С

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

Арт.: 2486021

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
Лицензии

5988 руб.

Техподдержка и обновления

4320 руб.

3000 руб.

Какая проблема решается?

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

Решение позволяет:

  • Администратору в специальном справочнике создать любое количество фильтров в виде запросов.
  • Пользователю в один клик выбрать, какие из доступных фильтров он хочет видеть в виде кнопок над списком.
  • Динамически отображать на каждой кнопке актуальное количество документов по данному фильтру в формате X/Y, где Y — общее количество по фильтру, а X — количество с учетом всех текущих ручных отборов пользователя.

Представленное расширение "Удобные фильтры" успешно решает задачу быстрой и наглядной фильтрации, экономя время пользователей. Несмотря на то что разработка велась для УТ, архитектура позволяет адаптировать его и для других конфигураций. Требуется лишь добавить справочник Удобные фильтры в нужные подсистемы для отображения в интерфейсе

 


Примерный вид панели с кнопками

Техническая реализация

1. Хранение метаданных и настроек

Справочник "Удобные фильтры" содержит наименование кнопки, текст запроса (который возвращает отбор по ссылкам), цвет кнопки и порядок следования (фиксированный администратором)
Регистр сведений "Привязки фильтров" хранит связь Пользователь – Фильтр, определяя, какие именно кнопки видит конкретный пользователь.
Регистр сведений "Настройки пользователей" хранит текущие глобальные настройки для каждого пользователя: Расположение кнопки настроек, компактное/обычное расположение кнопок фильтров(отборов), необходимость и способ расчета числовых показателей на кнопках.

2. Механизм применения фильтра

Ядро системы — преобразование текста запроса из справочника и его интеграция в динамический список формы. При нажатии на кнопку происходит следующее:
Из справочника выбирается текст запроса фильтра.
Текст запроса динамического списка формы модифицируется: его условие отбора заменяется или дополняется условием из выбранного фильтра.
Список перезагружается с новым условием.

3. Динамический подсчет элементов на кнопках (X/Y)

Самая интересная с технической точки зрения задача. Алгоритм для каждой кнопки:
Y (Всего по фильтру): выполняется исходный запрос фильтра, но на выходе подается КОЛИЧЕСТВО(*)
X (С учетом отборов): берется текст запроса динамического списка, его основная часть подменяется на КОЛИЧЕСТВО(*) и условие отбора дополняется условием из фильтра.

Технические требования

Разработка выполнена на платформе 1С:Предприятие 8.3.17 и выше. Протетсировано решение на типовой кнфигурации:
  •  
  • check 1С:Управление торговлей, 11.5.14.69, 11.5.8.410

 

  • Исходный код открыт.

  • В перспективе можно доработать:

    • Кэширование результатов подсчета для снижения нагрузки на СУБД.
    • Изменение пользователем порядка кнопок.
Картинка.png

 

Преодоление основных трудностей

1. Проблема: Нет надежного способа отследить изменение данных в списке, чтобы вовремя обновить счетчики на кнопках. Событие ПриПолученииДанныхНаСервере не имеет контекста формы.

Решение: Было реализовано хранение последнего времени получения данных в хранилище общих настроек.

  • В хранилище настроек пользователя сохраняется время последнего получения данных динамическим списком.
  • При получении данных динамическим списком это время обновляется.
  • Через подключенную обработку ожидания периодически проверяется это время.
  • Если время изменилось, всем открытым формам передается оповещение, которое инициирует пересчет всех счетчиков на их кнопках.

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

Решение: Была реализована возможность фонового расчета показателей или их отключение в настройках пользователя. При получении оповещения форма запускает фоновый расчет показателей и при этом продолжает откликаться на действия пользователя. Фоновый расчет изображается вращающимся "колёсиком" на кнопке настройки фильтров:

3. Проблема: Минимизация кода для подключения механизма к любой новой форме.

Решение: Подключение сведено к трем шагам:

  1. Импортировать нужную форму списка в расширение и скопировать в модуль формы универсальный клиентский код.

  2. Подключить два обработчика событий формы: 

    • ПриСозданииНаСервере

    • ОбработкаОповещения 

  3. Подключить один обработчик события

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

После этого над списком появляется кнопка настройки фильтров, с помощью которой пользователь может выбрать отображаемые кнопки из списка заданных администратором:

 

Сами фильтры задаются в справочнике Удобные фильтры администратором:

Это делает решение максимально универсальным и простым во внедрении.

 

Техническая поддержка

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

1

Создать обращение (тикет)

Создать тикет

2

Заполнить данные

Контакты, номер заказа, подробное описание вопроса
Напишите порядок ваших действий с программой, приложите видео/скриншоты/отчеты об ошибке
Точную конфигурацию 1С, версии платформы, инструмента, СУБД

3

Дождаться ответа

Время ответа до 24 часов в рабочее время

Внимание! Техническая поддержка предоставляется исключительно в рамках переписки по обращению. В некоторых случаях для диагностики ошибок и/или вопросов, связанных с особенностями использования продукта в информационных базах покупателя, может потребоваться дополнительная платная диагностика с организацией удаленного доступа к информационной базе. Стоимость уточняется индивидуально.

Остались вопросы?

Для получения дополнительной информации и помощи в настройке модуля под нужды вашего бизнеса — оставьте заявку

Остались вопросы

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.14.69, 11.5.8.410
Для отправки сообщения требуется регистрация/авторизация

См. также

Infostart Dashboard: Монитор показателей, виджеты и дашборды в 1С 8.3

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы ...

28800 руб.

Консолидация 1С:ЗУП. Создание и настройка обмена

Расширение для создания и настройки обмена с консолидированной базой ЗУП. Код разработки под определенные требования проекта.

84000 руб.

Универсальный редактор картинок 1С, хранимых в базе, с возможностью рисования

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обраб...

6000 руб.

Редактор графов в 1С

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

5040 руб.

Дизайнер форм 1С

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в...

36000 руб.

Автоматическая загрузка документов в 1С из почты

Мегадок служит для регулярной проверки почты из 1С и загрузки файлов от контрагентов с созданием специфического журнала входящих документов (из файлов), на основании которых можно делать документы в 1С. Загрузка в 1С заказов, счетов, заяво...

45600 руб.

Матрица производства в 1С:УНФ (управление заказами, монитор производства, канбан)

Расширение для 1С:УНФ 3.0 - меняет интерфейс главного журнала производства и заказов на производство.

60000 руб.

Формирование структуры папок файлов по рабочим группам

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

5000 руб.