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