Такая проблема. Есть документ "Перемещение Товаров"
В нем мы видим все документы, которые созданы в нем.
А можно как то сделать, чтобы отбор был по отправителю и получателю.
То есть, если мы из группы "Х", то мы должны видеть те документы, которые соответствуют нашей группе.
Если мы отправили из группы Х" в группу "У" и наоборот, мы должны эти документы увидеть.
Другие документы из группы "У" мы не видим.
В нем мы видим все документы, которые созданы в нем.
А можно как то сделать, чтобы отбор был по отправителю и получателю.
То есть, если мы из группы "Х", то мы должны видеть те документы, которые соответствуют нашей группе.
Если мы отправили из группы Х" в группу "У" и наоборот, мы должны эти документы увидеть.
Другие документы из группы "У" мы не видим.
По теме из базы знаний
- Перемещение товаров между филиалами в одной информационной базе 1С с применением RLS
- Заполнение остатками с гибкими отборами - перемещение товаров. 1С:Розница
- Справочный адресный склад
- Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?
- Заполнение передачи между организациями остатками. Заполнение списания остатками по организациям. УТ 11.5
Найденные решения
вот так надо, группу условий не добавляй
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Можно и кодом , если задача такая)
ФормаСписка документа ПеремещениеТоваров , процедура ПриСозданииНаСервере()
ФормаСписка документа ПеремещениеТоваров , процедура ПриСозданииНаСервере()
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ФИО");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; // Опционально
ЭлементОтбора.ПравоеЗначение = "Иванов";
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");// и Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;// ПараметрыСеанса.ТекущийПользователь.Подразделение; //если через реквизит иначе через запрос свойства или
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
А я сделал вот так. Но только по отправителю, а как сделать, чтобы и по получателю были там?
(8) Так надо через группу ИЛИ
ГруппаОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаОтборв.ТипГруппы=ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать
(12)
Спасибо большое!
Только еще один вопрос.
Смотрите, есть главное подразделение, которое может смотреть все группы. И есть пользователи из этого подразделения.
Как реализовать, чтобы эти пользователи могли все это видеть?
То есть вот. Как это правильно все записать?
ГруппаОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
ГруппаОтборв.ТипГруппы=ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ПоказатьГруппаОтборв.ТипГруппы=ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = ГруппаОтборв.Элементы.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Спасибо большое!
Только еще один вопрос.
Смотрите, есть главное подразделение, которое может смотреть все группы. И есть пользователи из этого подразделения.
Как реализовать, чтобы эти пользователи могли все это видеть?
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель.Код<>"00-000001" И Строка(ПараметрыСеанса.ТекущийПользователь.Подразделение.Код)<>"00-000001" Тогда
То есть вот. Как это правильно все записать?
(14)
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) И ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель.Код = "00-000001" Тогда
/// видят всё
Иначе
///Не видят ничего
КонецЕсли;
/// видят всё
Иначе
///Не видят ничего
КонецЕсли;
(9)
То есть про получателя будет также, только как это записать правильно?
То есть про получателя будет также, только как это записать правильно?
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");// и Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;// ПараметрыСеанса.ТекущийПользователь.Подразделение; //если через реквизит иначе через запрос свойства или
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
вот так надо, группу условий не добавляй
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОтправитель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеПолучатель");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.равно;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать
(23)
Измените условие , на
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда
/// видят всё
Иначе
///Не видят ничего
КонецЕсли;
Измените условие , на
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда
/// видят всЁ
Иначе
///видят всЕ
КонецЕсли;
(24)
Вот мой код, с учетом Ваших поправок
;
Но все равно выдает ошибку,
{ОП Документ.ПлатежноеПоручение.Форма.ФормаСписка.Форма(15)}: Значение не является значением объектного типа (ЛевоеЗначение)
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда
Вот мой код, с учетом Ваших поправок
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда
//Если ПараметрыСеанса.ТекущийПользователь.ПодразделениеОрганизации.Родитель.Код <> "00-000001" Тогда
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Иначе
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
КонецЕсли
ПоказатьНо все равно выдает ошибку,
{ОП Документ.ПлатежноеПоручение.Форма.ФормаСписка.Форма(15)}: Значение не является значением объектного типа (ЛевоеЗначение)
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
(25) у вас ошибка в коде ...
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда
//Если ПараметрыСеанса.ТекущийПользователь.ПодразделениеОрганизации.Родитель.Код <> "00-000001" Тогда
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Иначе
Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ////ЭТУ СТРОЧКУ НАДО ДОПИСАТЬ
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто;
КонецЕсли
Показать
(33) а лучше так :
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
Иначе
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение; ///ВАШИ Условия
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Показать
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочник.подразделения.Найтипокоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочник.подразделения.Найтипокоду("00-000001") Тогда
/// видят всё
Иначе
///Не видят ничего
КонецЕсли;
(42)
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда
//ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Использование = истина;
Иначе
ЭлементОтбора.Использование = Ложь;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
КонецПроцедуры
Показать
(44)
Нет, отбор не по сотруднику, а по подразделению сотрудника. То есть, если сотрудник из подразделения Х, он видит все документы созданные другими пользователями подразделения Х. и т.д.
И если сотрудник из подразделения УПРАВЛЕНИЯ, то он видит вообще все документы, независимо каким подразделением они были созданы
Нет, отбор не по сотруднику, а по подразделению сотрудника. То есть, если сотрудник из подразделения Х, он видит все документы созданные другими пользователями подразделения Х. и т.д.
И если сотрудник из подразделения УПРАВЛЕНИЯ, то он видит вообще все документы, независимо каким подразделением они были созданы
(45) так вот же,
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда ///Если управления то отбор отключаем ( видны все доки)
ЭлементОтбора.Использование = ложь;
Иначе ///Включаем отбор по подразделению сотрудника
ЭлементОтбора.Использование = истина;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
КонецПроцедуры
Показать
(47)
Вот я из подразделения Х и я не вижу доки, которые создавали другие пользователи из моего подразделения.
НО если я себя переношу в подразделение "управление", то вижу все доки, как надо
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда ///Если управления то отбор отключаем ( видны все доки)
ЭлементОтбора.Использование = ложь;
Иначе ///Включаем отбор по подразделению сотрудника
ЭлементОтбора.Использование = истина;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
КонецПроцедуры
ПоказатьПроцедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда ///Если управления то отбор отключаем ( видны все доки)
ЭлементОтбора.Использование = ложь;
Иначе ///Включаем отбор по подразделению сотрудника
ЭлементОтбора.Использование = истина;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
КонецПроцедуры
Вот я из подразделения Х и я не вижу доки, которые создавали другие пользователи из моего подразделения.
НО если я себя переношу в подразделение "управление", то вижу все доки, как надо
(40)
Теперь все видят все;(
&НаСервере
Процедура ОППриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации");
ЭлементОтбора.Использование = Ложь;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии;
Если ПараметрыСеанса.ТекущийПользователь.Подразделение.Ссылка.ПринадлежитЭлементу(Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001")) ИЛИ ПараметрыСеанса.ТекущийПользователь.Подразделение.Родитель = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("00-000001") Тогда
//ЭлементОтбора = Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
Иначе
ЭлементОтбора.ПравоеЗначение =ПараметрыСеанса.ТекущийПользователь.Подразделение;
Конецесли;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
КонецПроцедуры
ПоказатьТеперь все видят все;(
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот