Вход | Регистрация
 

ОФ - почему не отрабатывает отбор строк?

ОФ - почему не отрабатывает отбор строк?
Я
   mikecool
 
12.08.21 - 21:43
Дорабатываю ОФ Диадока, надо в списке отправленных накладывать фильтр по контрагенту
Добавил заполнение самого контрагента в таблицах документов, добавил виды отбора в группе, в группе из списка и аналогичные "не"
код
        ОтборСтрок=    ЭлементФормыТаблица.ОтборСтрок;
        
        Для каждого СтрокаОтбора Из НовыйОсновнойОтбор Цикл
            
            НайденнаяСтрокаОтбора=    ОтборСтрок.Найти(СтрокаОтбора.Имя);
            
            НайденнаяСтрокаОтбора.Использование=    СтрокаОтбора.Использование;
            НайденнаяСтрокаОтбора.ВидСравнения=        СтрокаОтбора.ВидСравнения;
            НайденнаяСтрокаОтбора.Значение=            СтрокаОтбора.Значение;
            НайденнаяСтрокаОтбора.Использование=    СтрокаОтбора.Использование;
            
        КонецЦикла;

не срабатывает отбор, и не пойму почему
все заполняется верно, все записи отбора - заполнены, но не отрабатывает...
варум?
   mikecool
 
1 - 12.08.21 - 21:45
при этом нормально отрабатывает на текстовых полях... ничего не понимаю )
   mikecool
 
2 - 12.08.21 - 22:19
может ли быть проблема в том, что для значения установлен составной тип? при этом само значение = конкретный элемент справочника КОнтрагенты
   Ёпрст
 
3 - 13.08.21 - 01:16
(0) в форме списка чего либо, надо юзать нужнаяформа.<Справочник|Документ>Список.Отбор жешь
   mikecool
 
4 - 16.08.21 - 22:43
(3) дык жешь... на форме лежит ТП, из него берется отбор и устанавливается полю вид сравнения и значение (поле Контрагент(тип составной), В группе, <Нужная группа>)- и никакой реакции
беру тот же отбор, на текстовое поле "Содержит" "абв" - и работает
   mikecool
 
5 - 16.08.21 - 22:44
отдельно проверил - передается именно то ТП, что мне нужно
   mikecool
 
6 - 16.08.21 - 23:27
стандартная кнопка "отбор по значению в текущей колонке" отрабатывает верно, осталось программную установку отбора победить
   mikecool
 
7 - 16.08.21 - 23:28
тааак... на равно отбор срабатывает
что не так с видом отбора "в группе"?
   Ёпрст
 
8 - 17.08.21 - 00:31
(7) передаешь не группу или устанавливаешь значение до типа отбора
   DTX 4th
 
9 - 17.08.21 - 07:39
Так в ОФ же отбор только на равенство..

ОтборСтрок (RowFilter)

Примечание:
Отбор выполняется по условию вхождения значения. Например, если в колонке есть ячейки со значением "Строка 1", "Строка 2", ... "Строка 10", "Строка 11", ... и устанавливается отбор по значению "Строка 1", то в таблицу будут отобраны строки со значениями "Строка 1", "Строка 10", "Строка 11" и т.д.
   mikecool
 
10 - 17.08.21 - 09:11
(8) не, все четенько - сначала вид, потом значение, передаю группу. Натыкался в инете на другой форум, проблема аналогично, не решена (
(9) ты противоречишь сам себе
   ptiz
 
11 - 17.08.21 - 09:46
(0) Покажи скрин отбора в режиме пользователя - что вышло после выполнения этого кода?
   mikecool
 
12 - 17.08.21 - 10:00
(11) https://ibb.co/VwsHFF8 скрин из конфигуратора, ибо в предприятии поднимается форма от Диадок
группа контрагентов выбрана такая, в которую не входят контры с обменом через ЭДО, и после применения такого отбора список документов не изменяется
   Галахад
 
13 - 17.08.21 - 10:02
Может действительно попробовать не группу, а список.
   ptiz
 
14 - 17.08.21 - 10:06
(0) Для таб.частей на работает отбор по группам. В режиме предприятия его вообще нет.
   TormozIT
 
15 - 17.08.21 - 10:35
(9) Ты перепутал УФ и ОФ.
   mikecool
 
16 - 17.08.21 - 10:51
(13) пробовал и в группе из списка - результат одинаков, получается (14), печаль...
недаром контуровцы его не добавили...
   mikecool
 
17 - 17.08.21 - 10:51
+16 вернее - они его добавили, а потом закомментировали )
   Ёпрст
 
18 - 17.08.21 - 10:58
(16) у тебя отбор где ? В табличной части документа ?
   mikecool
 
19 - 17.08.21 - 11:24
(18) таб часть обработки
   Ёпрст
 
20 - 17.08.21 - 14:54
(19) там да, нет групп, есть только на значение и на вхождение в список.
Можешь только подменить разве что группу на список всех элеменов в этой группе и фильтр на список.
   Ёпрст
 
21 - 17.08.21 - 14:54
но, это так себе решение
   Ёпрст
 
22 - 17.08.21 - 14:55
Или заполнять ТЧ своей обработки данными из построителя, и там уже, отбор будет любой
   mikecool
 
23 - 17.08.21 - 15:34
(20) ругалась бы что ли, ТЧ для приличия )))
   mikecool
 
24 - 17.08.21 - 15:35
(22) это вариант, спасибо
   mikecool
 
25 - 17.08.21 - 23:05
эксперимент с построителем тоже неудачный:
        ДанныеТП = ЭлементФормыТаблица.Значение.Выгрузить();
        ИсточникДанных = Новый ОписаниеИсточникаДанных(ДанныеТП);
        Для каждого СтрокаОтбора Из НовыйОсновнойОтбор Цикл
            ИсточникДанных.Колонки[СтрокаОтбора.Имя].Отбор = СтрокаОтбора.Использование;
        КонецЦикла;    
            
        Построитель = Новый ПостроительОтчета;
        Построитель.ИсточникДанных = ИсточникДанных;
        Построитель.ЗаполнитьНастройки();
        Для каждого СтрокаОтбора Из НовыйОсновнойОтбор Цикл
            
            ЭлементОтбора = Построитель.Отбор.Найти(СтрокаОтбора.Имя);
            Если ЭлементОтбора = Неопределено Тогда 
                ЭлементОтбора = Построитель.Отбор.Добавить(СтрокаОтбора.Имя);
            КонецЕсли;
            ЗаполнитьЗначенияСвойств(ЭлементОтбора, СтрокаОтбора);
            
        КонецЦикла;
        
        Построитель.Выполнить();
        
        ЭлементФормыТаблица.Значение.Загрузить(Построитель.Результат.Выгрузить());

отбор работает на "Равно", "Не равно" и т.п. , но с "В группе" и т.п. не работает... возвращает пустую ТЗ
   Ёпрст
 
26 - 18.08.21 - 11:04
(27) изначально, тч обработки как заполняется ?
   mikecool
 
27 - 18.08.21 - 11:05
(26) по данным сервера формируется ТЗ и перебором добавляется построчно в таб часть


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