3_1_2_252
This commit is contained in:
1 parent
4a5431da44
commit
640377487a
327 files changed
+7149
-6299
No files matched your search
@@ -139,7 +139,8 @@
|
||||
// Параметры:
|
||||
// Расписание - РасписаниеРегламентногоЗадания - любое расписание.
|
||||
// ПредыдущаяДата - Дата - дата предыдущего события по расписанию.
|
||||
//
|
||||
// ИскатьТолькоБудущиеДаты - Булево - Ложь, если требуется найти дату в прошлом.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Дата - дата и время следующего события по расписанию.
|
||||
//
|
||||
@@ -508,46 +509,51 @@
|
||||
Возврат ПользовательИБ.Имя;
|
||||
КонецФункции
|
||||
|
||||
// Получает значение реквизита для любого объекта ссылочного типа.
|
||||
Функция ПолучитьЗначениеРеквизитаПредмета(СсылкаНаПредмет, ИмяРеквизита) Экспорт
|
||||
|
||||
Результат = Неопределено;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| Таблица.&Реквизит КАК Реквизит
|
||||
|ИЗ
|
||||
| &ИмяТаблицы КАК Таблица
|
||||
|ГДЕ
|
||||
| Таблица.Ссылка = &Ссылка";
|
||||
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", СсылкаНаПредмет.Метаданные().ПолноеИмя());
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизит", ИмяРеквизита);
|
||||
|
||||
Запрос.Текст = ТекстЗапроса;
|
||||
|
||||
Запрос.УстановитьПараметр("Ссылка", СсылкаНаПредмет);
|
||||
|
||||
Результат = Запрос.Выполнить();
|
||||
|
||||
Выборка = Результат.Выбрать();
|
||||
|
||||
Если Выборка.Следующий() Тогда
|
||||
Результат = Выборка.Реквизит;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет изменения реквизитов предметов, на которые есть пользовательская подписка,
|
||||
// изменяет срок напоминания в случае необходимости.
|
||||
Процедура ОбновитьНапоминанияПоПредметам(Предметы) Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ТаблицаРезультата = НапоминанияПоПредметам(Предметы);
|
||||
|
||||
Для Каждого СтрокаТаблицы Из ТаблицаРезультата Цикл
|
||||
ДатаПредмета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаТаблицы.Источник, СтрокаТаблицы.ИмяРеквизитаИсточника);
|
||||
Если (ДатаПредмета - СтрокаТаблицы.ИнтервалВремениНапоминания) <> СтрокаТаблицы.ВремяСобытия Тогда
|
||||
ОтключитьНапоминание(СтрокаТаблицы, Ложь);
|
||||
СтрокаТаблицы.СрокНапоминания = ДатаПредмета - СтрокаТаблицы.ИнтервалВремениНапоминания;
|
||||
СтрокаТаблицы.ВремяСобытия = ДатаПредмета;
|
||||
Если СтрокаТаблицы.Расписание.Получить() <> Неопределено Тогда
|
||||
СтрокаТаблицы.ПовторятьЕжегодно = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыНапоминания = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицы);
|
||||
ПараметрыНапоминания.Расписание = СтрокаТаблицы.Расписание.Получить();
|
||||
Напоминание = СоздатьНапоминание(ПараметрыНапоминания);
|
||||
ПодключитьНапоминание(Напоминание);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Предметы - Массив из ЛюбаяСсылка -
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - список напоминаний:
|
||||
// * Пользователь - СправочникСсылка.Пользователи -
|
||||
// * ВремяСобытия - Дата -
|
||||
// * Источник - ОпределяемыйТип.ПредметНапоминания -
|
||||
// * СрокНапоминания - Дата -
|
||||
// * Описание - Строка -
|
||||
// * СпособУстановкиВремениНапоминания - ПеречислениеСсылка.СпособыУстановкиВремениНапоминания -
|
||||
// * ИнтервалВремениНапоминания - Число -
|
||||
// * ИмяРеквизитаИсточника - Строка -
|
||||
// * Расписание - ХранилищеЗначения -
|
||||
// * ПовторятьЕжегодно - Булево -
|
||||
//
|
||||
Функция НапоминанияПоПредметам(Знач Предметы)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
@@ -568,27 +574,12 @@
|
||||
| И Напоминания.Источник В(&Предметы)";
|
||||
|
||||
Запрос.УстановитьПараметр("Предметы", Предметы);
|
||||
|
||||
ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
Для Каждого СтрокаТаблицы Из ТаблицаРезультата Цикл
|
||||
ДатаПредмета = ПолучитьЗначениеРеквизитаПредмета(СтрокаТаблицы.Источник, СтрокаТаблицы.ИмяРеквизитаИсточника);
|
||||
Если (ДатаПредмета - СтрокаТаблицы.ИнтервалВремениНапоминания) <> СтрокаТаблицы.ВремяСобытия Тогда
|
||||
ОтключитьНапоминание(СтрокаТаблицы, Ложь);
|
||||
СтрокаТаблицы.СрокНапоминания = ДатаПредмета - СтрокаТаблицы.ИнтервалВремениНапоминания;
|
||||
СтрокаТаблицы.ВремяСобытия = ДатаПредмета;
|
||||
Если СтрокаТаблицы.Расписание.Получить() <> Неопределено Тогда
|
||||
СтрокаТаблицы.ПовторятьЕжегодно = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыНапоминания = ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицы);
|
||||
ПараметрыНапоминания.Расписание = СтрокаТаблицы.Расписание.Получить();
|
||||
Напоминание = СоздатьНапоминание(ПараметрыНапоминания);
|
||||
ПодключитьНапоминание(Напоминание);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат ТаблицаРезультата
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
|
||||
// Обработчик подписки на событие ПриЗаписи объекта, по поводу которого можно создавать напоминания.
|
||||
Процедура ПроверитьИзмененияДатВПредметеПриЗаписи(Источник, Отказ) Экспорт
|
||||
@@ -883,6 +874,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Массив из Структура - :
|
||||
// * Пользователь - СправочникСсылка.Пользователи -
|
||||
// * ВремяСобытия - Дата -
|
||||
// * Источник - ОпределяемыйТип.ПредметНапоминания -
|
||||
// * СрокНапоминания - Дата -
|
||||
// * Описание - Строка -
|
||||
// * ИндексКартинки - Число -
|
||||
//
|
||||
Функция СписокТекущихНапоминанийПользователя() Экспорт
|
||||
|
||||
АктуализироватьСписокНапоминаний();
|
||||
|
||||
Reference in new issue
Block a user