ЗаполнитьВсеРазрешеныПредставление (БСП)

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

Заполнить все разрешены представление. Только для внутреннего использования.

// Только для внутреннего использования.
Процедура ЗаполнитьВсеРазрешеныПредставление(Форма, ОписаниеВидаДоступа, ДобавитьКоличествоЗначений = Истина) Экспорт
	
	Параметры = ПараметрыФормыРедактированияРазрешенныхЗначений(Форма);
	
	Если ОписаниеВидаДоступа.ВсеРазрешены Тогда
		Если Форма.ЭтоПрофильГруппДоступа И НЕ ОписаниеВидаДоступа.Предустановленный Тогда
			Имя = "ВначалеВсеРазрешены";
		Иначе
			Имя = "ВсеРазрешены";
		КонецЕсли;
	Иначе
		Если Форма.ЭтоПрофильГруппДоступа И НЕ ОписаниеВидаДоступа.Предустановленный Тогда
			Имя = "ВначалеВсеЗапрещены";
		Иначе
			Имя = "ВсеЗапрещены";
		КонецЕсли;
	КонецЕсли;
	
	ОписаниеВидаДоступа.ВсеРазрешеныПредставление =
		Форма.ПредставленияВсеРазрешены.НайтиСтроки(Новый Структура("Имя", Имя))[0].Представление;
	
	Если НЕ ДобавитьКоличествоЗначений Тогда
		Возврат;
	КонецЕсли;
	
	Если Форма.ЭтоПрофильГруппДоступа И НЕ ОписаниеВидаДоступа.Предустановленный Тогда
		Возврат;
	КонецЕсли;
	
	Отбор = ОтборВТаблицахФормыРедактированияРазрешенныхЗначений(Форма, ОписаниеВидаДоступа.ВидДоступа);
	
	КоличествоЗначений = Параметры.ЗначенияДоступа.НайтиСтроки(Отбор).Количество();
	
	Если Форма.ЭтоПрофильГруппДоступа Тогда
		Если КоличествоЗначений = 0 Тогда
			ЧислоИПредмет = НСтр("ru = 'не назначены'");
		Иначе
			ЧислоИПредмет = Формат(КоличествоЗначений, "ЧГ=") + " "
				+ ПользователиСлужебныйКлиентСервер.ПредметЦелогоЧисла(КоличествоЗначений,
					"", НСтр("ru = 'значение,значения,значений,,,,,,0'"));
		КонецЕсли;
		
		ОписаниеВидаДоступа.ВсеРазрешеныПредставление =
			ОписаниеВидаДоступа.ВсеРазрешеныПредставление
				+ " (" + ЧислоИПредмет + ")";
		Возврат;
	КонецЕсли;
	
	Если КоличествоЗначений = 0 Тогда
		Представление = ?(ОписаниеВидаДоступа.ВсеРазрешены,
			НСтр("ru = 'Все разрешены, без исключений'"),
			НСтр("ru = 'Все запрещены, без исключений'"));
	Иначе
		ЧислоИПредмет = Формат(КоличествоЗначений, "ЧГ=") + " "
			+ ПользователиСлужебныйКлиентСервер.ПредметЦелогоЧисла(КоличествоЗначений,
				"", НСтр("ru = 'значения,значений,значений,,,,,,0'"));
		
		Представление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			?(ОписаниеВидаДоступа.ВсеРазрешены,
				НСтр("ru = 'Все разрешены, кроме %1'"),
				НСтр("ru = 'Все запрещены, кроме %1'")),
			ЧислоИПредмет);
	КонецЕсли;
	
	ОписаниеВидаДоступа.ВсеРазрешеныПредставление = Представление;
	
КонецПроцедуры

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

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

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

ПредставленияЗаполнены (БСП)

ВидыДоступаВсеРазрешеныПредставлениеПриИзменении (БСП)

ВидыДоступаВсеРазрешеныПредставлениеОбработкаВыбора (БСП)

ЗаполнитьПредставленияПредопределенныхВариантовОтчетов (БСП)

РазрешитьРаботуСВнешнимиРесурсами (БСП)

ДоступРазрешен (БСП)

ЧтениеРазрешено (БСП)

ИзменениеРазрешено (БСП)

ПроверитьЧтениеРазрешено (БСП)

Синтакс-помощник БСП с нейросетевым ассистентом