Имя: Пароль:
1C
1С v8
Сложный отбор в форме списка
0 rooffy
 
27.11.20
15:18
Добрый день.
Есть у меня табличная часть с 2 полями - роль и организация
И нужно сделать чтобы выводилось их пересечение, то есть
роль - Менеджер, Организация - Орг1
роль - Руководитель, Организация - Орг2
выводится для всех менеджеров из Орг 1 и руководителей из Орг2

А если заполнено только одно поле, например
роль - Менеджер, Организация -
роль - , Организация - Орг2
то выводится для всех менеджеров из любой организации и любых сотрудников из Орг2

Проблема в том, что если не указано какое-то из полей, то выводится для тех у кого это поле не заполнено
то есть например для менеджеров с пустой организацией

Нужно как-то сделать проверку на заполненность одного из полей и если оно не заполнено, то проверять только другое поле.
Но как это сделать не понимаю, плюч ко всему есть еще 2 отбора по другим ТЧ
1 Жан Пердежон
 
27.11.20
15:22
а что сложного то?
отборы в группу "ИЛИ" запихнуть или флажок "Использование" снять?
2 rooffy
 
27.11.20
15:27
(1) Если "ИЛИ" то в случае когда должно быть менеджер из Орг1 будет или менеджер или Орг1 и получится для всех менеджеров и для всех сотрудников Орг1
а в этом случае это неправильно
А если снять использование как я понимаю условие не будет учитываться в принципе
а мне надо это использование снимать только если одно из полей не заполнено, а я не понимаю как это отследить в форме списка
3 Cthulhu
 
27.11.20
17:44
программно. находите ссылки на объекты, подходящие под ваше условие. устанавливаете отбор по ссылке.
4 Cthulhu
 
27.11.20
17:47
//СписокЗнач = ваш список ссылок для отбора, вычисляйте как вам надо
Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
Отбор.Ссылка.Значение = СписокЗнач;        
Отбор.Ссылка.использование = Истина;
// как-то так ...
5 youalex
 
27.11.20
18:39
В форме списка ДС или типа СправочникСписок?