Имя: Пароль:
1C
1С v8
КА 1.1 как ограничить доступ к номенклатуре
0 I_learn_1c
 
25.04.19
09:44
Доброе утро,

Подскажите пожалуйста как можно бы выкрутиться. у меня КА 1.1, но наверно и в некоторых других аналогично.

Нужно запретить пользователям редактировать номенклатуру, но при этом чтобы они могли ее создавать. Редактировать могут только выбранные несколько пользователей.

Через роли - не прокатывает, галочку Интерактивное добавление без галочки Редактирование не поставить, RLS для них тоже не работает, только на чтении, изменении, добавлении. прописать кусок с ограничением если не ЭтоНовый() в ПередЗаписью или ПриЗаписи - тоже нет, в дополнительных правах чего то подходящего тоже не нашла.... что еще можно попробовать?
1 shadow_sw
 
25.04.19
09:46
создай роль, проверять призаписи() на этоновый()
2 stix2010
 
25.04.19
09:46
подписка
3 sqr4
 
25.04.19
09:47
Фото!
Перед записью, ссылка еще не существует у нового объекта, а у старого существует.
4 I_learn_1c
 
25.04.19
09:52
(3) потом возвращается в перед записью и там уже есть ссылка
5 Azverin
 
25.04.19
09:53
(0) можно добавить реквизит с типом Булево. когда пользователь заполнит все необходимые реквизиты (перед этим куча раз записав элемент), ставим Истина. А при открытии проверка и форму открываем только на чтение.
6 Azverin
 
25.04.19
09:54
+ (5) а пользователям на редактирование добавить своё доп право.
7 sqr4
 
25.04.19
10:02
(5) через групповую обработку все сделают)
8 sqr4
 
25.04.19
10:03
Надо модуль объекта анализировать
9 I_learn_1c
 
25.04.19
10:06
(5) не всегда одинаковый набор полей
10 I_learn_1c
 
25.04.19
10:06
(8) а на что в модуле смотреть?
11 Cyberhawk
 
25.04.19
10:06
Элементарно подпиской ПередЗаписью с проверкой на ЭтоНовый()
12 I_learn_1c
 
25.04.19
10:07
подпиской перед записью тоже не работает - попадает в обработчик подписки, когда ссылка уже есть и ЭтоНовый()=Ложь
13 Azverin
 
25.04.19
10:08
(11) могу ошибаться, но Номенклатура дважды проходит запись.
14 I_learn_1c
 
25.04.19
10:08
(13) похоже вот да, на что то такое
15 I_learn_1c
 
25.04.19
10:10
просто в Перед записью - первый раз ссылки еще нет, разрешено создавать, идет в При записи ссылка уже есть, потом снова идет в Перед записью и ссылка есть - срабатывает ограничение и в итоге создать тоже нельзя получается
16 Cyberhawk
 
25.04.19
10:10
Ну если это в одной транзакции, то первый раз все равно ЭтоНовый() = Истина, там в доп. свойства положить маркер, чтоб не проверять потом уже
17 I_learn_1c
 
25.04.19
10:46
вроде бы выкрутилась, спасибо за мысль с флагом)) Завела переменную РедактированиеРазрешено, при открытии РедактированиеРазрешено=ложь

Потом в Перед записью добавила кусок


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