Подскажите как подправить код?

1. VID1234 140 25.06.20 12:43 Сейчас в теме
Привет всем! Есть такой код, который находится в расширении, в модуле объекта ЗаказКлиенту (УТ11), этим кодом я хочу запретить запись и проведение, а точнее изменение заказа, другими менеджерами. Т.е. если менеджер который во вкладке дополнительно закреплен (например Иванов) и текущий пользователь тоже Иванов, то он может его изменить, а если не Иванов то не может. точнее вроде как может, но при попытке записать или провести, программа не даст ему это сделать. ну или вообще сделать все поля не активными для другого пользователя, может кто уже так делал, но я пытаюсь пока так:
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
	Если Менеджер = ТекущийПользователь Тогда
	Отказ = Ложь;
Иначе
	Отказ = Истина;
	КонецЕсли

Код вставляю в процедуру перед записью, при записи и при проведении в документ Заказ клиенту, через расширение.
ОШИБКА СЛЕДУЮЩАЯ:
Не удалось провести "ЗаказКлиента № и его дата, вроде как запретить запретил, но для всех, в том числе и для текущего пользователя
По теме из базы знаний
Найденные решения
15. user705522_constantin_h 35 25.06.20 15:19 Сейчас в теме
(13)Сравнивайте по Наименованию:
Если Менеджер.ФизическоеЛицо.Наименование = ТекущийПользователь.ФизическоеЛицо.Наименование Тогда
19. user705522_constantin_h 35 25.06.20 15:52 Сейчас в теме
(18)
Если РольДоступна("ПолныеПрава") Тогда
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 25.06.20 12:49 Сейчас в теме
(1)В отладчике посмотрите: значения Менеджер и ТекущийПользователь те, которые по вашему мнению должны быть?
3. VID1234 140 25.06.20 12:51 Сейчас в теме
(2)у меня почему то отладчик не работает в расширении
4. VID1234 140 25.06.20 12:59 Сейчас в теме
(2) сделал так:
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
	ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;
	Если Менеджер = ТекущийПользователь Тогда
	Отказ = Ложь;
Иначе
	Отказ = Истина;
	КонецЕсли

Пишет: несоответствие типов
5. user705522_constantin_h 35 25.06.20 13:10 Сейчас в теме
(4)Сделайте:
Сообщить(ТипЗнч(Менеджер)+", "+ТипЗнч(ТекущийПользователь));
8. VID1234 140 25.06.20 14:45 Сейчас в теме
(5)
Сообщить(ТипЗнч(Менеджер)+", "+ТипЗнч(ТекущийПользователь));

Преобразование значения к типу число не может быть выполнено
11. user705522_constantin_h 35 25.06.20 14:56 Сейчас в теме
(8)Ну так сделайте:
Сообщить(ТипЗнч(Менеджер));
Сообщить(ТипЗнч(ТекущийПользователь));
12. VID1234 140 25.06.20 15:01 Сейчас в теме
(11) Блин в первом случае у меня вышло Пользователь, хотя я ожидал другого, а именно ФИО. И как сделать? Менеджер.Физическое лицо
14. user705522_constantin_h 35 25.06.20 15:12 Сейчас в теме
(12)Да, правильно: Менеджер.ФизическоеЛицо. Или посмотрите в конфигураторе, как он в вашей базе называется.
13. VID1234 140 25.06.20 15:11 Сейчас в теме
(11) Во фтором случае тоже пользователь, т.е. не ФИО, а пользователь, поэтому у меня ничего и не открывается, как только выйти на ФИО
15. user705522_constantin_h 35 25.06.20 15:19 Сейчас в теме
(13)Сравнивайте по Наименованию:
Если Менеджер.ФизическоеЛицо.Наименование = ТекущийПользователь.ФизическоеЛицо.Наименование Тогда
16. VID1234 140 25.06.20 15:22 Сейчас в теме
(15) а на текущего пользователя как выйти:
ТекущийПользователь = Пользователи.ТекущийПользователь();
17. VID1234 140 25.06.20 15:23 Сейчас в теме
(15) Менеджер то - это реквизит Заказа, я его в расширение добавил, а Текущего пользователя такого реквизита в заказе нет
18. VID1234 140 25.06.20 15:38 Сейчас в теме
(15) вроде получилось, а вопрос, а можно еще дополнить, чтобы было условие если полные права, то можно и записывать и проводить
19. user705522_constantin_h 35 25.06.20 15:52 Сейчас в теме
(18)
Если РольДоступна("ПолныеПрава") Тогда
20. VID1234 140 25.06.20 16:08 Сейчас в теме
(19)
Если РольДоступна("ПолныеПрава") Тогда

Спасибо. Все получилось
6. herfis 504 25.06.20 13:15 Сейчас в теме
ПользователиИнформационнойБазы.ТекущийПользователь имеет тип "ПользовательИнформационнойБазы".
Дальше сами догадаетесь?
Определяйте текущего пользователя без самодеятельности. Через ПользователиКлиентСервер.АвторизованныйПользователь()
ЗЫ. Или ПользователиКлиентСервер.ТекущийПользователь(). Там ньюанс только в механизме внешних пользователей, если он задействован
alex-l19041; +1 Ответить
7. VID1234 140 25.06.20 14:39 Сейчас в теме
(6) Здравствуйте. Лучше конечно помочь, я не спец в этих делах, если не сложно конечно
10. herfis 504 25.06.20 14:56 Сейчас в теме
(7) Просто замени в своем сабжевом коде "ПользователиИнформационнойБазы" на просто "Пользователи"
9. VID1234 140 25.06.20 14:49 Сейчас в теме
(6)
ПользовательИнформационнойБазы
внешних нет, только внутренние
Оставьте свое сообщение

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