Имя: Пароль:
1C
1С v8
Запрет редактирования регистра сведений
0 DmitriiRylov
 
21.05.18
09:01
Здравствуйте,
суть Создавать - можно, Изменять/Удалять - нельзя

вводные:
РС УсловияПоверки (независимый, в пределах дня)
Права:
Чтение, Изменение, Просмотр, Редактирование

Хочу чтобы пользователь создавал, но больше эту запись не изменял и не удалял.
Чтение, Изменение, Просмотр - дают право на чтение почему-то
Редактирование - дает право на изменение и удаление

Как придумал:
Добавил реквизит редактирование (булево), который принимает при записи истина, а дальше при открытии проверка, если истина, то запрет.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Запись.Редактирование = Истина Тогда

        Элементы.Период.Доступность = Ложь;
        Элементы.Отдел.Доступность = Ложь;
        Элементы.Температура.Доступность = Ложь;
        Элементы.Давление.Доступность = Ложь;
        Элементы.Влажность.Доступность = Ложь;
        Элементы.РуководительМетрологическойСлужбы.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Запись.Редактирование = Истина;
КонецПроцедуры

Но верю, что есть другие варианты.
1 FIXXXL
 
21.05.18
10:48
(0) убери право интерактивного изменения и напиши свою форму добавления
2 SleepyHead
 
гуру
21.05.18
10:50
(0) создавать можно, изменять/удалять нельзя. Смысл? Что делать, если создал ошибочно?
3 lodger
 
21.05.18
11:05
(2) судя по названиям это не бухгалтерские, не оперативные и даже не управленческие данные.
поэтому, ну записалось и записалось. передаст кому надо об ошибке - почистят если простят за такой поступок.
4 los_hooliganos
 
21.05.18
11:08
(3) Может это зарплатные данные. О том кому и сколько заплатили.
5 los_hooliganos
 
21.05.18
11:09
О том выплатили 10000 изменить нельзя.
Но если это ошибка, то можно доначислить или удержать
6 lodger
 
21.05.18
11:10
(4) Температура, Давление, Влажность, РуководительМетрологическойСлужбы?
7 catena
 
21.05.18
11:19
(6)Ну правильно, прогнозируют данные, а зп получают с коэффициентом совпадения с реальными))
8 ВРедная
 
21.05.18
11:25
(0) Сделай подчиненный регистратору, если архитектура позволяет, и давай права на регистратор
9 Сти
 
21.05.18
11:47
(0) Да, есть несколько вариантов, как это сделать даже без добавления доп.реквизита.

Вот, например, универсальная фигня, быстро отбивающая охоту у пользователя что-то уже существующее править. Т.е., править можно, но не запишется, и юзер в итоге привыкнет не править.

Процедура ПодпискаНаСобытие1ПередЗаписью(Источник, Отказ, Замещение) Экспорт
    
    Если Не Источник.ОбменДанными.Загрузка Тогда
        НЗ = РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей();
        Для каждого СтрокаОтбора из Источник.Отбор Цикл
            УсловиеОтбора = НЗ.Отбор[СтрокаОтбора.Имя];
            ЗаполнитьЗначенияСвойств(УсловиеОтбора, СтрокаОтбора);
        КонецЦикла;
        
        НЗ.Прочитать();
        Если НЗ.Количество() > 0 Тогда
            Отказ = Истина;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры


Или, если есть нарисованные в конфигураторе формы, то можно использовать события, например, при попытке редактирования в списке:


Процедура РегистрСведенийСписокПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    
    Если НЕ НоваяСтрока Тогда
        РегистрСведенийСписок.ЗакончитьРедактированиеСтроки(Истина);
    КонецЕсли;
    
КонецПроцедуры


Ну и так далее.