Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 дек 2024, 08:33

Фильтры в таблицах

Автор 100kan, 02 фев 2024, 22:52

0 Пользователей и 1 гость просматривают эту тему.

100kan

Привет!
Проконсультируйте, пожалуйста, малограмотного юзера)
Можно ли в каком-нибудь объекте конфигурации в табличной части организовать нечто вроде фильтров по колонкам, как в экселе?
Нужна таблица с разными типами и большим суммарным объемом данных. Думка такая, что она просто должна обновляться разными пользователями последовательно, другие могут только справочно просматривать, без привязки к каким-то регистрам.

alexandr_ll

100kan, А чем не нравится првязка к регистрам сведений? Можно сохранять настройки в каких-нибудь файлах.

fruitella

100kan, Смотря где.
Если это динамический список, то можно добавить реквизит и по нему фильтровать. Если несколько реквизитов, добавить группу с выпадающим списком к примеру, в них включить нужные реквизиты и по ним настроить фильтр, предварительно перенастроив произвольный запрос динамического списка.
Если это какая-то обработка с определенной формой, то тоже самое, только изменив запрос при получении нужных данных, основываясь на тех реквизитах, которые выбирал пользователь. Делается это через составной запрос, внутри запроса пишешь условия.

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
             //Поля для выборки
             ИЗ
             //НаименованиеТвоейТаблицы
             ГДЕ
               КакиетоРеквизиты";

Если ЗначениеЗаполнено(Транспорт) Тогда //Если пользователь выбрал транспорт
  Запрос.Текст = Запрос.Текст + "И НаименованиеТвоейТаблицы.Транспорт В (&Транспорт)";
КонецЕсли;

Запрос.УстановитьПараметр("Транспорт", Транспорт);

Либо второй вариант, используешь в запросе параметр, например в условии ГДЕ фильтровать по Транспорту.
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
             //Поля для выборки
             ИЗ
             //НаименованиеТвоейТаблицы
             ГДЕ
                &Транспорт //<-ТвойПараметр
                И ЕщеКакиетоРеквизиты";

Если ЗначениеЗаполнено(Транспорт) Тогда //Если пользователь выбрал транспорт
   Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Транспорт", "НаименованиеТвоейТаблицы.Транспорт В (&Транспорт)"); //<- Находишь в запросе свой параметр, меняешь его по корректности синтаксиса
   Запрос.УстановитьПараметр("Транспорт", Транспорт);
Иначе //Если пользователь не выбрал транспорт
   Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Транспорт", ""); //<- Удаляешь этот параметр из запроса, заменив его на пустую строку
КонецЕсли;

И так можно по любому реквизиту настроить фильтрацию.

Теги:

Похожие темы (3)

Рейтинг@Mail.ru

Поиск