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

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

Арт.: 2486021

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

6088 руб.

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

4392 руб.

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
Для отправки сообщения требуется регистрация/авторизация

См. также

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

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

85400 руб.

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

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

36600 руб.

Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Расширение «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предпри...

6100 руб.

Номенклатура

Представленный функционал позволяет мгновенно получить дополнительную информацию по выбранному на экране элементу номенклатуры: Объем остатков по складам, Объем ожидаемых поставок с предполагаемыми датами отгрузки, Установленные цены, Движе...

6099 руб.

Вывод сумм заказов покупателей на форму списка в 1С:УНФ 3.0 версия для 1С:Фреш

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

14640 руб.

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

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

5084 руб.

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

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

5124 руб.

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

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

6100 руб.

Наверх
Наверх
INFOSTART
Team Event
Подробнее Стрелка