ПараметрыВопросаПодтвержденияСкрытия (БСП)

Автор: 1С
ОбщийМодуль.ЗащитаПерсональныхДанныхВызовСервера
БСП

Параметры вопроса подтверждения скрытия.

Функция ПараметрыВопросаПодтвержденияСкрытия(Субъекты) Экспорт
	
	ТекстВопроса = "";
	ПараметрыВопроса = Новый Структура;
	
	СкрываемыеСубъекты = Новый Массив;
	СкрываемыеСубъектыБезСогласия = Новый Массив;
	СкрываемыеСубъектыССогласием = Новый Массив;
	
	ДатаСеанса = НачалоДня(ТекущаяДатаСеанса());
	ПустаяДата = Дата(1, 1, 1);
	
	ДнейДоСкрытия = ЗащитаПерсональныхДанных.ДнейДоСкрытияПерсональныхДанныхСубъектов();
	НастройкиСубъектов = ЗащитаПерсональныхДанных.ПрочитатьНастройкиСкрытияСубъектов(Субъекты);
	
	Для Каждого НастройкиСкрытия Из НастройкиСубъектов Цикл
		
		Субъект = НастройкиСкрытия.Ключ;
		Настройки = НастройкиСкрытия.Значение;
		
		Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено 
			Или Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено Тогда
			
			Если Настройки.Состояние = Перечисления.СостоянияСубъектовДляСкрытия.СкрытиеОтменено Тогда
				ТекстПричины = НСтр("ru = 'Скрытие ранее отменено по причине: %1.'");
				ТекстПричины = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстПричины, Настройки.ПричинаОтменыСкрытия);
			Иначе
				ТекстПричины = НСтр("ru = 'Скрытие уже выполнено.'");
			КонецЕсли;
			
			ТекстСообщения = НСтр("ru = 'Персональные данные субъекта «%1» не могут быть скрыты.
				|%2'");
			ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Субъект, ТекстПричины);
			ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
			
			Продолжить;
			
		ИначеЕсли ЗначениеЗаполнено(Настройки.Основание) 
			И (Настройки.ДатаСкрытия = ПустаяДата Или Настройки.ДатаСкрытия - ДнейДоСкрытия * 86400 > ДатаСеанса) Тогда
			СкрываемыеСубъектыССогласием.Добавить(Субъект);
		Иначе
			СкрываемыеСубъектыБезСогласия.Добавить(Субъект);
		КонецЕсли;
		
		СкрываемыеСубъекты.Добавить(Субъект);
		
	КонецЦикла;
	
	Если ЗначениеЗаполнено(СкрываемыеСубъектыБезСогласия) Тогда
		
		Заголовок = НСтр("ru = 'Будут скрыты персональные данные субъектов:'");
		ТекстВопроса = ПредставлениеСпискаСубъектов(Заголовок, СкрываемыеСубъектыБезСогласия);
		
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СкрываемыеСубъектыССогласием) Тогда
		
		Заголовок = НСтр("ru = 'Несмотря на полученное согласие на обработку ПДн, будут скрыты персональные данные субъектов:'");
		ТекстВопроса = ?(ЗначениеЗаполнено(ТекстВопроса), ТекстВопроса + Символы.ПС, "") + ПредставлениеСпискаСубъектов(Заголовок, СкрываемыеСубъектыССогласием);
		
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ТекстВопроса) Тогда
		ТекстВопроса = ТекстВопроса + Символы.ПС + НСтр("ru = 'Восстановление данных будет невозможно. Продолжить?'");
	КонецЕсли;
	
	ПараметрыВопроса.Вставить("Субъекты", СкрываемыеСубъекты);
	ПараметрыВопроса.Вставить("ТекстВопроса", ТекстВопроса);
	
	Возврат ПараметрыВопроса;
	
КонецФункции

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

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

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

Показать вопрос

ПоказатьПодтверждениеЗакрытияПроизвольнойФормы (БСП)

ПараметрыВопросаПользователю (БСП)

ПустоеПодтверждение (БСП)

ОшибкаРазбораПодтверждения (БСП)

ИспользоватьСкрытиеПерсональныхДанныхСубъектов (БСП)

ДнейДоСкрытияПерсональныхДанныхСубъектов (БСП)

СкрытьПерсональныеДанныеСубъектов (БСП)

ПоказатьПодтверждениеЗакрытияФормы (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз