не могу найти подходящего материала для примера. Хочу вывести текущего пользователя в обычное поле для ввода, но чем больше материала нахожу тем меньше понимаю
---
```1c
    &НаСервере
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

    Если Объект.Ссылка.Пустая() Тогда
    ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();

    КонецЕсли;
    КонецПроцедуры
```
---
```1c
    ПеременнаяПривязаннаяКПолюВвода = ТекущийПользователь;
```
---
```1c
    Ответственный = Пользователи.ТекущийПользователь();
```
---
```1c
    (1) ПараметрыСеанса.ТекущийПользователь
```
---
Разобрался.

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ПользователиИнформационнойБазы.ТекущийПользователь();
    Объект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();
    КонецПроцедуры
```
---
3-ю строчку можно и удалить
---
Методически правильнее всетаки использовать параметр сеанса как показано в (4).
---
Почему при попытке выполнить данную процедуру на клиенте, я получаю ошибку: переменная не определена
---
Почему при попытке выполнить данную процедуру на клиенте, я получаю ошибку: переменная не определена (ПолзователиИнформационнойБазы)
Пока не понимаю причину и её исправление
---
Потому что модули без префикса выполняются только на сервере и на клиенте их не существует. На клиенте можно вызвать модули с префиксами "Клиент", "КлиентСервер" и "ВызовСервера". Вам же показали уже неоднократно использовать "ПараметрыСеанса", это работает и это правильно.
---
Поместите в общий модуль Сервер, Внешнее соединение, Вызов сервера функцию

```1c
    Функция ТекущийПользователь() Экспорт
    Возврат ПараметрыСеанса.ТекущийПользователь;
    КонецФункции
```

и пользуйтесь хоть на сервере, хоть на клиенте.
---
Пишет, что с тонким клиентом никак.
А мне нужна процедура ПриЗаписи.
Поэтому пытаюсь так
```1c
    &НаСервере
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

    ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();

    КонецПроцедуры
```

Заполняет, но если захожу как другой пользователь то тогда пишет уже его.
Хочу сделать так чтоб при редактировании записи не менялся пользователь
---
Сам разобрался

```1c
    &НаСервере
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

    Если ТекущийОбъект.Ответственный = " тогда
    ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();

    КонецЕсли
    КонецПроцедуры
```
---
решение не верное, вам 10 раз написали, что правильнее использовать ПараметрыСеанса, и по логике, заходит другой юзер, меняет док, а у вас ответственный остается прежним и все претензии будут к нему
---
Мне нужно чтобы ответственный не менялся если док редактирует другой пользователь
---
ну нужно, значит нужно, хозяин - барин, тогда будете через журнал регистрации искать кто где напортачил...
---
Вот из таких потом и вырастают "жопорукие 1Сники", вам же не раз показали как правильно. 1С не зря пишет методические рекомендации, это делает код читаемым и работающим правильно и с меньшими нагрузками на сервер.
К полю ответственный имеет доступ любой пользователь. Он может его отчистить и заполнится опять текущий, он может его поменять вообще на любого другого ответственного. Что у вас будет при копировании документа?
Задачу надо понимать полностью. Если нужно чтобы в поле ответственный сохранялся создатель документа то используется условие "ЭтоНовый", и защитить его от изменения.
---
У вас реквизит "ответственный" тип строка?
---
да
---
```1c
    &НаСервере
    Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

    Если Объект.Ссылка.Пустая() Тогда
    ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();

    КонецЕсли;
    КонецПроцедуры
```
---
Если Объект.Ссылка.Пустая() Тогда
    ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();

КонецЕсли;

Если нужно, чтобы при копировании объекта (документа) ответственный менялся на текущего (кто копирует), тогда:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Объект.Ссылка.Пустая() Тогда
    Объект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();
    КонецЕсли;
    КонецПроцедуры
```