1с 8.3 Вывод текущего пользователя в поле ввода

1. SweaterHen 20.04.23 10:06 Сейчас в теме
не могу найти подходящего материала для примера. Хочу вывести текущего пользователя в обычное поле для ввода, но чем больше материала нахожу тем меньше понимаю
По теме из базы знаний
Найденные решения
20. SweaterHen 05.05.23 08:14 Сейчас в теме
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)  
	
  
	Если Объект.Ссылка.Пустая() Тогда
	ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь(); 
	
КонецЕсли;
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 20.04.23 10:33 Сейчас в теме
(1)
ПеременнаяПривязаннаяКПолюВвода = ТекущийПользователь;
3. user5300 1010 20.04.23 14:17 Сейчас в теме
(1)
Ответственный = Пользователи.ТекущийПользователь();
4. namazi74 4 20.04.23 14:22 Сейчас в теме
(1) ПараметрыСеанса.ТекущийПользователь
karamazoff; SweaterHen; wertep; +3 Ответить
5. SweaterHen 24.04.23 09:39 Сейчас в теме
Разобрался.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ПользователиИнформационнойБазы.ТекущийПользователь();
	Объект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();
КонецПроцедуры
6. Kilka_v_Kepke 24.04.23 10:09 Сейчас в теме
(5)3-ю строчку можно и удалить
7. wertep 23 24.04.23 13:59 Сейчас в теме
(5) Методически правильнее всетаки использовать параметр сеанса как показано в (4).
namazi74; +1 Ответить
8. SweaterHen 25.04.23 08:31 Сейчас в теме
Почему при попытке выполнить данную процедуру на клиенте, я получаю ошибку: переменная не определена
9. SweaterHen 25.04.23 08:32 Сейчас в теме
Почему при попытке выполнить данную процедуру на клиенте, я получаю ошибку: переменная не определена (ПолзователиИнформационнойБазы)
Пока не понимаю причину и её исправление
11. wertep 23 25.04.23 09:25 Сейчас в теме
(9) Потому что модули без префикса выполняются только на сервере и на клиенте их не существует. На клиенте можно вызвать модули с префиксами "Клиент", "КлиентСервер" и "ВызовСервера". Вам же показали уже неоднократно использовать "ПараметрыСеанса", это работает и это правильно.
10. VZyryanov 25.04.23 09:01 Сейчас в теме
Поместите в общий модуль Сервер, Внешнее соединение, Вызов сервера функцию
Функция ТекущийПользователь() Экспорт
	Возврат ПараметрыСеанса.ТекущийПользователь;	
КонецФункции

и пользуйтесь хоть на сервере, хоть на клиенте.
12. SweaterHen 26.04.23 07:26 Сейчас в теме
Пишет, что с тонким клиентом никак.
А мне нужна процедура ПриЗаписи.
Поэтому пытаюсь так
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	
	ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();
	
КонецПроцедуры

Показать


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

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



Показать
14. karamazoff 96 26.04.23 08:39 Сейчас в теме
(13)решение не верное, вам 10 раз написали, что правильнее использовать ПараметрыСеанса, и по логике, заходит другой юзер, меняет док, а у вас ответственный остается прежним и все претензии будут к нему
15. SweaterHen 26.04.23 08:55 Сейчас в теме
(14) Мне нужно чтобы ответственный не менялся если док редактирует другой пользователь
16. karamazoff 96 26.04.23 09:01 Сейчас в теме
(15)ну нужно, значит нужно, хозяин - барин, тогда будете через журнал регистрации искать кто где напортачил...
18. wertep 23 26.04.23 09:57 Сейчас в теме
(13) Вот из таких потом и вырастают "жопорукие 1Сники", вам же не раз показали как правильно. 1С не зря пишет методические рекомендации, это делает код читаемым и работающим правильно и с меньшими нагрузками на сервер.
К полю ответственный имеет доступ любой пользователь. Он может его отчистить и заполнится опять текущий, он может его поменять вообще на любого другого ответственного. Что у вас будет при копировании документа?
Задачу надо понимать полностью. Если нужно чтобы в поле ответственный сохранялся создатель документа то используется условие "ЭтоНовый", и защитить его от изменения.
17. Kolesonik 13 26.04.23 09:30 Сейчас в теме
У вас реквизит "ответственный" тип строка?
19. SweaterHen 27.04.23 06:39 Сейчас в теме
20. SweaterHen 05.05.23 08:14 Сейчас в теме
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)  
	
  
	Если Объект.Ссылка.Пустая() Тогда
	ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь(); 
	
КонецЕсли;
КонецПроцедуры
Показать
21. DKNY_ 05.03.24 15:51 Сейчас в теме
(20)
Если Объект.Ссылка.Пустая() Тогда
ТекущийОбъект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь();

КонецЕсли;


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

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

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