Как узнать кто из пользователей создал документ в 1С
Сегодня поговорим о том а как же узнать того кто создал документ или любой другой объект конфигурации, в некоторых типовых конфигурациях такая возможность есть, например в Бухгалтерии 8″ (ред. 3.0) можно включить отображение автора документа в настройках. В результате этих действий внизу документа появиться появиться поле «Ответственный», в котором будет отображаться автор документа. Можно все это реализовать и самостоятельно дописав небольшой кусочек кода в процедуру.
Добавляем ответственного в документ 1С
Для примера будем использовать учебную версию 1С «Управление торговлей, редакции 11». Добавить ответственного можно в любой объект конфигурации, для примера возьмем справочник «Партнеры». Допустим мы хотим знать кто из пользователей создал партнера, хотим чтобы внизу отображалось его ФИО.
Для этого необходимо создать новый реквизит и добавить его на форму, для примера я назвал реквизит «Кто создал», можно его назвать как угодно но правильней будет все таки назвать данное поле «Ответственный».
Далее в обработчик события «При создании на сервере» допишет вот такой код.
Если НЕ ЗначениеЗаполнено(Объект.КтоСоздал) Тогда
Объект.КтоСоздал = справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь);
КонецЕсли;
Этим условием мы проверяем сначала заполнение это поля, если поле пустое то заполняем его информацией о текущем пользователи и записываем. Это нужно для того чтобы во время открытия уже созданного партнера ответственный не перезаписывался.
Кстати поиск в справочнике в принципе можно было и не производить а вместо
справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь);
написать просто
ПользователиИнформационнойБазы.ТекущийПользователь();
Сохраняем и проверяем что получилось, теперь во время создания нового партнера будет заполняться поле «Кто создал».
А благодаря условия при открытии уже созданного партнера данное поле не будет перезаписываться.
Кстати чтобы пользователь не смог редактировать эту информацию можно отключить доступность.
Вот таким образом можно реализовать эту задачу, я уверен более опытные программиста скажут что это не оптимальный способ, но он имеет место быть. Если нашли ошибку или хотите поделиться своими знание на эту тему обязательно напишите!