Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ОтборСтрок на УФ если условие больше или меньше

ОтборСтрок на УФ если условие больше или меньше
Я
   Dmitry_333
 
27.08.20 - 11:12
Всем доброго дня.
Подскажите, пожалуйста, как быть если нужно прописать вид сравнения больше или меньше? Когда отбор по совпадению, все понятно, например    
Отбор = Новый Структура("Заказ", 30);
Элементы.ТабИтоговая.ОтборСтрок = Новый ФиксированнаяСтруктура(Отбор);
Но как сделать отбор строк по больше или меньше?
   Ёпрст
 
1 - 27.08.20 - 11:15
(0) через компоновщик жешь.. и там условие сравнения какое нажо жешь
   FIXXXL
 
2 - 27.08.20 - 11:17
(0)
ТабИтоговая - это ТЗ?
если есть однозначный "ключ" строки, можно в цикле или запросом перебрать ТабИтоговая, подходящие "ключи" сложить в массив и его уже использовать как Отбор
   Dmitry_333
 
3 - 27.08.20 - 11:29
(1) Пробовал. Почему-то очищает всю таб часть.

    МассивИменКолонокДляПодсветки = Новый Массив;
    Для каждого Стр из Элементы.ТабИтоговая.ПодчиненныеЭлементы Цикл
        МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
    КонецЦикла;
    
    ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", ЛОЖЬ);
    
    ЭлементУсловия                = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("ТабИтоговая.Заказ");
    ЭлементУсловия.ПравоеЗначение = 30;
    ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Меньше;   
    ЭлементУсловия.Использование  = Истина; 
    
    Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
        ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
        ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
    КонецЦикла;
   acht
 
4 - 27.08.20 - 11:41
(0) Добавь булеву колонку типа "УдовлетворяетОтбору", настрой по ней свой отбор, значения пересчитывай по необходимости - циклом или при редактировании.
   Ёпрст
 
5 - 27.08.20 - 11:46
(3) эээ.. а каким боком условное оформление к отбору строк ?
Тебе строки нужно отобрать (т.е отбор наложить) или всё же через условное форомление что-то покрасить/скрыть ?
   Dmitry_333
 
6 - 27.08.20 - 11:47
(4) Спасибо. Это хороший вариант.
   Dmitry_333
 
7 - 27.08.20 - 11:48
(5) Если идти через условное оформление, то соответственно скрыть строки не удовлетворяющие условию.
   Dmitry_333
 
8 - 27.08.20 - 11:55
Должно же быть для УФ "типовое" решение с методом ОтборСтрок. Для ОФ же все оч. лаконично:

ЭлементыФормы.тпТовары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.БольшеИлиРавно;
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.Значение = 30;
   acht
 
9 - 27.08.20 - 11:57
(3) Попробуй, кстати, вместо "Видимость" поставить "Отображать"
   Ёпрст
 
10 - 27.08.20 - 11:59
(7) у тебя таблица значений на форме или динамический список ?
   Ёпрст
 
11 - 27.08.20 - 12:00
если тз, то через построитель можно слепить твой отбор
   Dmitry_333
 
12 - 27.08.20 - 12:01
(10) Таб значений
   Dmitry_333
 
13 - 27.08.20 - 12:02
(9) Пробовал, тоже самое.
   youalex
 
14 - 27.08.20 - 13:17
(8) Для ОФ работало же вроде только для ТЧ?
по теме - как вариант, можно сделать колонку Булево (невидимую) , заполнять ее по логике условия, и делать отбор по ней
   Dmitry_333
 
15 - 27.08.20 - 13:18
(14) Да, так и сделал в результате.
   youalex
 
16 - 27.08.20 - 13:43
(15) Но вообще странно, у меня на простейшем примере твой код работает. может у тебя еще есть группы колонок? Ну то есть не все элементы/поля прямо подчинены таблице формы?
   Dmitry_333
 
17 - 27.08.20 - 17:52
(16) Нет, групп нет.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.