Отбор по отправителю и получателю

1. Evgen13 22.05.19 14:37 Сейчас в теме
Такая проблема. Есть документ "Перемещение Товаров"
В нем мы видим все документы, которые созданы в нем.
А можно как то сделать, чтобы отбор был по отправителю и получателю.
То есть, если мы из группы "Х", то мы должны видеть те документы, которые соответствуют нашей группе.
Если мы отправили из группы Х" в группу "У" и наоборот, мы должны эти документы увидеть.
Другие документы из группы "У" мы не видим.
По теме из базы знаний
Найденные решения
13. user5300 1007 22.05.19 15:56 Сейчас в теме
вот так надо, группу условий не добавляй
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать
Остальные ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. user5300 1007 22.05.19 14:50 Сейчас в теме
(1)Если Упр Приложение ( Бухгалтерия 3 например), там кнопка есть:
"Еще" - "Настроить список" - Отбор по ответственному
4. Evgen13 22.05.19 14:53 Сейчас в теме
(3)
8,3 бухгалтерия КОРП, редакция 3,0. Нет, Вы не поняли.
Нужно закодить такой отбор, чтобы люди из своего подразделения, видели только свои документы, которые отправляли кому то и получали от кого то
5. user5300 1007 22.05.19 14:56 Сейчас в теме
(4)зачем кодить, вы один раз настройте и сохраните в пользовательских настройках
6. Evgen13 22.05.19 14:59 Сейчас в теме
(5)
Это к каждому пользователю ходить и сохранять? Нет, так не пойдет. Нужно, чтобы это работало системно
7. user5300 1007 22.05.19 14:59 Сейчас в теме
(4) Можно и кодом , если задача такая)

ФормаСписка документа ПеремещениеТоваров , процедура ПриСозданииНаСервере()
	 ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	 ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ФИО");
	 ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; 
	 ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; // Опционально
     ЭлементОтбора.ПравоеЗначение = "Иванов";
2. user5300 1007 22.05.19 14:48 Сейчас в теме
8. Evgen13 22.05.19 15:11 Сейчас в теме
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");// и Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;// ПараметрыСеанса.ТекущийПользователь.Подразделение; //если через реквизит иначе через запрос свойства или
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;


А я сделал вот так. Но только по отправителю, а как сделать, чтобы и по получателю были там?
12. tusv 211 22.05.19 15:51 Сейчас в теме
(8) Так надо через группу ИЛИ
ГруппаОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаОтборв.ТипГруппы=ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать
14. Evgen13 22.05.19 15:58 Сейчас в теме
(12)
ГруппаОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаОтборв.ТипГруппы=ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать


Спасибо большое!
Только еще один вопрос.
Смотрите, есть главное подразделение, которое может смотреть все группы. И есть пользователи из этого подразделения.
Как реализовать, чтобы эти пользователи могли все это видеть?

Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель.Код<>"00-000001" И Строка(ПараметрыСеанса.ТекущийПользователь.Подразделение.Код)<>"00-000001" Тогда

То есть вот. Как это правильно все записать?
15. tusv 211 22.05.19 16:02 Сейчас в теме
(14)Очевидно же. Если условие не выполняется по главному подразделению, то пишем отбор, выполняется, отбор не устанавливаем
16. user5300 1007 22.05.19 16:03 Сейчас в теме
(14)
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) И ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель.Код = "00-000001" Тогда
/// видят всё
Иначе
///Не видят ничего
КонецЕсли;
17. Evgen13 22.05.19 16:10 Сейчас в теме
(16)

По синтаксису ругается, когда так пишу...
Подскажите, как правильно
18. user5300 1007 22.05.19 16:29 Сейчас в теме
20. user5300 1007 22.05.19 16:31 Сейчас в теме
(17) наверное на Справочник.Подразделения ругается, замени на Справочник.Пользователи
Или покажи ошибку
9. user5300 1007 22.05.19 15:12 Сейчас в теме
10. Evgen13 22.05.19 15:22 Сейчас в теме
(9)
То есть про получателя будет также, только как это записать правильно?
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");// и Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;// ПараметрыСеанса.ТекущийПользователь.Подразделение; //если через реквизит иначе через запрос свойства или
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
11. user5300 1007 22.05.19 15:24 Сейчас в теме
(10)Да так же , при создании на сервере засунь оба отбора и по идее должно работать
13. user5300 1007 22.05.19 15:56 Сейчас в теме
вот так надо, группу условий не добавляй
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать
23. Evgen13 27.05.19 07:59 Сейчас в теме
(13)
еще вопрос, смотрите, есть платежные поручения, в них делаю такой же отбор в формесписка, но работает, только для пользователей главного подразделения. Остальные подразделения не видят документы. Помогите, пожалуйста, не пойму, что делаю не так
24. user5300 1007 27.05.19 08:34 Сейчас в теме
(23)
 Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда 
/// видят всё 
Иначе 
///Не видят ничего 
КонецЕсли;


Измените условие , на
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда 
/// видят всЁ 
Иначе 
///видят всЕ
КонецЕсли;
25. Evgen13 27.05.19 08:59 Сейчас в теме
(24)
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда


Вот мой код, с учетом Ваших поправок

	Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда 
		//Если ПараметрыСеанса.ТекущийПользователь.ПодразделениеОрганизации.Родитель.Код <> "00-000001"  Тогда 	
		
			ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;	
	
Иначе	
	    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
		
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
КонецЕсли
Показать
;

Но все равно выдает ошибку,
{ОП Документ.ПлатежноеПоручение.Форма.ФормаСписка.Форма(15)}: Значение не является значением объектного типа (ЛевоеЗначение)
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
27. user5300 1007 27.05.19 10:12 Сейчас в теме
(25)
Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации")

У вас точно есть такое поле ? И так ли оно называется ?
проверьте в запросе
34. user5300 1007 27.05.19 10:31 Сейчас в теме
(25) у вас ошибка в коде ...
  Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда 
        //Если ПараметрыСеанса.ТекущийПользователь.ПодразделениеОрганизации.Родитель.Код <> "00-000001"  Тогда     
        
            ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;    
    
Иначе    
Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ////ЭТУ СТРОЧКУ НАДО ДОПИСАТЬ
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
        
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
КонецЕсли
Показать
36. Evgen13 27.05.19 10:37 Сейчас в теме
(34)
Вот, что пишет, тоже самое..:(


{ОП Документ.ПлатежноеПоручение.Форма.ФормаСписка.Форма(14)}: Значение не является значением объектного типа (ЛевоеЗначение)
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
37. user5300 1007 27.05.19 10:38 Сейчас в теме
(36) ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); Вот так допишите
38. user5300 1007 27.05.19 10:38 Сейчас в теме
(36)ЭлементОтбора не дописал
39. Evgen13 27.05.19 10:49 Сейчас в теме
(38)
для пользователей из головной группы работает, т.е. видны документы все.
А для пользователей других групп ничего нет(
40. user5300 1007 27.05.19 10:50 Сейчас в теме
(39) убери отбор для других пользователей тогда

ЭлементОтбора.Использование = Ложь;
26. Evgen13 27.05.19 10:04 Сейчас в теме
(24)
и еще у Вас 2 одинаковых кода..
28. user5300 1007 27.05.19 10:14 Сейчас в теме
(26)
Прикрепленные файлы:
29. Evgen13 27.05.19 10:16 Сейчас в теме
30. user5300 1007 27.05.19 10:18 Сейчас в теме
(28) можно еще параметром в запросе прописать и при открытии указать параметры
31. Evgen13 27.05.19 10:23 Сейчас в теме
(24)
Прикрепленные файлы:
32. user5300 1007 27.05.19 10:24 Сейчас в теме
33. Evgen13 27.05.19 10:26 Сейчас в теме
(32)
Прикрепленные файлы:
35. user5300 1007 27.05.19 10:33 Сейчас в теме
(33) а лучше так :
 ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда 

ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
Иначе 
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение; ///ВАШИ Условия
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; 

       
Показать
19. user5300 1007 22.05.19 16:30 Сейчас в теме
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда 
/// видят всё 
Иначе 
///Не видят ничего 
КонецЕсли;
21. Evgen13 22.05.19 21:41 Сейчас в теме
(19)
Да, спасибо большое. Все работает , как надо.
Другой небольшой вопрос возник, теперь также нужно реализовать такой же отбор в Журнале документов, деньги. На приход и расход.
Пишем же ту же самую процедуру?
22. user5300 1007 23.05.19 07:51 Сейчас в теме
42. Evgen13 27.05.19 13:17 Сейчас в теме
43. user5300 1007 27.05.19 13:26 Сейчас в теме
(42)
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
 ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда 
//ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
ЭлементОтбора.Использование = истина;
Иначе 
ЭлементОтбора.Использование = Ложь;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; 
КонецПроцедуры
Показать
44. user5300 1007 27.05.19 13:28 Сейчас в теме
(42) Вообще какой именно отбор вы хотите установить ?
Подразделение документа = подразделения сотрудника? Может у сотрудника нет документов, поэтому не выполняется отбор?
45. Evgen13 27.05.19 13:30 Сейчас в теме
(44)
Нет, отбор не по сотруднику, а по подразделению сотрудника. То есть, если сотрудник из подразделения Х, он видит все документы созданные другими пользователями подразделения Х. и т.д.
И если сотрудник из подразделения УПРАВЛЕНИЯ, то он видит вообще все документы, независимо каким подразделением они были созданы
47. user5300 1007 27.05.19 14:07 Сейчас в теме
(45) так вот же,
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
 ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда ///Если управления то отбор отключаем ( видны все доки)
ЭлементОтбора.Использование = ложь;
Иначе ///Включаем отбор по подразделению сотрудника
ЭлементОтбора.Использование = истина;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; 
КонецПроцедуры
Показать
48. Evgen13 27.05.19 14:18 Сейчас в теме
(47)
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда ///Если управления то отбор отключаем ( видны все доки)
ЭлементОтбора.Использование = ложь;
Иначе ///Включаем отбор по подразделению сотрудника
ЭлементОтбора.Использование = истина;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
КонецПроцедуры
Показать

Вот я из подразделения Х и я не вижу доки, которые создавали другие пользователи из моего подразделения.
НО если я себя переношу в подразделение "управление", то вижу все доки, как надо
49. user5300 1007 27.05.19 14:25 Сейчас в теме
(48) посмотри совпадают ли подразделения через отладчик либо через сообщить()
50. Evgen13 27.05.19 14:26 Сейчас в теме
(49)
Смотрел, все нормально.
В других доках делал такой же отбор, все нормально работает, а тут никак(
51. user5300 1007 27.05.19 14:30 Сейчас в теме
(50)там может еще стоять пользовательский отбор, перед добавлением отбора удали старые :
Для каждого ЭлементОтбора Из Список.Отбор.Элементы Цикл
Список.Отбор.Элементы.Удалить(ЭлементОтбора )
КонецЦикла;
52. Evgen13 27.05.19 14:37 Сейчас в теме
(51)
Для каждого ЭлементОтбора Из Список.Отбор.Элементы Цикл
Список.Отбор.Элементы.Удалить(ЭлементОтбора )
КонецЦикла;

не помогло(
54. Evgen13 27.05.19 15:53 Сейчас в теме
55. user5300 1007 27.05.19 16:02 Сейчас в теме
(54) тут уже надо самому смотреть, по идее все должно работать.
Через отладчик проверь что там не формирует
46. Evgen13 27.05.19 14:05 Сейчас в теме
(44)
Или такое нельзя сделать?
41. Evgen13 27.05.19 11:04 Сейчас в теме
(40)
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
 ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Ложь;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда 
//ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
Иначе 
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; 
КонецПроцедуры
Показать


Теперь все видят все;(
53. anitakh 27.05.19 15:19 Сейчас в теме
А что мешает ограничить через роли ?
Или обязательно ломать все списки документов ?
56. Evgen13 27.05.19 16:42 Сейчас в теме
(53)
Обязательно через отбор(
57. anitakh 27.05.19 19:06 Сейчас в теме
Ну тогда под каждый список необходимо настраивать в зависимости от условий
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот