3_1_2_252

This commit is contained in:
Компания 1С committed 2019-12-27 11:26:00 +03:00
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 @@
КонецПроцедуры
// Возвращаемое значение:
// Массив из Структура - :
// * Пользователь - СправочникСсылка.Пользователи -
// * ВремяСобытия - Дата -
// * Источник - ОпределяемыйТип.ПредметНапоминания -
// * СрокНапоминания - Дата -
// * Описание - Строка -
// * ИндексКартинки - Число -
//
Функция СписокТекущихНапоминанийПользователя() Экспорт
АктуализироватьСписокНапоминаний();