Как найти текущего пользователя 1с

1. Создаем справочник Пользователи
2. ПараметрыСеанса.ТекущийПользователь — тип справочник Пользователи
3. В модуле Сеанса пишем:

Код 1C v 8.2 УП

 Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
ТекущийПользователь = ОбщийМодульСистема.ОпределитьТекущегоПользователя();
ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;
КонецПроцедуры

4. Создаем общий модуль ОбщийМодульСистема в нем пишем:

Код 1C v 8.2 УП

 // Функция возвращает ссылку на элемент справочника "Пользователи",
// соответствующий текущему пользователю информационной базы.
Функция ОпределитьТекущегоПользователя() экспорт

Если ПустаяСтрока(ИмяПользователя()) Тогда
ИмяПользователя = "НеАвторизован";
ПолноеИмяПользователя = "Не авторизован";
Иначе
ИмяПользователя = ИмяПользователя();

Если ПустаяСтрока(ПолноеИмяПользователя()) Тогда
ПолноеИмяПользователя = ИмяПользователя;
Иначе
ПолноеИмяПользователя = ПолноеИмяПользователя();
КонецЕсли;
КонецЕсли;

ДлинаКодаПользователя = Метаданные.Справочники.Пользователи.ДлинаКода;

Если СтрДлина(ИмяПользователя) > ДлинаКодаПользователя Тогда
ИмяПользователя = Лев(ИмяПользователя, ДлинаКодаПользователя);
КонецЕсли;

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| Пользователи.Ссылка КАК Ссылка,
| Пользователи.ЭтоГруппа
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Код = &Код";

Запрос.УстановитьПараметр("Код", ИмяПользователя);
Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда

ОбъектПользователь = Справочники.Пользователи.СоздатьЭлемент();

ОбъектПользователь.Код = ИмяПользователя;
ОбъектПользователь.Наименование = ПолноеИмяПользователя;
Попытка
ОбъектПользователь.Записать();
Исключение
ВызватьИсключение "Пользователь : " + ИмяПользователя + " не был найден в справочнике пользователей. Возникла ошибка при добавлении пользователя в справочник.
|" + ОписаниеОшибки();

Возврат Справочники.Пользователи.ПустаяСсылка();

КонецПопытки;

ТекущийПользователь = ОбъектПользователь.Ссылка;

Иначе
Выборка = Результат.Выбрать();
Выборка.Следующий();

Если Выборка.ЭтоГруппа Тогда
ВызватьИсключение "Пользователь : " + ИмяПользователя + " не зарегистрирован. В справочнике присутствует группа с тем же именем";
Иначе
ТекущийПользователь = Выборка.Ссылка;
КонецЕсли;

КонецЕсли;

Возврат ТекущийПользователь;

КонецФункции

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

5. В документах пропишем Автоопределение Текущего пользователя

Код 1C v 8.2 УП

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

Код:

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

Код рабочий, но как правильнее сделать? Серверный вариант.

задан 15 янв в 18:23

Вадим Чиркунов's user avatar

если типовая конфигурация:

сообщить(ПараметрыСеанса.ТекущийПользователь);

Если у справочника пользователи есть реквизит ИдПользователяБазы :

Пользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдПользователяБазы",Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор));

ответ дан 17 янв в 11:57

Вадим Туманов's user avatar

// Автор библиотеки: ООО «1С-Софт». Все права защищены © 2021

// Типовая конфигурация Библиотека стандартных подсистем (далее — БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode

Как в управляемой форме получить текущего пользователя?

Я
   Genby

16.10.14 — 13:18

Как в управляемой форме получить текущего пользователя?

   Fish

1 — 16.10.14 — 13:20

Да так же, как и в обычной.

   Genby

2 — 16.10.14 — 13:20

дайте код плиз

   oslokot

3 — 16.10.14 — 13:23

лентяй

Пользователи.ТекущийПользователь()

   Fish

4 — 16.10.14 — 13:24

МенеджерПользователейИнформационнойБазы (InfoBaseUsersManager)

ТекущийПользователь (CurrentUser)

Синтаксис:

ТекущийПользователь()

Возвращаемое значение:

Тип: ПользовательИнформационнойБазы.

Описание пользователя, аутентифицированного в текущем сеансе. Если список пользователей информационной базы пустой, то в качестве текущего пользователя будет возвращен пользователь с пустым именем и идентификатором объекта, полученного методом НайтиПоИмени, если в параметре указано пустое имя.

Описание:

Получает описание текущего пользователя информационной базы.

При начале сеанса работы пользователя с информационной базой описание аутентифицированного пользователя сохраняется в сеансе, и оно становится текущим пользователем. Значения всех свойств текущего пользователя в течении сеанса не меняются и остаются такими, какими они были в момент аутентификации.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Примечание:

Доступен всем пользователям.

   Maxus43

5 — 16.10.14 — 13:24

имхается ему надо элемент справочника пользователи, ответсвенного поставить иль ещё что

   mehfk

6 — 16.10.14 — 13:24

(0) Делай так

ТекущийПользователь = Справочники.Пользователи.ПустаяСсылка();

ВвестиЗначение(ТекущийПользователь, «Я начинающий мордовский программист 1с и еще не знаю как определять текущего пользователя, поэтому выберите сами себя из справочника»);

   Fish

7 — 16.10.14 — 13:25

(5) Тогда код в (3) подойдёт, если типовая конфа.

   oslokot

8 — 16.10.14 — 13:26

(7) да-да, поэтому и дал наводку. В нетиповой пусть думает сам

   Genby

9 — 16.10.14 — 13:35

(3)

{ОбщийМодуль.РаботаСПочтовымиСообщениямиКлиент.Модуль(44,22)}: Переменная не определена (Пользователи)

                                                сообщить(<<?>>Пользователи.ТекущийПользователь()); (Проверка: Тонкий клиент)

   silent person

10 — 16.10.14 — 13:40

(9) ПользователиИнформационнойБазы.ТекущийПользователь()

а причем тут управляемая форма ?

   lxndr

11 — 16.10.14 — 13:45

(9)> Проверка: Тонкий клиент

Акцентируемся

   Genby

12 — 16.10.14 — 13:56

В УТ 11 есть процедура «ОткрытьФормуОтправкиПочтовогоСообщения»

так вот там ни одна из предложенных схем не работает

   lxndr

13 — 16.10.14 — 13:58

(12) общий модуль «Пользователи» не доступен на тонком клиенте

   Долбино

14 — 16.10.14 — 14:00

…а пользователя может и не быть!

   marvak

15 — 16.10.14 — 14:03

(12)

В УТ 11.2 получай через Пользователи.АвторизованныйПользователь()

В нужной упр. форме сделай какую нить функцию с вызовом &НаСервере, через нее и получай.

   marvak

16 — 16.10.14 — 14:10

Типа такого

&НаКлиенте

Процедура Команда1(Команда)

    ТекПольз = ПолучитьПольз();

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

&НаСервере

Функция ПолучитьПольз()

    Возврат Пользователи.АвторизованныйПользователь();    

КонецФункции // ()

   Rebelx

17 — 16.10.14 — 14:12

(16) есть же модуль ПользователиКлиентСервер

  

marvak

18 — 16.10.14 — 14:14

(17)

Ну тогда еще проще, я просто что первое вспомнил написал.

При работе с программными продуктами фирмы 1С, возникает потребность разделения доступа к базе 1С разных людей. Для этих целей, в базе 1С можно создать пользователей информационной базы. Пользователи 1С создаются на этапе внедрения программного продукта заказчику, и для каждой базы 1С свой индивидуальный набор пользователей. Из этой статьи вы узнаете, как создаются пользователи в базе 1С, как выполняются основные настройки пользователя, как работать с списком пользователей в 1С, и как определить текущего пользователя.

Как создать пользователя в 1С

Как правило, при работе с современными конфигурациями 1С, создание пользователей осуществляется непосредственно в клиентском режиме. Способы создания пользователей в клиентском режиме могут отличаться в зависимости от видов продуктов, поэтому подробно в этой статье они рассматриваться не будут.  Рассмотрим самый простой способ создания пользователя – используя конфигуратор 1С. Как правило, таким образом, создаются пользователи в учебных и тренировочных базах.  

Для создания пользователя в конфигураторе 1С необходимо сначала выполнить команду «Пользователи» меню «Администрирование» главного меню.

Как создать пользователя в 1С

Откроется список пользователей. Если вы только начали работать с информационной базой, то он будет пустой.

Список пользователей 1С

Для добавления нового пользователя следует выполнить команду «Добавить», в результате откроется окно «Пользователь».

Как создать пользователя в 1С

В этом окне следует заполнить поля Имя и Полное имя. То, что вы укажете в поле Имя, будет отображаться в списке выбора при входе в информационную базу.

Как создать пользователя в 1С

Пользователи 1С

В большинстве случаев, достаточно установить флаг «Аутентификация 1С: Предприятия», ввести пароль и подтверждение пароля. Данная возможность не доступна для учебных версий платформы 1С.

Как создать пользователя в 1С

Права пользователей 1С

Набор прав для пользователя устанавливается на закладке «Прочие», посредством установки отметок рядом с нужными ролями конфигурации.

Как создать пользователя в 1С

Хотя бы у одного пользователя информационной базы обязательно должна быть роль с полными правами!

Подробно о том, как работать с ролями читайте в этой статье: роли в 1С.

После того, как создали пользователя с полными правами, вы можете создать любое количество пользователей с разными наборами прав.

Как создать пользователя в 1С

Причем одному пользователю можно назначить несколько ролей.

Как создать пользователя в 1С

Список пользователей 1С.

В списке пользователей в конфигураторе 1С можно добавлять, добавлять копированием, открывать на редактирование и удалять пользователей при помощи соответствующих команд.

Пользователи 1С

Но самое интересное, в нём можно устанавливать отборы. Для этого следует нажать на кнопку Отбор, после этого, будет открыто окно Отбор, в котором можно настраивать разные варианты отборов.

Список пользователей в 1С

Например, можно отобрать только пользователей с полными правами.

Список пользователей в 1С

Список пользователей в 1С

Если нужно снять отбор, то следует воспользоваться кнопкой «Отключить отбор».

Список пользователей в 1С

Текущий пользователь 1С

Разберем, как определить текущего пользователя 1С.

Визуально сделать это достаточно просто. Текущего пользователя можно определить как в конфигураторе, так и в пользовательском клиенте. В конфигураторе необходимо или воспользоваться командой О программе (Главное меню – Справка), или иконкой «Показать информацию о программе».

Текущий пользователь 1С

В открывшемся окне «О программе» имя и полное имя текущего пользователя будут в разделе «Пользователь».

Текущий пользователь 1С

В пользовательском клиенте можно также воспользоваться командой О программе.

Путь для редакции платформы начиная с 8.3.15:

Текущий пользователь 1С

Путь для более старых редакции платформ (8.3.14 и ниже):

Текущий пользователь 1С

Откроется окно такое же, как при выполнении команды О программе конфигуратора 1С, где будет информация о текущем пользователе.

Также полное имя пользователя отображено в правом верхнем углу системной панели.

Для редакции платформы начиная с 8.3.15

Текущий пользователь 1С

Для более старых редакции платформ (8.3.14 и ниже).

Текущий пользователь 1С

Как определить активных пользователей информационной базы читайте в этой статье: активные пользователи 1С.

Для программного определения текущего пользователя нужно воспользоваться свойством глобального контекста ПользователиИнформационнойБазы, которое содержит общий объект МенеджерПользователейИнформационнойБазы. В этой статье не будем подробно разбирать работу с этим объектом, рассмотрим только, как определить имя текущего пользователя информационной базы.

Для демонстрации, создадим обработку ТекущийПользователь с формой, у которой будет  один реквизит с типом Строка и одна команда.

Обработка 1С

У команды будет два обработчика, на сервере и на клиенте.

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

&НаКлиенте
Процедура ОпределитьТекущегоПользователя(Команда)
	ОпределитьТекущегоПользователяНаСервере();
КонецПроцедуры 

Команда вернёт имя текущего пользователя.

Обработка 1С

Другие статьи по теме:

Права пользователей 1С

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

Это изображение имеет пустой атрибут alt; его имя файла - 1C-в-желтом-цвете-3D-221x300.png

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Это изображение имеет пустой атрибут alt; его имя файла - 1_в-желтом-цвете-3D-маленькая-221x300.jpg

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Понравилась статья? Поделить с друзьями:
  • Как найти массу сена в прямоугольном параллелепипеде
  • Как найти полярную звезду по созвездию ориона
  • Сбилась клавиатура на компьютере как исправить виндовс 10
  • Как найти немца в интернете
  • Как найти большую часть параллелограмма