Имя: Пароль:
1C
1С v8
Толстые формы. Плавное переключение отбора табличной части. Как?
0 arsik
 
гуру
07.11.18
07:56
Исходные. Форма с закладками, на которой ТЧ.
При переключении закладки, меняется отбор ТЧ. Делаю так.
ЭлементыФормы.ТЧ.ОтборСтрок.Сбросить();
ЭлементыФормы.ТЧ.ОтборСтрок.Заказчик.Установить(ТекущийЗаказчик);
ЭлементыФормы.ТЧ.ОтборСтрок.Закрыт.Установить(флЗакрытия);

Но при этом возникает мелькание ТЧ. Сначала фильтр снимается, показываются все строки, потом фильтр устанавливается, строки фильтруются.

Есть какой то вариант. что бы этих мельканий не было?
1 VS-1976
 
07.11.18
08:15
(0) Попробуй работать с ОтборСтрок напрямую, а не с ЭлементыФормы.ТЧ... По идее все эти действия должны происходить после события... ( отбор ) и сразу же с полностью настроенным фильтром.

PS: В крайнем случае, если не накладываются другие фильтры, то не делай Сбросить()
2 arsik
 
гуру
07.11.18
08:35
(1) Что значит "напрямую"? По другому никак - это ТЧ обработки.
>PS: В крайнем случае, если не накладываются другие фильтры, то не делай Сбросить()
Делаются.
3 VS-1976
 
07.11.18
08:39
(2) Напрямую без ЭлементыФормы, прям к объекту

пОтбор = ТЧ.ОтборСтрок;
пОтбор.Сбросить();
пОтбор.Заказчик.Установить(ТекущийЗаказчик);
пОтбор.Закрыт.Установить(ТекущийЗаказчик);

Так же попробуй без Установить, установить поля вручную
4 catena
 
07.11.18
08:42
У меня ничего не мелькает, но я не сбрасываю отбор. Много элмементов в тч?
5 arsik
 
гуру
07.11.18
08:49
(3) У ТЧ нет этого свойства.
(4) Немного. до 100. У меня без сброса нельзя, т.к. пользователь может свои отборы какие то наложить.
6 arsik
 
гуру
07.11.18
08:54
Сделал без сброса. перебором элементов отбора, вроде лаги пропали.
Для Каждого ЭлементОтбора из Отбор Цикл
    Если ЭлементОтбора = Отбор.Заказчик Тогда
        ЭлементОтбора.Значение = ТекущийЗаказчик;
        ЭлементОтбора.Использование = Истина;
    ИначеЕсли ЭлементОтбора = Отбор.Закрыт Тогда
        ЭлементОтбора.Значение = флЗакрытия;
        ЭлементОтбора.Использование = Истина;
    иначе
        ЭлементОтбора.Использование = Ложь;
    КонецЕсли;
КонецЦикла;