ПодготовитьНаборыЗначенийДоступаКЗаписи (БСП)

Автор: 1С
ОбщийМодуль.УправлениеДоступомСлужебный
БСП

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

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

НачатьОбновлениеПорцииНаборовЗначенийДоступа (БСП)

ЗаписатьЗависимыеНаборыЗначенийДоступаПриЗаписи (БСП)

ЗаписатьНаборыЗначенийДоступаПриЗаписи (БСП)

ПроверитьДоступПередЗаписьюНабораЗаписей (БСП)

ЗаполнитьНаборыЗначенийДоступа (БСП)

ОбновитьНаборыЗначенийДоступа (БСП)

TurboConf ИР адаптер 2.63