#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если ЭтоНовый() И ЗащитаПерсональныхДанных.ЭтоОбъектСУничтоженнымиПерсональнымиДанными(Субъект) Тогда
ТекстСообщения = НСтр("ru = 'Персональные данные субъекта уже были уничтожены.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.Субъект", , Отказ);
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СрокДействия) И СрокДействия < ДатаПолучения Тогда
ТекстСообщения = НСтр("ru = 'Срок действия согласия противоречит дате получения.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.СрокДействия", , Отказ);
КонецЕсли;
Согласие = ЗащитаПерсональныхДанных.ДействующееСогласиеНаОбработкуПерсональныхДанных(Субъект, Организация,
ДатаПолучения, Ссылка);
Если Согласие <> Неопределено Тогда
Если ДатаПолучения = Согласие.ДатаПолучения Тогда
ТекстСообщения = НСтр("ru = 'На указанную дату уже зарегистрировано согласие.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.ДатаПолучения", , Отказ);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ОписаниеРегистрации = ЗащитаПерсональныхДанных.ОписаниеРегистрацииСогласияНаОбработкуПерсональныхДанных();
ОписаниеРегистрации.Организация = Организация;
ОписаниеРегистрации.Субъект = Субъект;
ОписаниеРегистрации.ДатаРегистрации = ДатаПолучения;
ОписаниеРегистрации.Действует = Истина;
ОписаниеРегистрации.СрокДействия = СрокДействия;
ЗащитаПерсональныхДанных.ЗарегистрироватьСведенияОСогласииНаОбработкуПерсональныхДанных(Движения, ОписаниеРегистрации);
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли