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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

5. В документах пропишем Автоопределение Текущего пользователя
Код 1C v 8.2 УП
 &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Автор = ОбщийМодульСистема.ПолучитьТекущегоПользователя();
Объект.Фирма = Объект.Автор.Фирма;
КонецПроцедуры
Разместил:   Версии: | 8.2 УП |  Дата:   Прочитано: 49472
 +1 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое
COM-подключение к базе 7.7 из .NET, .NET Core 1
Инсталяция: dotnet add package sabatex.V1C77 или добавить через NUGET пакет sabatex.V1C77. Добавить пространство имен: using sabatex.V1C77; пример использованя: ---C# static void Main(string args) { // создаем строку соединен
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.