Доступ к редактированию документа

1. surazhpc 11.08.14 15:46 Сейчас в теме
Есть документ В нем стоит галочка запретить редактирование, как сделать что бы Галочка была активна только у того у кого стоит галочка в справочнике, право утверждать заявкиТМЦ
Вот пробую вот так
Процедура ЗапретРедактирования2ПриИзменении(Элемент)
	// Проверяем, если пользователь Администратор, то ему можно ставить галочку
	//	   Если ЭлФ.ПравоутверждатьзаявкиТМЦ = Истина Тогда
	//	ЗапретРедактирования2 = Истина;
	//Иначе ЗапретРедактирования2 = ТолькоПросмотр;
	//КонецЕсли;
	  
	Если ЭлементыФормы.ЗапретРедактирования2=ЭлФ.ПравоутверждатьзаявкиТМЦ = Истина Тогда
		ЗапретРедактирования2=ТолькоПросмотр;
	Иначе ЗапретРедактирования2 = ТолькоПросмотр;
		КонецЕсли;
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. platon_ 10 11.08.14 15:51 Сейчас в теме
1. почему в процедуре ПриИзменении, если запрет на изменение надо ещё ПриОткрытии прописать?
2. Алгоритм простой:
а. Получаем значение галочки ПравоИзменять из справочника.
б. проставляем доступность на форме исходя из полученных в пункте "а" данных.
3. surazhpc 11.08.14 15:58 Сейчас в теме
а совсем смешной вопрос как получить значение?
4. Prince_1 4 11.08.14 16:06 Сейчас в теме
(3) surazhpc, А структура справочника какая? Может быть запросом?
5. surazhpc 11.08.14 16:09 Сейчас в теме
а как запросом? чего то запросом врядли
6. Prince_1 4 11.08.14 16:11 Сейчас в теме
(5) surazhpc, ок, расскажи, что за справочник? какие в нем поля? или конфигурация какая?
7. surazhpc 11.08.14 16:16 Сейчас в теме
Справочник "Пользователи" В справочнике Право утверждать заявки булево, вот нужно если эта галочка у пользователя стоит в справочнике, то он мог редактировать документ.
8. platon_ 10 11.08.14 16:22 Сейчас в теме
Функция ПолучитьПравоИзменятьДокумент(Сотрудник)
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	|	Пользователи.Право КАК ПравоИзменятьДокумент
	|ИЗ
	|	Справочник.Пользователи КАК Пользователи
	|ГДЕ
	|	Пользователи.Ссылка= &Сотрудник";
	Запрос.УстановитьПараметр("Сотрудник",Сотрудник);
	Результат = Запрос.Выполнить();
	Если Результат.Пустой() Тогда
		Возврат Ложь;
	Иначе
		Возврат Результат.Выгрузить()[0].ПравоИзменятьДокумент;
	КонецЕсли;
КонецФункции

Процедура ПриОткрытии()
ЭлементыФормы.Галочка.Доступность = ПолучитьПравоИзменятьДокумент(глТекущийПользователь);
КонецПроцедуры
Показать
9. surazhpc 11.08.14 16:42 Сейчас в теме
Платон, не совсем понятно Сотрудник у тебя это что?
10. platon_ 10 11.08.14 16:45 Сейчас в теме
(9) surazhpc, это пользователь.
11. surazhpc 11.08.14 16:46 Сейчас в теме
Сделал, теперь у меня никто не может изменять эту галочку даже тот у кого стоит в справочнике,
Функция ПолучитьПравоИзменятьДокумент(Сотрудник)
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	Пользователи.ПравоутверждатьзаявкиТМЦ
	               |ИЗ
	               |	Справочник.Пользователи КАК Пользователи
	               |ГДЕ
	               |	Пользователи.ПравоутверждатьзаявкиТМЦ = &сотрудник";
				   
	Запрос.УстановитьПараметр("Сотрудник",Сотрудник);
	Результат = Запрос.Выполнить();
	Если Результат.Пустой() Тогда
		Возврат Ложь;
	Иначе
		Возврат Результат.Выгрузить()[0].ЗапретРедактирования;
	КонецЕсли;
КонецФункции
Показать



ЭлементыФормы.ЗапретРедактирования.Доступность = ПолучитьПравоИзменятьДокумент("Администратор");
12. platon_ 10 11.08.14 16:48 Сейчас в теме
(11) surazhpc, всё правильно. передавать то надо ссылку на пользователя, а не наименование.
13. surazhpc 11.08.14 16:51 Сейчас в теме
Ссылку на пользователя это как?
14. platon_ 10 11.08.14 16:52 Сейчас в теме
(13) surazhpc, это вот так
Справочник.Пользователи.НайтиПоНаименованию("Администратор");
16. Гость 11.08.14 16:57
(14) platon_, Что вы ему советуете??? Я в шоке просто. Я Правильно понял что у вас в справочнике пользователи есть галочка можно или нельзя редактировать документ ?
17. platon_ 10 11.08.14 17:01 Сейчас в теме
(16) Ололоша, что человек спрашивает, то и советую) я же не знаю то у него за конфа) какие параметры сеанса и прочие радости жизни)
15. Гость 11.08.14 16:53
ТекущийПользователь(). Бросите вы уже программирование.
18. nSpirit2 11.08.14 17:02 Сейчас в теме
Такой вариант не сработает зачем запросто то вообще?
ЭлементыФормы.ЗапретРедактирования.Доступность = ПараметрыСеанса.ТекущийПользователь.ПравоутверждатьзаявкиТМЦ
19. surazhpc 11.08.14 17:02 Сейчас в теме
ЭлементыФормы.ЗапретРедактирования.Доступность = ПараметрыСеанса.глПользователь.ПравоутверждатьзаявкиТМЦ;

Все обошлось одной строчкой без запроса(
20. surazhpc 11.08.14 17:03 Сейчас в теме
nSpirit2, ну почти как и у тебя)))
21. nSpirit2 11.08.14 17:06 Сейчас в теме
(20) surazhpc, Ну вот и хорошо ну их эти запросы. Лучше гуглите в следующий раз чем тут спрашивать а то вам тут насоветуют "Добрые люди запросов" :)
22. Allexe8.1 11.08.14 17:18 Сейчас в теме
(21) nSpirit2,
глПользователь.ПравоутверждатьзаявкиТМЦ
- это тоже запрос, а возможно, даже несколько))
23. nSpirit2 11.08.14 17:34 Сейчас в теме
(22) Allexe8.1, Ну смотря что считать запросом. Я конкретно имел тип объектов запрос и "Умных людей" которые пишут их по поводу и без на каждый чих. Да без запроса к базе данных не получить ничего. И разрешение полей объекта по ссылке это тоже запрос. Вопрос лишь в том как хранятся те данные которые вы запрашиваете в таблице БД или ... Знаете как хранятся параметры сеанса?)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот