Страница 1 из 1

Накладные на отпуск в произв-во: разграничение прав доступа

Добавлено: 25 авг 2015, 17:00
zna
Доброго дня, коллеги.
Попытался включить механизм разграничения прав доступа к НОС: УПЛ => Настройка => Настройка прав доступа к документам => выбираю НОС => ставлю галочку, настраиваю для себя доступы для всех статусов. Во всех настройках имею административные права.
Но: при входе в любую накладную система закрывает документ для редактирования. Открывается документ только снятием галочки.
Кто- нибудь настраивал?
Была здесь уже такая тема про НПГ- та же проблема.
8.1, MS SQL, временные файлы чистил.

Re: Накладные на отпуск в произв-во: разграничение прав дост

Добавлено: 25 авг 2015, 22:44
edward_K
я настраивал но для договоров. Вы на всех закладках все пометили? И там еще режим можно установить для каждого статуса.

Re: Накладные на отпуск в произв-во: разграничение прав дост

Добавлено: 26 авг 2015, 08:12
zna
Да, пометил всё, что можно на всех вкладках.
Для договоров и заявок в МТС разграничение прав у нас работает нормально. Не хотелось бы мастерить эту же функциональность в докомпиляции интерфейса..

Re: Накладные на отпуск в произв-во: разграничение прав дост

Добавлено: 27 авг 2015, 13:34
zna
Собрал разграничение прав доступа на JavaScript:
1. Пользователям назначил группы;
2. На событие "перед сменой статуса" запускается алгоритм, сохраняющий исходный статус в dsk- файле:

Код: Выделить всё

KatSopr.setPosition(CurDoc());
if(SaveMyDsk(KatSopr.Statt, 'KatSoprStatt'))  {} 
3. На событие "после смены статуса" запускается алгоритм, проверяющий допустимость нового статуса:

Код: Выделить всё

var UserDesgr, StatusOld, StatusNew, Check = false;
KatSopr.setPosition(CurDoc());
if(ReadMyDsk('KatSoprStatt'))
  {
    if(KatSopr.PodrToo == BazaTeplopribor || KatSopr.PodrToo == BazaTeplopribor2)  //Если отпуск идёт на базу Теплоприбор(2)
      {
        UserDesgr = sGetTune('USER.DESGR');
        StatusOld = Buf;
        StatusNew = KatSopr.Statt;
        if(UserDesgr == '06'  && StatusNew == Zakryt) Check = true;           // Кладовщики могут установить статус "Закрыт"
        if(UserDesgr == '01'  || UserDesgr == '02') Check = true;          // Администраторы и управление могут любой статус установить
        if(UserDesgr == '072' && StatusNew == Soglasovannyi) Check = true;    // Начальник производства может установить статус "Согласованный"
        if(UserDesgr == '10'  && StatusNew == Oformlyaemyi) Check = true;     // ПТО может установить статус "Оформляемый"
        Debug.print('НОС => ' + KatSopr.Nomer+' от '+KatSopr.DateDoc+': '+UserDesgr+'; '+UserName()+'; StatusOld = '+ StatusOld+'; StatusNew = '+StatusNew+'; Check = '+Check);
        if(Check == false)
          {
            KatSopr.Statt = StatusOld;
            KatSopr.rewrite();
            Debug.print('Вы не можете установить этот статус. Выполнен откат к исходному статусу.');
          }
        else Debug.print('Новый статус сохранён.');
      }
  }
else Debug.print('Ошибка чтения исходного статуса!');
и если условия допустимости не выполняются, происходит возврат к исходному статусу.
Всё работает, если нужны подробности об объектах- спросите, отвечу.

Re: Накладные на отпуск в произв-во: разграничение прав дост

Добавлено: 07 сен 2015, 17:58
andy29
zna писал(а):Да, пометил всё, что можно на всех вкладках.
Для договоров и заявок в МТС разграничение прав у нас работает нормально. Не хотелось бы мастерить эту же функциональность в докомпиляции интерфейса..
Посмотрите настройку "Производство и планирование->Управление производственной логистикой->Для накладных считать запрещенными помеченные статусы на закладке "Доступ к документам". Если стоит значение "ДА", то помеченные статусы являются закрытыми для редактирование а не наоборот. Измените настройку на "НЕТ" и все должно работать как в договорах и в складском учете.

Re: Накладные на отпуск в произв-во: разграничение прав дост

Добавлено: 08 сен 2015, 08:24
zna
Да, есть такая настройка, поставил "нет".. Но поздно уже, всё работает как надо. Благодарю, плюсую.