ОтключитьНапоминание (БСП)

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

Отключить напоминание. Отключает напоминание, если оно есть. Если напоминание периодическое, подключает его на ближайшую дату по расписанию.

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

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

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

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

УдалитьНапоминание (БСП)

ПодключитьНапоминание (БСП)

ПодключитьПроизвольноеНапоминание (БСП)

ОтключитьНебезопасноеСодержимое (БСП)

УстановитьНапоминание (БСП)

НайтиНапоминания (БСП)

ПроверитьТекущиеНапоминания (БСП)

ОписаниеНапоминания (БСП)

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