Автофильтры Excel в 1с8
В Excel есть удобный для пользователя механизм автофильтров.
Такой механизм можно эмулировать и в 1С, они будут удобны и понятны для пользователя.
Рассмотрим пример обработки по установке цен для УТ 10.3, которая использует механизм автофильтров.
Первоначальный отбор
Можно загрузить в таблицу все данные, но лучше произвести предварительный отбор. Например, в нашем случае используется отбор товара (обувь) по номеру сезона и/или по документу:
После нажатия кнопки «Заполнить» в таблицу попадают только те товары, которые соответствуют первоначальному отбору.
Работа с автофильтром
Пользователь может фильтровать таблицу по любой колонке таблицы:
Для фильтрации пользователь должен нажать кнопку «Фильтр». При этом у него отображается отсортированный список уникальных значений по текущей колонке, спозиционированный на текущем значении колонки (пример по полю Колодка):
Можно выбрать все значения или отключить все. Можно выбрать несколько значений, установив галочки. По нажатию кнопки «Отобрать» на таблицу накладывается фильтр, согласно выбранным значениям.
Колонки, на которые наложен автофильтр, выделены визуально голубым цветом:
Фильтр по конкретной колонке можно снять кнопкой .
Все фильтры можно снять кнопкой .
Кнопка «Фиксировать» фиксирует по колонке «Номенклатура» значения, которые на данный момент отобраны в таблице. Этот прием использовался для работы с нулевыми ценами. Сначала пользователь отбирает нулевые цены, накладывая отбор на колонку «Цена». Но, если пользователь поменяет цену, строка сразу же исчезнет из отбора. Поэтому нужно зафиксировать товары, с которыми ведется работа.
Реализация автофильтров
Для хранения таблицы используется табличная часть обработки. Она позволяет накладывать отборы. Используются отборы с видом сравнения «в списке», где список соответствует списку отобранных элементов. Подробности реализации можно посмотреть в приложенном коде обработки.