Как запретить редактирование верхнего элемента?

1. arsen_botashev 18.03.19 15:57 Сейчас в теме +0.5 $m
Здравствуйте, есть иерархический справочник:
Группа1
     Группа1.1
         ТутЭлементы
        Группа1.1.1
             ТутЭлементы

Для каждой из этих групп может задаваться Ответственный(Реквизит)
Вопрос: как запретить редактирование той группы, в которой указан этот человек, допустим в группе1 указан иванов. Он может менять Элементы Группы1, Группы1.1 И тд, но не может саму менять группу1?
Вопрос 2: Если В Группе1 указан иванов, он может ниже по иерархии добавлять элементы, во всех группах.
А мне надо чтоб, если человек указан в группе1.1, он мог добавлять элементы ниже по иерархии, но выше, допустим в группе1, он не может добавлять элементы.
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. arsen_botashev 18.03.19 16:06 Сейчас в теме
Вопрос 2 решен, помогите с вопросом 1
+
3. soft_wind 18.03.19 16:57 Сейчас в теме
например с помощью РЛС
ГДЕ Родитель.Ответственный = &ТекущийПользователь
или Родитель.Родитель.Ответственный = &ТекущийПользователь

или при открытии формы элемента
строите запрос
в котором проверяете головную группу, в ней ответственного с текущим пользователем
если что-то не совпало то:
Форма.ТолькоПросмотр = Итсина;
+
11. zayden 17 05.04.19 08:19 Сейчас в теме
(3)
ГДЕ Родитель.Ответственный = &ТекущийПользователь


не срабатывает - не видно документов
+
4. oleg-x 26 18.03.19 16:59 Сейчас в теме
При редактирование/Добавление проверять все элементы выше по иерархии, если есть, то можно редактировать.
Как вариант
1) Запросом найдите все элементы, где указан нужный ответственный, формируем список значений (можно массив) из этих элементов
2) Вторым запросом отбираем все элементы в иерерхии этих элементов поставив условие В Иерархии(&СписокЭлементов)
Таким образом получим Таблицу элементов, которую может редактировать пользователь, если в таблице нет элемента, то редактировать запретить.
+
5. VladimirB 16 18.03.19 17:01 Сейчас в теме
Как вариант:

Процедура ПриОткрытии()
   Если Уровень()=1 Тогда
     Если Реквизит_ОтветственоеЛицо=ТекущийПользователь Тогда
            ЭлементыФормы.Реквизит1.Доступность(0);
            ЭлементыФормы.Реквизит2.Доступность(0);
            ЭлементыФормы.Реквизит3.Доступность(0);
            ЭлементыФормы.РеквизитN.Доступность(0);
  КонецЕсли;

КонецПроцедуры
Показать
+
6. user-z99999 67 18.03.19 17:09 Сейчас в теме
Проверяй Уровень в дереве, а затем проверяй значения.
+
7. AnryMc 849 18.03.19 17:41 Сейчас в теме
По условию:
Родитель.Ответственній <> ТекущийПользователь  ИЛИ Родитель = НЕОПРЕДЕЛЕНО 

Родитель выше другой - НИЗЯЯЯЯ!
Родитель выше не определен - НИЗЯЯЯЯ! (первый уровень)
+
8. oleg-x 26 18.03.19 17:43 Сейчас в теме
(7) А если родитель не выше, а еще выше?
+
9. AnryMc 849 18.03.19 17:44 Сейчас в теме
10. arsen_botashev 18.03.19 17:58 Сейчас в теме
12. zayden 17 05.04.19 08:30 Сейчас в теме
(10) в итоге то как решилось?
+
13. arsen_botashev 05.04.19 09:00 Сейчас в теме
(12)Запрос, (В ИЕРАРХИИ), плюс Если Это <> ЭтоГруппа. Ниже по иерархии можно редактировать все элементы. Группы нельзя. Выше элементы так же нельзя.
+
Внимание! Тема сдана в архив

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