1. Создаем справочник Пользователи
2. ПараметрыСеанса.ТекущийПользователь — тип справочник Пользователи
3. В модуле Сеанса пишем:
Код 1C v 8.2 УП
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
ТекущийПользователь = ОбщийМодульСистема.ОпределитьТекущегоПользователя();
ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;
КонецПроцедуры
4. Создаем общий модуль ОбщийМодульСистема в нем пишем:
Код 1C v 8.2 УП
// Функция возвращает ссылку на элемент справочника "Пользователи",
// соответствующий текущему пользователю информационной базы.
Функция ОпределитьТекущегоПользователя() экспорт
Если ПустаяСтрока(ИмяПользователя()) Тогда
ИмяПользователя = "НеАвторизован";
ПолноеИмяПользователя = "Не авторизован";
Иначе
ИмяПользователя = ИмяПользователя();
Если ПустаяСтрока(ПолноеИмяПользователя()) Тогда
ПолноеИмяПользователя = ИмяПользователя;
Иначе
ПолноеИмяПользователя = ПолноеИмяПользователя();
КонецЕсли;
КонецЕсли;
ДлинаКодаПользователя = Метаданные.Справочники.Пользователи.ДлинаКода;
Если СтрДлина(ИмяПользователя) > ДлинаКодаПользователя Тогда
ИмяПользователя = Лев(ИмяПользователя, ДлинаКодаПользователя);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| Пользователи.Ссылка КАК Ссылка,
| Пользователи.ЭтоГруппа
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.Код = &Код";
Запрос.УстановитьПараметр("Код", ИмяПользователя);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
ОбъектПользователь = Справочники.Пользователи.СоздатьЭлемент();
ОбъектПользователь.Код = ИмяПользователя;
ОбъектПользователь.Наименование = ПолноеИмяПользователя;
Попытка
ОбъектПользователь.Записать();
Исключение
ВызватьИсключение "Пользователь : " + ИмяПользователя + " не был найден в справочнике пользователей. Возникла ошибка при добавлении пользователя в справочник.
|" + ОписаниеОшибки();
Возврат Справочники.Пользователи.ПустаяСсылка();
КонецПопытки;
ТекущийПользователь = ОбъектПользователь.Ссылка;
Иначе
Выборка = Результат.Выбрать();
Выборка.Следующий();
Если Выборка.ЭтоГруппа Тогда
ВызватьИсключение "Пользователь : " + ИмяПользователя + " не зарегистрирован. В справочнике присутствует группа с тем же именем";
Иначе
ТекущийПользователь = Выборка.Ссылка;
КонецЕсли;
КонецЕсли;
Возврат ТекущийПользователь;
КонецФункции
Функция ПолучитьТекущегоПользователя() Экспорт
Возврат ПараметрыСеанса.ТекущийПользователь;
КонецФункции
5. В документах пропишем Автоопределение Текущего пользователя
Код 1C v 8.2 УП
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Автор = ОбщийМодульСистема.ПолучитьТекущегоПользователя();
Объект.Фирма = Объект.Автор.Фирма;
КонецПроцедуры
Код:
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
ОрганизацияТекущегоПользователя = Справочники.Пользователи.НайтиПоНаименованию(ТекущийПользователь).Организация;
Сообщить(ОрганизацияТекущегоПользователя);
Код рабочий, но как правильнее сделать? Серверный вариант.
задан 15 янв в 18:23
если типовая конфигурация:
сообщить(ПараметрыСеанса.ТекущийПользователь);
Если у справочника пользователи есть реквизит ИдПользователяБазы :
Пользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдПользователяБазы",Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор));
ответ дан 17 янв в 11:57
// Автор библиотеки: ООО «1С-Софт». Все права защищены © 2021
// Типовая конфигурация Библиотека стандартных подсистем (далее — БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode
Как в управляемой форме получить текущего пользователя? |
Я |
16.10.14 — 13:18
Как в управляемой форме получить текущего пользователя?
1 — 16.10.14 — 13:20
Да так же, как и в обычной.
2 — 16.10.14 — 13:20
дайте код плиз
3 — 16.10.14 — 13:23
лентяй
Пользователи.ТекущийПользователь()
4 — 16.10.14 — 13:24
МенеджерПользователейИнформационнойБазы (InfoBaseUsersManager)
ТекущийПользователь (CurrentUser)
Синтаксис:
ТекущийПользователь()
Возвращаемое значение:
Тип: ПользовательИнформационнойБазы.
Описание пользователя, аутентифицированного в текущем сеансе. Если список пользователей информационной базы пустой, то в качестве текущего пользователя будет возвращен пользователь с пустым именем и идентификатором объекта, полученного методом НайтиПоИмени, если в параметре указано пустое имя.
Описание:
Получает описание текущего пользователя информационной базы.
При начале сеанса работы пользователя с информационной базой описание аутентифицированного пользователя сохраняется в сеансе, и оно становится текущим пользователем. Значения всех свойств текущего пользователя в течении сеанса не меняются и остаются такими, какими они были в момент аутентификации.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:
Доступен всем пользователям.
5 — 16.10.14 — 13:24
имхается ему надо элемент справочника пользователи, ответсвенного поставить иль ещё что
6 — 16.10.14 — 13:24
(0) Делай так
ТекущийПользователь = Справочники.Пользователи.ПустаяСсылка();
ВвестиЗначение(ТекущийПользователь, «Я начинающий мордовский программист 1с и еще не знаю как определять текущего пользователя, поэтому выберите сами себя из справочника»);
7 — 16.10.14 — 13:25
(5) Тогда код в (3) подойдёт, если типовая конфа.
8 — 16.10.14 — 13:26
(7) да-да, поэтому и дал наводку. В нетиповой пусть думает сам
9 — 16.10.14 — 13:35
(3)
{ОбщийМодуль.РаботаСПочтовымиСообщениямиКлиент.Модуль(44,22)}: Переменная не определена (Пользователи)
сообщить(<<?>>Пользователи.ТекущийПользователь()); (Проверка: Тонкий клиент)
10 — 16.10.14 — 13:40
(9) ПользователиИнформационнойБазы.ТекущийПользователь()
а причем тут управляемая форма ?
11 — 16.10.14 — 13:45
(9)> Проверка: Тонкий клиент
Акцентируемся
12 — 16.10.14 — 13:56
В УТ 11 есть процедура «ОткрытьФормуОтправкиПочтовогоСообщения»
так вот там ни одна из предложенных схем не работает
13 — 16.10.14 — 13:58
(12) общий модуль «Пользователи» не доступен на тонком клиенте
14 — 16.10.14 — 14:00
…а пользователя может и не быть!
15 — 16.10.14 — 14:03
(12)
В УТ 11.2 получай через Пользователи.АвторизованныйПользователь()
В нужной упр. форме сделай какую нить функцию с вызовом &НаСервере, через нее и получай.
16 — 16.10.14 — 14:10
Типа такого
&НаКлиенте
Процедура Команда1(Команда)
ТекПольз = ПолучитьПольз();
КонецПроцедуры
&НаСервере
Функция ПолучитьПольз()
Возврат Пользователи.АвторизованныйПользователь();
КонецФункции // ()
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С.
Визуально сделать это достаточно просто. Текущего пользователя можно определить как в конфигураторе, так и в пользовательском клиенте. В конфигураторе необходимо или воспользоваться командой О программе (Главное меню – Справка), или иконкой «Показать информацию о программе».
В открывшемся окне «О программе» имя и полное имя текущего пользователя будут в разделе «Пользователь».
В пользовательском клиенте можно также воспользоваться командой О программе.
Путь для редакции платформы начиная с 8.3.15:
Путь для более старых редакции платформ (8.3.14 и ниже):
Откроется окно такое же, как при выполнении команды О программе конфигуратора 1С, где будет информация о текущем пользователе.
Также полное имя пользователя отображено в правом верхнем углу системной панели.
Для редакции платформы начиная с 8.3.15
Для более старых редакции платформ (8.3.14 и ниже).
Как определить активных пользователей информационной базы читайте в этой статье: активные пользователи 1С.
Для программного определения текущего пользователя нужно воспользоваться свойством глобального контекста ПользователиИнформационнойБазы, которое содержит общий объект МенеджерПользователейИнформационнойБазы. В этой статье не будем подробно разбирать работу с этим объектом, рассмотрим только, как определить имя текущего пользователя информационной базы.
Для демонстрации, создадим обработку ТекущийПользователь с формой, у которой будет один реквизит с типом Строка и одна команда.
У команды будет два обработчика, на сервере и на клиенте.
&НаСервере Процедура ОпределитьТекущегоПользователяНаСервере() ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; КонецПроцедуры &НаКлиенте Процедура ОпределитьТекущегоПользователя(Команда) ОпределитьТекущегоПользователяНаСервере(); КонецПроцедуры
Команда вернёт имя текущего пользователя.
Другие статьи по теме:
Права пользователей 1С
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 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