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

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

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

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

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

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

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

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

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