Информационный поток
Задания вакансии материалы разработки сообщения форума
Рубрики статей и материалов
Яндекс-директ

Настройки пользователей в УПП

  • Добавить свою публикацию
  • для этого требуется регистрация

Общие сведения

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

Изображение

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

Режим 1С:Предприятие

Откроем окно настрое пользователя (не важно какого). Увидим примерно следующее:

Изображение

Продемонстрируем влияние настроек на работу пользователя. Изменим настройку "Запретить открытие нескольких сеансов" в значение ИСТИНА. Затем, не закрывая текущий сеанс, попытаемся войти в программу под той же учетной записью. Система нам выдаст предупреждение и не закроет сеанс: 

Изображение

Если мы вернем настройку в прежнее состояние, то запуск нескольких сеансов станет возможным.

Как Вы могли заметить, список доступным настроек пользователей достаточно обширный. Подробнее о назначении каждой из них Вы можете прочитать во встроеной справке конфигурации "Управление производственным предприятием", за исключением тех случаев, когда настройки были добавлены пользователями/администратором и не являются предопределенными.

Режим конфигуратора

Механизм настроек пользователей имеет достаточно простую реализацию. Используются всего два объекта в дереве конфигурации: 

  1. План видов характеристик "НастройкиПользователей".
  2. Регистр сведений "НастройкиПользователей".

Изображение

План видов характеристик определяет тип значения характеристики, сохраняемой в регистре сведений "НастройкиПользователей". Вот список некоторых доступных типов значений, установленный в типовой конфигурации:

Изображение

Для элемента "Запретить открытие нескольких сеансов" плана видов характеристик "Настройки пользователей" установлен тип "Булево". При запуске программы  производится проверка включения этой опции. Если значение для настройки по текущему пользователю установлено в ИСТИНА, тогда выполняется проверка наличия запущенных сеаносв этим пользователем.

 

Вот часть кода проверки из модуля обычного приложения события "ПриНачалеРаботыСистемы":

// При начале работы системы
//
Процедура ПриНачалеРаботыСистемы()

/// .............................

    // Получаем значение настройки
	ЗапретитьОткрытиеНесколькихСеансов = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(
                                                  глЗначениеПеременной("глТекущийПользователь"), 
                                                  "ЗапретитьОткрытиеНесколькихСеансов"
                                                                 );
	Если ЗапретитьОткрытиеНесколькихСеансов Тогда
		ТекущийНомерСоединения = НомерСоединенияИнформационнойБазы();
		УникальныйИдентификаторПользователя = 
                      ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
		// Ищем текущего пользователия ИБ в уже подключенных сеансах
		МассивСоединений = ПолучитьСоединенияИнформационнойБазы();
		Для Каждого ТекСоединение Из МассивСоединений Цикл
			Если (ТекСоединение.ИмяПриложения = "1CV8") 
			   И (НЕ ТекСоединение.НомерСоединения = ТекущийНомерСоединения)
			   И (НЕ ТекСоединение.Пользователь = неопределено)
			   И (ТекСоединение.Пользователь.УникальныйИдентификатор = 
                                  УникальныйИдентификаторПользователя) Тогда
			  
				Предупреждение("Пользователем с таким именем уже выполнен вход в систему");
				ЗавершитьРаботуСистемы(Ложь);
				Возврат;
				
			КонецЕсли;
		КонецЦикла;	
	КонецЕсли;

// .....................................

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

 Самый интересный момент - это процедура "ПолучитьЗначениеПоУмолчанию". Первым параметром в нее передается текущий пользователь (ссылка на элемент справочника "Пользователи"), вторым - имя элемента плана видов характеристик "Настройки пользователей", для которого нужно получить значение. Вот так выглядит код обработчика этой функции:

 // Функция возвращает значение по умолчанию для передаваемого пользователя и настройки.
//
// Параметры:
// Пользователь - текущий пользователь программы
// Настройка - признак, для которого возвращается значение по умолчанию
//
// Возвращаемое значение:
// Значение по умолчанию для настройки.
//
Функция ПолучитьЗначениеПоУмолчанию(Пользователь, Настройка) Экспорт	
    Если Пользователь = глЗначениеПеременной("глТекущийПользователь") Тогда		
		НастройкаСсылка = ПланыВидовХарактеристик.НастройкиПользователей[Настройка];		
		КэшНастроекПользователей = глЗначениеПеременной("ЗначенияНастроекПользователей");
		ЗначениеНастройки = КэшНастроекПользователей[НастройкаСсылка];
		Если ЗначениеНастройки = Неопределено Тогда
			ЗначениеНастройки = ПолучитьЗначениеПоУмолчаниюПользователя(Пользователь, Настройка);
			КэшНастроекПользователей[НастройкаСсылка] = ЗначениеНастройки;
			#Если НЕ Клиент И НЕ ВнешнееСоединение Тогда
				// На сервере cохраним значение в КЭШе
				// В других случаях значение получено "по ссылке", сохранять не требуется
				глЗначениеПеременнойУстановить("ЗначенияНастроекПользователей", 
                                               КэшНастроекПользователей, Истина);
			#КонецЕсли
		КонецЕсли;	
		Возврат ЗначениеНастройки;		
	КонецЕсли;
	
	Возврат ПолучитьЗначениеПоУмолчаниюПользователя(Пользователь, Настройка);
КонецФункции // ПолучитьЗначениеПоУмолчанию()

Здесь, если получаем настройку для текущего пользователя, то ее значение пытаемся получить из кэша. В остальных случаях непосредственно из регистра сведений "НастройкиПользователей".

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

 
0
Читайте также
Настройка 1С 7.7
1С7.7 настраивается довольно просто, это могут сделать и сами пользователи. После установки производится обслуживание и сопровождение 1С 7.7
Вход под любым пользователем, если Вы администратор
Как войти в программу под пользователем, пароль которого вы не знаете
Разработки
2 юрлица и один Frontol
Продажа товаров от разных юридических лиц на одной кассе
Конфигурация "ПрофСпец"
Конфигурация для подготовки к экзамену 1С спец 8.2
Копирование настроек пользователя
Как скопировать настройки старого пользователя
Еще от автора
≡ к списку статей