Есть документ В нем стоит галочка запретить редактирование, как сделать что бы Галочка была активна только у того у кого стоит галочка в справочнике, право утверждать заявкиТМЦ
Вот пробую вот так
Вот пробую вот так
Процедура ЗапретРедактирования2ПриИзменении(Элемент)
// Проверяем, если пользователь Администратор, то ему можно ставить галочку
// Если ЭлФ.ПравоутверждатьзаявкиТМЦ = Истина Тогда
// ЗапретРедактирования2 = Истина;
//Иначе ЗапретРедактирования2 = ТолькоПросмотр;
//КонецЕсли;
Если ЭлементыФормы.ЗапретРедактирования2=ЭлФ.ПравоутверждатьзаявкиТМЦ = Истина Тогда
ЗапретРедактирования2=ТолькоПросмотр;
Иначе ЗапретРедактирования2 = ТолькоПросмотр;
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Расширение границ доступа для отдельных типов документов
- Редактирование документов в закрытом периоде.
- Доступ к документам других пользователей для каждого документа
- Запрет редактирования документов в 1С Управление нашей фирмой 1.6 для выбранных пользователей
- [Расширение] Запрет редактирования документов с пробитым чеком (БП 3.0)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
1. почему в процедуре ПриИзменении, если запрет на изменение надо ещё ПриОткрытии прописать?
2. Алгоритм простой:
а. Получаем значение галочки ПравоИзменять из справочника.
б. проставляем доступность на форме исходя из полученных в пункте "а" данных.
2. Алгоритм простой:
а. Получаем значение галочки ПравоИзменять из справочника.
б. проставляем доступность на форме исходя из полученных в пункте "а" данных.
Функция ПолучитьПравоИзменятьДокумент(Сотрудник)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Пользователи.Право КАК ПравоИзменятьДокумент
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Ссылка= &Сотрудник";
Запрос.УстановитьПараметр("Сотрудник",Сотрудник);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат Ложь;
Иначе
Возврат Результат.Выгрузить()[0].ПравоИзменятьДокумент;
КонецЕсли;
КонецФункции
Процедура ПриОткрытии()
ЭлементыФормы.Галочка.Доступность = ПолучитьПравоИзменятьДокумент(глТекущийПользователь);
КонецПроцедуры
Показать
Сделал, теперь у меня никто не может изменять эту галочку даже тот у кого стоит в справочнике,
Функция ПолучитьПравоИзменятьДокумент(Сотрудник)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Пользователи.ПравоутверждатьзаявкиТМЦ
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.ПравоутверждатьзаявкиТМЦ = &сотрудник";
Запрос.УстановитьПараметр("Сотрудник",Сотрудник);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат Ложь;
Иначе
Возврат Результат.Выгрузить()[0].ЗапретРедактирования;
КонецЕсли;
КонецФункции
ПоказатьЭлементыФормы.ЗапретРедактирования.Доступность = ПолучитьПравоИзменятьДокумент("Администратор");
(22) Allexe8.1, Ну смотря что считать запросом. Я конкретно имел тип объектов запрос и "Умных людей" которые пишут их по поводу и без на каждый чих. Да без запроса к базе данных не получить ничего. И разрешение полей объекта по ссылке это тоже запрос. Вопрос лишь в том как хранятся те данные которые вы запрашиваете в таблице БД или ... Знаете как хранятся параметры сеанса?)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот