Привет всем! Есть такой код, который находится в расширении, в модуле объекта ЗаказКлиенту (УТ11), этим кодом я хочу запретить запись и проведение, а точнее изменение заказа, другими менеджерами. Т.е. если менеджер который во вкладке дополнительно закреплен (например Иванов) и текущий пользователь тоже Иванов, то он может его изменить, а если не Иванов то не может. точнее вроде как может, но при попытке записать или провести, программа не даст ему это сделать. ну или вообще сделать все поля не активными для другого пользователя, может кто уже так делал, но я пытаюсь пока так:

```1c
    ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
    Если Менеджер = ТекущийПользователь Тогда
    Отказ = Ложь;
    Иначе
    Отказ = Истина;
    КонецЕсли
```

Код вставляю в процедуру перед записью, при записи и при проведении в документ Заказ клиенту, через расширение.
ОШИБКА СЛЕДУЮЩАЯ:
Не удалось провести "ЗаказКлиента № и его дата, вроде как запретить запретил, но для всех, в том числе и для текущего пользователя
---
Сравнивайте по Наименованию:

```1c
    Если Менеджер.ФизическоеЛицо.Наименование = ТекущийПользователь.ФизическоеЛицо.Наименование Тогда
```
---
```1c
    Если РольДоступна("ПолныеПрава") Тогда
```
---
В отладчике посмотрите: значения Менеджер и ТекущийПользователь те, которые по вашему мнению должны быть?
---
у меня почему то отладчик не работает в расширении
---
сделал так:

```1c
    ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
    ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;
    Если Менеджер = ТекущийПользователь Тогда
    Отказ = Ложь;
    Иначе
    Отказ = Истина;
    КонецЕсли
```

Пишет: несоответствие типов
---
Сделайте:

```1c
    Сообщить(ТипЗнч(Менеджер)+", "+ТипЗнч(ТекущийПользователь));
```
---
Сообщить(ТипЗнч(Менеджер)+", "+ТипЗнч(ТекущийПользователь));
Преобразование значения к типу число не может быть выполнено
---
Ну так сделайте:

```1c
    Сообщить(ТипЗнч(Менеджер));
    Сообщить(ТипЗнч(ТекущийПользователь));
```
---
Блин в первом случае у меня вышло Пользователь, хотя я ожидал другого, а именно ФИО. И как сделать? Менеджер.Физическое лицо
---
Да, правильно: Менеджер.ФизическоеЛицо. Или посмотрите в конфигураторе, как он в вашей базе называется.
---
Во фтором случае тоже пользователь, т.е. не ФИО, а пользователь, поэтому у меня ничего и не открывается, как только выйти на ФИО
---
Сравнивайте по Наименованию:

```1c
    Если Менеджер.ФизическоеЛицо.Наименование = ТекущийПользователь.ФизическоеЛицо.Наименование Тогда
```
---
а на текущего пользователя как выйти:

```1c
    ТекущийПользователь = Пользователи.ТекущийПользователь();
```
---
Менеджер то - это реквизит Заказа, я его в расширение добавил, а Текущего пользователя такого реквизита в заказе нет
---
вроде получилось, а вопрос, а можно еще дополнить, чтобы было условие если полные права, то можно и записывать и проводить
---
```1c
    Если РольДоступна("ПолныеПрава") Тогда
```
---
Если РольДоступна("ПолныеПрава") Тогда
Спасибо. Все получилось
---
ПользователиИнформационнойБазы.ТекущийПользователь имеет тип "ПользовательИнформационнойБазы".
Дальше сами догадаетесь?
Определяйте текущего пользователя без самодеятельности. Через ПользователиКлиентСервер.АвторизованныйПользователь()
ЗЫ. Или ПользователиКлиентСервер.ТекущийПользователь(). Там ньюанс только в механизме внешних пользователей, если он задействован
---
Здравствуйте. Лучше конечно помочь, я не спец в этих делах, если не сложно конечно
---
Просто замени в своем сабжевом коде "ПользователиИнформационнойБазы" на просто "Пользователи"
---
ПользовательИнформационнойБазы внешних нет, только внутренние