ДействующееСогласиеНаОбработкуПерсональныхДанных (БСП)

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

Действующее согласие на обработку персональных данных. Возвращает сведения о действующем на указанную дату согласии субъекта на обработку персональных данных.

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

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

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

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

ОткрытьФормуСогласиеНаОбработкуПерсональныхДанных (БСП)

ОписаниеРегистрацииСогласияНаОбработкуПерсональныхДанных (БСП)

ЗарегистрироватьСведенияОСогласииНаОбработкуПерсональныхДанных (БСП)

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

ДополнитьДанныеОрганизацииОператораПерсональныхДанных (БСП)

ЗаполнитьФИОФизическогоЛица (БСП)

ДобавитьКомандуПечатиСогласияНаОбработкуПерсональныхДанных (БСП)

ОбработкаОповещенияФормы (БСП)

НастройкиСкрытияПерсональныхДанныхПриИзменении (БСП)

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