Имя: Пароль:
1C
1С v8
Редактирование реквизитов в управляемой форме
0 Strimteam
 
15.10.12
11:51
Платформа 8.2.15
Для конкретного пользователя необходимо дать возможность изменять только 1 реквизит из всех в справочнике.
Сделал отдельную роль, в которой добавил редактирование для всего справочника, но только для одного реквизита проставил галочку Редактирование. В итоге - все элементы доступны для редактирования (запись происходит так же нормально).
Если у справочника снять галку Редактирование, и проставить только для элемента - все элементы не доступны для редактирования (запись так же не доступна).

Подскажите как сделать права для записи, но редактировать только один реквизит?
1 1Сергей
 
15.10.12
11:55
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   СообщениеОшибки = "";
   Если (НЕ (РольДоступна("Бухгалтер") ИЛИ РольДоступна("ГлавныйБухгалтер") ИЛИ РольДоступна("ПолныеПрава") ИЛИ (Объект.Дата>=НачалоДня(ТекущаяДата()) И Объект.Дата<=КонецДня(ТекущаяДата())))) И ЗначениеЗаполнено(Объект.Ссылка)  Тогда
       //ЭтаФорма.ТолькоПросмотр = Истина;
       Для каждого ЭлементФормы Из ЭтаФорма.Элементы Цикл
           Если (ЭлементФормы.Имя = "ФлагОплачен")
               ИЛИ(ЭлементФормы.Имя = "Авторизовал")
               ИЛИ(ЭлементФормы.Имя = "ФормаДокументРеализацияАвиабилетовПечать")
               ИЛИ(ЭлементФормы.Имя = "КнопкаОбновитьКарточки")
               ИЛИ(Найти(ЭлементФормы.Имя, "Провести") > 0)Тогда
               ЭлементФормы.Доступность = Истина;
           ИначеЕсли(ТипЗнч(ЭлементФормы)=Тип("ГруппаФормы")) Тогда
               ЭлементФормы.Доступность = Истина;
           Иначе
               ЭлементФормы.Доступность = Ложь;
           КонецЕсли;
       КонецЦикла;
       Сообщение = Новый СообщениеПользователю;
       Сообщение.Текст = "Редактирование документа запрещено. Документ открыт в режиме только просмотр";
       Сообщение.УстановитьДанные(Объект);
       Сообщение.Сообщить();        
   ИначеЕсли (НЕ (РольДоступна("Бухгалтер") ИЛИ РольДоступна("ГлавныйБухгалтер") ИЛИ РольДоступна("ПолныеПрава"))) Тогда
       Элементы.Дата.ТолькоПросмотр = Истина;
   КонецЕсли;
2 Strimteam
 
15.10.12
12:02
(1) Т.е. на уровне платформы никак? Только кодом?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший