Получить текущего пользователя сеанса. БСП

1. baracuda 2 22.04.16 13:48 Сейчас в теме
Юзаю УТ11.2 наверняка в общих модулях есть функция которая возвращает ссылку на текущего пользователя.
Подскажите пожалуйста, сам не смог найти.
По теме из базы знаний
Найденные решения
15. kirill_sh 1 29.01.20 14:57 Сейчас в теме
Это все устарело правильно использовать:
Клиент - ПользователиКлиент.ТекущийПользователь()
Сервер - Пользователи.ТекущийПользователь()
Прикрепленные файлы:
user892073; Varozh; user1046677; PAM3000; Rick148; user785234; AndreySchel; user1738091; nikvik79; EvgeniyOlxovskiy; Oxygraphis; vladimir-89; Rabin; VictorKa; serezh1a; user591389_aska_rabota; mi13; user1743793; upclinic_krd; Merkalov; Мах; elephant_x; Nikolaich_; Hogyoku; VesnaLP; st1ll; mistersam444; Rega; annak2980; aleksejafonkin; Roflik; InJey; assa; LeXXeR; Thalt; Светлый ум; user1561754; Terabaytus; G_115170862628512093824; MikeSerg; +40 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kuzev 47 22.04.16 14:04 Сейчас в теме
(1) baracuda,
ПользователиКлиентСервер.ТекущийПользователь()
asid; EvgeniyOlxovskiy; vladimir-89; Alex_E; Merkalov; AndreySchel; One_Assembler; Serg243; any__uta; Aleksey.Bochkov; Socradt; poryadinsa; Anthon; vladir; kabantus; cleaner_it; GonziK_KIV; Nikitos_NSK; user1559729; websamson; Progart; user785234; crosby; Valerianich; Xomka; krovohlebka; user1619761; denis83; criptid; 3man001; user841691; Мах; Gadzhalik; muzipov; InJey; DoctorRoot; user1456656; Новичок1с; FolserZ; LomayaZakat; 778402; a__step; Slypower; Danila7Zz; dimisa; sitec; user639498_dar8313; user1288161; Jejer; Dmitri93; BigRig; user1188623; Jeka44; user1038092; Ariva; Jorje234; FilatovRA; YellowAndBlue; user1042850; JohnConnor; Fator26; Olga12; baracuda; r.moschenskiy; +64 Ответить
3. sommid 22.04.16 15:07 Сейчас в теме
(1) а как искали-то )
почти в каждом документе в обработке заполнения есть код по начальному заполнению поля Ответственный или Автор
4. baracuda 2 22.04.16 15:14 Сейчас в теме
(3) sommid, открыл конфигуратор, полез в общие модуля)
6. DJDUH 17 22.04.16 16:07 Сейчас в теме
(1) baracuda, Так правильно
ПользовательИнформационнойБазы.ТекущийПользователь() 
, в параметрах сеанса, может быть кто угодно!
5. aka Любитель XML 22.04.16 15:29 Сейчас в теме
ПараметрыСеанса.ТекущийПользователь
smewinka; Bob_Dobr; Danila7Zz; a__step; +4 Ответить
7. smaharbA 22.04.16 16:15 Сейчас в теме
Пользователь ИБ и ТекущийПльзователь не всегда одно и тоже.
Merkalov; +1 Ответить
8. baracuda 2 23.04.16 10:24 Сейчас в теме
(7) smaharbA, какая разница между ними? В типовых конфигурациях это на 99% одно и то же.
11. spacecraft 23.04.16 15:03 Сейчас в теме
(8) baracuda, ярко выраженный пример в РМК. При кратковременной замене на пользователя с расширенными правами, к примеру, для возврата чека.
cleaner_it; +1 Ответить
12. baracuda 2 25.04.16 09:53 Сейчас в теме
(11) spacecraft, и в самом деле. Спасибо за пояснение. Но в принципе при инциализиции РМК я могу смело заполнять продавца текущим пользователем.
9. nni93 23.04.16 14:40 Сейчас в теме
Параметры сеанса предназначены для хранения значений определенных типов для каждого клиентского сеанса на время работы этого сеанса. Инициализацию параметров сеанса следует выполнять в модуле сеанса, а их значения рекомендуется использовать в запросах и условиях ограничения доступа к данным для текущего сеанса.
Примеры параметров сеанса:
ТекущийПользователь – тип СправочникСсылка.Пользователи
ОбменДаннымиВключен – тип Булево
РабочееМестоКлиента – тип СправочникСсылка.РабочиеМеста
Параметры сеанса доступны из встроенного языка 1С:Предприятия, например:
ЗначениеТекущегоПользователя = ПараметрыСеанса.ТекущийПользователь;
baracuda; +1 Ответить
10. baracuda 2 23.04.16 14:48 Сейчас в теме
(9) nni93, разницу я имел ввиду в контексте утверждения
Пользователь ИБ и ТекущийПльзователь не всегда одно и тоже.
13. Dunga 44 22.10.18 15:32 Сейчас в теме
Можно так:
ПользователиКлиентСервер.ТекущийПользователь();
14. kievol 12.06.19 15:13 Сейчас в теме
На клиенте правильно будет
ПользователиКлиентСервер.ТекущийПользователь()
15. kirill_sh 1 29.01.20 14:57 Сейчас в теме
Это все устарело правильно использовать:
Клиент - ПользователиКлиент.ТекущийПользователь()
Сервер - Пользователи.ТекущийПользователь()
Прикрепленные файлы:
user892073; Varozh; user1046677; PAM3000; Rick148; user785234; AndreySchel; user1738091; nikvik79; EvgeniyOlxovskiy; Oxygraphis; vladimir-89; Rabin; VictorKa; serezh1a; user591389_aska_rabota; mi13; user1743793; upclinic_krd; Merkalov; Мах; elephant_x; Nikolaich_; Hogyoku; VesnaLP; st1ll; mistersam444; Rega; annak2980; aleksejafonkin; Roflik; InJey; assa; LeXXeR; Thalt; Светлый ум; user1561754; Terabaytus; G_115170862628512093824; MikeSerg; +40 Ответить
16. akadelpher@gmail.com 02.07.22 20:50 Сейчас в теме
Здравствуйте, а есть ли обработка которая вызывается не перед записью, а при заполнении какого-либо поля в документе. Например при выборе клиента в реализации перезаполняется менеджер. В принципе все можно сделать перед записью, но я хочу чтоб пользователи сразу видели, что все заполненно корректно
17. FatPanzer 02.07.22 22:33 Сейчас в теме
(16) А что вам мешает самому в обработчик ПриИзменении() у поля контрагента - вызвать изменение поля Ответственный?
18. akadelpher@gmail.com 02.07.22 23:40 Сейчас в теме
(17) через свое расширение? Я может не до конца разобрался
19. akadelpher@gmail.com 02.07.22 23:43 Сейчас в теме
(17)
(17) ок, сорри, я не к тому посту сообщение написал:) это должен был комментарий к обработке
20. user1126480 16 28.10.23 13:10 Сейчас в теме
Если получить Ответственного для документов современных типовых конфигураций на Управляемых формах, где тип данных реквизита "Ответственный" является справочником "Сотрудники", то так:

ТекущийПользовательСправочникаПользователи = Пользователи.ТекущийПользователь(); //Это взято из БСП
ДокументНазвание.Ответственный = Справочники.Сотрудники.НайтиПоНаименованию(ТекущийПользовательСправочникаПользователи.Наименование);
21. user1604784 29.01.24 18:34 Сейчас в теме
(20)
&НаСервереБезКонтекста
Функция ПолучитьСотрудникаПоТекущемуПользователю()

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
		|	Сотрудники.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.Пользователи КАК Пользователи
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
		|		ПО Пользователи.Наименование = Сотрудники.Наименование
		|ГДЕ
		|	Пользователи.Ссылка = &Пользователь
		|	И Сотрудники.ПометкаУдаления = ЛОЖЬ";
	
	Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Выборка.Следующий();
	
	Возврат Выборка.Ссылка; 

КонецФункции
Показать
22. user2033930 29.01.24 18:41 Сейчас в теме
(21) А если Следующий() не сработает - угадай, какая будет ошибка?
23. Megabonstr 29.01.24 19:08 Сейчас в теме
(22)
Никакой ошибки не будет, с чего бы, на ИТС давно написано что при вызове метода Следующий() не требуется проверка на РезультатЗапроса.Пустой() т.к. метод не падает в исключение, а просто возвращает Ложь, правильнее конечно будет написать:

Сотрудник = ?(Выборка.Следующий(), Выборка.Ссылка, Справочники.Сотрудники.ПустаяСсылка());

Возврат Сотрудник;
24. user2033930 29.01.24 19:17 Сейчас в теме
25. Megabonstr 30.01.24 06:52 Сейчас в теме
(21)
Есть еще проще вариант, через регистр сведения СотрудникиПользователя
&НаСервереБезКонтекста
Функция ПолучитьСотрудникаПоТекущемуПользователю()
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	СотрудникиПользователя.Сотрудник КАК Сотрудник
	|ИЗ
	|	РегистрСведений.СотрудникиПользователя КАК СотрудникиПользователя
	|ГДЕ
	|	СотрудникиПользователя.Пользователь = &Пользователь";
	
	Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Сотрудник = ?(Выборка.Следующий(), Выборка.Сотрудник, Справочники.Сотрудники.ПустаяСсылка());
	
	Возврат Сотрудник;	
	
КонецФункции   
Показать


Если запрос пустой то вернется Неопределено
Оставьте свое сообщение

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