helpf.pro
Регистрация
 0 
Распечатать

1С 8.2 УП : Определение текущего Пользователя в системе, подстановка пользователя в документы

1. Создаем справочник Пользователи
2. ПараметрыСеанса.ТекущийПользователь - тип справочник Пользователи
3. В модуле Сеанса пишем:
Код 1C v 8.2 УП
 Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
ТекущийПользователь = ОбщийМодульСистема.ОпределитьТекущегоПользователя();
ПараметрыСеанса.ТекущийПользователь = ТекущийПользователь;
КонецПроцедуры

4. Создаем общий модуль ОбщийМодульСистема в нем пишем:
Код 1C v 8.2 УП
 // Функция возвращает ссылку на элемент справочника "Пользователи",
// соответствующий текущему пользователю информационной базы.
Функция ОпределитьТекущегоПользователя() экспорт

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

5. В документах пропишем Автоопределение Текущего пользователя
Код 1C v 8.2 УП
 &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Автор = ОбщийМодульСистема.ПолучитьТекущегоПользователя();
Объект.Фирма = Объект.Автор.Фирма;
КонецПроцедуры
Разместил:   Версии: | 8.2 УП |  Дата:   Прочитано: 10839
 0 
Распечатать
Возможно, вас также заинтересует
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Посмотреть все результаты поиска похожих
Комментарии
Lavr
01.04.2016 13:54Комментарий: 1
Lavr

Здравствуйте, а как добавление в Справочник Сотрудники сделать? В реквизит Сотрудник

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