3_1_9_261

This commit is contained in:
Компания 1С committed 2024-01-16 22:47:00 +03:00
1 parent 964f40af7d
commit b3f016d3f3
116 files changed
+2283 -1640

No files matched your search

@@ -773,7 +773,7 @@
Если ОпределенаСледующаяДатаПоРасписанию Тогда
Напоминание.ВремяСобытия = СледующаяДатаПоРасписанию;
Напоминание.СрокНапоминания = Напоминание.ВремяСобытия - Напоминание.ИнтервалВремениНапоминания;
ПодключитьНапоминание(Напоминание, БезОповещенияКлиента);
ПодключитьНапоминание(Напоминание, , БезОповещенияКлиента);
КонецЕсли;
КонецЕсли;
@@ -947,37 +947,47 @@
// @skip-check query-in-loop - нет обращения к данным ИБ в запросе.
ПодошедшееВремяСобытия = ГрафикСобытия(Расписание, Напоминание.ВремяСобытия + 1, ТекущаяДатаСеанса());
ВремяСобытия = Напоминание.ВремяСобытия;
ТребуетсяПереподключитьПоРасписанию = Ложь;
НапоминаниеПросрочено = Ложь;
// - подошло следующее время события по расписанию;
Если ПодошедшееВремяСобытия.Количество() > 0
// - указано "Время завершения" в расписании регламентного задания и оно просрочено;
Или ЗначениеЗаполнено(Расписание.ВремяЗавершения) И ТекущаяДатаСеанса() > (Напоминание.ВремяСобытия + (Расписание.ВремяЗавершения - Расписание.ВремяНачала))
Если ПодошедшееВремяСобытия.Количество() > 0 Тогда
ВремяСобытия = ПодошедшееВремяСобытия[ПодошедшееВремяСобытия.ВГраница()];
ТребуетсяПереподключитьПоРасписанию = Истина;
КонецЕсли;
// - указано "Время завершения" в расписании регламентного задания и оно просрочено;
Если ЗначениеЗаполнено(Расписание.ВремяЗавершения) И ТекущаяДатаСеанса() > (ВремяСобытия + (Расписание.ВремяЗавершения - Расписание.ВремяНачала))
// - напоминание ежегодное, но уже прошел месяц со времени события;
Или ГрафикСобытияНаГод.Количество() = 1 И ТекущаяДатаСеанса() > ДобавитьМесяц(Напоминание.ВремяСобытия, 1)
Или ГрафикСобытияНаГод.Количество() = 1 И ТекущаяДатаСеанса() > ДобавитьМесяц(ВремяСобытия, 1)
// - напоминание ежемесячное, но уже прошла неделя со времени события.
Или ГрафикСобытияНаГод.Количество() = 12 И ТекущаяДатаСеанса() > Напоминание.ВремяСобытия + 60*60*24*7 Тогда
НачатьТранзакцию();
Попытка
Если ПодошедшееВремяСобытия.Количество() > 0 Тогда
// @skip-check query-in-loop - запись данных набором с чтением в цикле.
ОтключитьНапоминание(Напоминание, Ложь, ПриЗапуске);
ПараметрыНапоминания = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Напоминание);
ПараметрыНапоминания.Расписание = Напоминание.Расписание.Получить();
// @skip-check query-in-loop - запись данных набором с чтением в цикле.
Напоминание = СоздатьНапоминание(ПараметрыНапоминания);
Напоминание.ВремяСобытия = ПодошедшееВремяСобытия[ПодошедшееВремяСобытия.ВГраница()];
Напоминание.СрокНапоминания = Напоминание.ВремяСобытия - Напоминание.ИнтервалВремениНапоминания;
ПодключитьНапоминание(Напоминание,, ПриЗапуске);
КонецЕсли;
Или ГрафикСобытияНаГод.Количество() = 12 И ТекущаяДатаСеанса() > ВремяСобытия + 60*60*24*7 Тогда
НапоминаниеПросрочено = Истина;
КонецЕсли;
Если ТребуетсяПереподключитьПоРасписанию Тогда
НачатьТранзакцию();
Попытка
// @skip-check query-in-loop - запись данных набором с чтением в цикле.
ОтключитьНапоминание(Напоминание, НапоминаниеПросрочено, ПриЗапуске);
Если Не НапоминаниеПросрочено Тогда
ПараметрыНапоминания = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Напоминание);
ПараметрыНапоминания.Расписание = Напоминание.Расписание.Получить();
// @skip-check query-in-loop - запись данных набором с чтением в цикле.
ОтключитьНапоминание(Напоминание, Истина, ПриЗапуске);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Напоминания пользователя'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.НапоминанияПользователя, , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Напоминание = СоздатьНапоминание(ПараметрыНапоминания);
Напоминание.ВремяСобытия = ВремяСобытия;
Напоминание.СрокНапоминания = Напоминание.ВремяСобытия - Напоминание.ИнтервалВремениНапоминания;
ПодключитьНапоминание(Напоминание,, ПриЗапуске);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Напоминания пользователя'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, Метаданные.РегистрыСведений.НапоминанияПользователя, , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
КонецЦикла;