1. Evgen13 22.05.19 14:37 Сейчас в теме

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

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

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


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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

не помогло(
54. Evgen13 27.05.19 15:53 Сейчас в теме
55. user5300 35 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 Сейчас в теме
Ну тогда под каждый список необходимо настраивать в зависимости от условий
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Бизнес-аналитик 1С
Москва
зарплата от 90 000 руб. до 150 000 руб.
Полный день