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

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

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

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

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