Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
НапоминаниеОПодарке
Порядок действий:
Создаем новый Регистр сведений, периодический (день). Измерений нет, ресурс: ОтветстветнныйЗаПодарок (СпрСсылка. Пользователи). У справочников ЛичныеКонтакты, КонтактныеЛица добавляем 2 новых реквизита: НапоминатьОПодарке (булево), ДнейДоНапоминания(Число 2,0). Выносим их на формы элементов. У формы ФормаВводаНового справочника КонтакныеЛицаКонтрагентов создаем аналогичные реквизиты формы, и не забываем прописать их запись в обработчике формы ПередЗаписью. Для всех 3х форм:Выносим новые реквизиты на формы.
В модулях форм дорабатываем:
Процедура ДатаРожденияПриИзменении(Элемент)
Если ДатаРождения = '00010101000000' Тогда
НапоминатьОДнеРождения = Ложь;
//УТ Специалист НАЧАЛО
НапоминатьОПодарке = Ложь;
//УТ Специалист КОНЕЦ
КонецЕсли;
ДоступностьДанныхНапоминанияОДнеРождения();
КонецПроцедуры
Процедура ДоступностьДанныхНапоминанияОДнеРождения()
Если ДатаРождения = '00010101000000' Тогда
ЭлементыФормы. НапоминатьОДнеРождения. Доступность = Ложь;
ЭлементыФормы. КоличествоДнейДоНапоминания. Доступность = Ложь;
ЭлементыФормы. НадписьДней. Доступность = Ложь;
//УТ Специалист НАЧАЛО
ЭлементыФормы. НапоминатьОПодарке. Доступность = Ложь;
ЭлементыФормы. КоличествоДнейДоПодарка. Доступность = Ложь;
ЭлементыФормы. НадписьДнейДоПодарка. Доступность = Ложь;
//УТ Специалист КОНЕЦ
Иначе
ЭлементыФормы. НапоминатьОДнеРождения. Доступность = Истина;
ЭлементыФормы. КоличествоДнейДоНапоминания. Доступность = НапоминатьОДнеРождения;
ЭлементыФормы. НадписьДней. Доступность = НапоминатьОДнеРождения;
//УТ Специалист НАЧАЛО
ЭлементыФормы. НапоминатьОПодарке. Доступность = Истина;
ЭлементыФормы. КоличествоДнейДоПодарка. Доступность = НапоминатьОПодарке;
ЭлементыФормы. НадписьДнейДоПодарка. Доступность = НапоминатьОПодарке;
//УТ Специалист КОНЕЦ
КонецЕсли;
КонецПроцедуры
В общем модуле МодульРегламентныхЗаданий правим процедуру СоздатьЗадачиПоздравленияСДнемРождения:
Процедура СоздатьЗадачиПоздравленияСДнемРождения() Экспорт
УсловиеЗадачи = УправлениеКонтактами. ПолучитьСтрокуУсловияДР();
Запрос = Новый Запрос;
//Немного меняем типовой запрос: теперь в нем нам нужны лишь задачи, в тексте которых встречается текст "Поздравить с днем рождения",
//поэтому сперва вытаскиваем отобранные задачи во временную таблицу, и делаем соединение с временной таблицей ВТЗадачи, вместо реальной Задачи. ЗадачиПользователя
Запрос. Текст = "ВЫБРАТЬ
| *
|ПОМЕСТИТЬ ВТЗадачи
|ИЗ
| Задача. ЗадачиПользователя КАК ЗадачиПользователя
|ГДЕ
| ЗадачиПользователя. Наименование ПОДОБНО ""%"" + &УсловиеЗадачи + ""%""
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контакты. КонтактноеЛицо КАК КонтактноеЛицо,
| Контакты. Владелец. ОсновнойМенеджерПокупателя КАК Исполнитель,
| Контакты. КонтактноеЛицо. КоличествоДнейДоНапоминания КАК ИнтервалДней,
| Контакты. КонтактноеЛицо. ДатаРождения КАК ДатаРождения,
| ВТЗадачи. СрокИсполнения КАК Срок
|ИЗ
| Справочник. КонтактныеЛицаКонтрагентов КАК Контакты
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВТЗадачи КАК ВТЗадачи
|
|ПО
| ВТЗадачи. Объект = Контакты. КонтактноеЛицо
| И ВТЗадачи. Оповещение = ИСТИНА
| И ВТЗадачи. СрокИсполнения > ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ГОД, РАЗНОСТЬДАТ(Контакты. КонтактноеЛицо. ДатаРождения, ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, Контакты. КонтактноеЛицо. КоличествоДнейДоНапоминания), МЕСЯЦ)/12 - 1)
| И ВТЗадачи. ПамятнаяДата = ИСТИНА
|ГДЕ
| Контакты. КонтактноеЛицо. НапоминатьОДнеРождения = ИСТИНА
| И Контакты. КонтактноеЛицо. ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1)
| И Контакты. Владелец ССЫЛКА Справочник. Контрагенты
| И Контакты. Владелец <> ЗНАЧЕНИЕ(Справочник. Контрагенты. ПустаяСсылка)
| И Контакты. Владелец. ОсновнойМенеджерПокупателя <> ЗНАЧЕНИЕ(Справочник. Пользователи. ПустаяСсылка)
| И ((ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (Контакты. КонтактноеЛицо. ДатаРождения))) >= &ТекДата
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ДЕНЬ, -(Контакты. КонтактноеЛицо. КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (Контакты. КонтактноеЛицо. ДатаРождения))) <= &ТекДата)
| ИЛИ (ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (Контакты. КонтактноеЛицо. ДатаРождения))) >= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1)
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ДЕНЬ, -(Контакты. КонтактноеЛицо. КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (Контакты. КонтактноеЛицо. ДатаРождения))) <= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1)))
| И ВТЗадачи. СрокИсполнения ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ЛичныеКонтакты. Ссылка,
| ЛичныеКонтакты. ПользовательДляОграниченияПравДоступа,
| ЛичныеКонтакты. КоличествоДнейДоНапоминания,
| ЛичныеКонтакты. ДатаРождения,
| ВТЗадачи. СрокИсполнения
|ИЗ
| Справочник. ЛичныеКонтакты КАК ЛичныеКонтакты
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВТЗадачи КАК ВТЗадачи
|ПО
| ВТЗадачи. Объект = ЛичныеКонтакты. Ссылка
| И ВТЗадачи. Оповещение = ИСТИНА
| И ВТЗадачи. СрокИсполнения > ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ГОД, РАЗНОСТЬДАТ(ЛичныеКонтакты. ДатаРождения, ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, ЛичныеКонтакты. КоличествоДнейДоНапоминания), МЕСЯЦ)/12 - 1)
| И ВТЗадачи. ПамятнаяДата = ИСТИНА
|ГДЕ
| ЛичныеКонтакты. НапоминатьОДнеРождения = ИСТИНА
| И ЛичныеКонтакты. ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1)
| И ЛичныеКонтакты. ПользовательДляОграниченияПравДоступа <> ЗНАЧЕНИЕ(Справочник. Пользователи. ПустаяСсылка)
| И ((ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты. ДатаРождения))) >= &ТекДата
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ДЕНЬ, -(ЛичныеКонтакты. КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты. ДатаРождения))) <= &ТекДата)
| ИЛИ (ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты. ДатаРождения))) >= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1)
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ДЕНЬ, -(ЛичныеКонтакты. КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты. ДатаРождения))) <= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1)))
| И ВТЗадачи. СрокИсполнения ЕСТЬ NULL
|";
Запрос. УстановитьПараметр("ТекДата" , ТекущаяДата());
//УТ Специалист НАЧАЛО
//Передаем в запрос новый использованный нами параметр
Запрос. УстановитьПараметр("УсловиеЗадачи" , УсловиеЗадачи);
//УТ Специалист КОНЕЦ
РезультатЗапроса = Запрос. Выполнить().Выбрать();
Пока РезультатЗапроса. Следующий()Цикл
НоваяЗадача = Задачи. ЗадачиПользователя. СоздатьЗадачу();
НоваяЗадача. Дата =ТекущаяДата();
НоваяЗадача. Наименование = Строка(РезультатЗапроса. КонтактноеЛицо) + ". " + УсловиеЗадачи;
НоваяЗадача. ПамятнаяДата = Истина;
НоваяЗадача. Исполнитель = РезультатЗапроса. Исполнитель;
НоваяЗадача. Инициатор = РезультатЗапроса. Исполнитель;
НоваяЗадача. СрокИсполнения = Дата(Год(ТекущаяДата() + (РезультатЗапроса. ИнтервалДней * 24 * 60 * 60)), Месяц(РезультатЗапроса. ДатаРождения), День(РезультатЗапроса. ДатаРождения), 00, 00, 00);
НоваяЗадача. Оповещение = Истина;
НоваяЗадача. СрокОповещения = НоваяЗадача. СрокИсполнения - (РезультатЗапроса. ИнтервалДней * 24 * 60 * 60);
НоваяЗадача. Объект = РезультатЗапроса. КонтактноеЛицо;
Попытка
НоваяЗадача. Записать();
Исключение
КонецПопытки;
КонецЦикла;
//УТ Специалист НАЧАЛО
//Займемся подарками
//Копируем весь код процедуры и тут же вставляем)))
//Меняем условие задачи, и в запросе везде "КоличествоДнейДоНапоминания" меняем на "КоличествоДнейДоПодарка"
УсловиеЗадачи = "Вручить подарок!";
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| *
|ПОМЕСТИТЬ ВТЗадачи
|ИЗ
| Задача. ЗадачиПользователя КАК ЗадачиПользователя
|ГДЕ
| ЗадачиПользователя. Наименование ПОДОБНО ""%"" + &УсловиеЗадачи + ""%""
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контакты. КонтактноеЛицо КАК КонтактноеЛицо,
| Контакты. Владелец. ОсновнойМенеджерПокупателя КАК Исполнитель,
| Контакты. КонтактноеЛицо. КоличествоДнейДоПодарка КАК ИнтервалДней,
| Контакты. КонтактноеЛицо. ДатаРождения КАК ДатаРождения,
| ВТЗадачи. СрокИсполнения КАК Срок
|ИЗ
| Справочник. КонтактныеЛицаКонтрагентов КАК Контакты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТЗадачи КАК ВТЗадачи
| ПО (ВТЗадачи. Объект = Контакты. КонтактноеЛицо)
| И (ВТЗадачи. Оповещение = ИСТИНА)
| И (ВТЗадачи. СрокИсполнения > ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ГОД, РАЗНОСТЬДАТ(Контакты. КонтактноеЛицо. ДатаРождения, ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, Контакты. КонтактноеЛицо. КоличествоДнейДоПодарка), МЕСЯЦ) / 12 - 1))
| И (ВТЗадачи. ПамятнаяДата = ИСТИНА)
|ГДЕ
| Контакты. КонтактноеЛицо. НапоминатьОДнеРождения = ИСТИНА
| И Контакты. КонтактноеЛицо. ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1)
| И Контакты. Владелец ССЫЛКА Справочник. Контрагенты
| И Контакты. Владелец <> ЗНАЧЕНИЕ(Справочник. Контрагенты. ПустаяСсылка)
| И Контакты. Владелец. ОсновнойМенеджерПокупателя <> ЗНАЧЕНИЕ(Справочник. Пользователи. ПустаяСсылка)
| И (ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ГОД, ГОД(&ТекДата) - ГОД(Контакты. КонтактноеЛицо. ДатаРождения)) >= &ТекДата
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ДЕНЬ, - Контакты. КонтактноеЛицо. КоличествоДнейДоПодарка), ГОД, ГОД(&ТекДата) - ГОД(Контакты. КонтактноеЛицо. ДатаРождения)) <= &ТекДата
| ИЛИ ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ГОД, ГОД(&ТекДата) - ГОД(Контакты. КонтактноеЛицо. ДатаРождения)) >= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1)
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Контакты. КонтактноеЛицо. ДатаРождения, ДЕНЬ, - Контакты. КонтактноеЛицо. КоличествоДнейДоПодарка), ГОД, ГОД(&ТекДата) - ГОД(Контакты. КонтактноеЛицо. ДатаРождения)) <= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1))
| И ВТЗадачи. СрокИсполнения ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ЛичныеКонтакты. Ссылка,
| ЛичныеКонтакты. ПользовательДляОграниченияПравДоступа,
| ЛичныеКонтакты. КоличествоДнейДоПодарка,
| ЛичныеКонтакты. ДатаРождения,
| ВТЗадачи. СрокИсполнения
|ИЗ
| Справочник. ЛичныеКонтакты КАК ЛичныеКонтакты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТЗадачи КАК ВТЗадачи
| ПО (ВТЗадачи. Объект = ЛичныеКонтакты. Ссылка)
| И (ВТЗадачи. Оповещение = ИСТИНА)
| И (ВТЗадачи. СрокИсполнения > ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ГОД, РАЗНОСТЬДАТ(ЛичныеКонтакты. ДатаРождения, ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, ЛичныеКонтакты. КоличествоДнейДоПодарка), МЕСЯЦ) / 12 - 1))
| И (ВТЗадачи. ПамятнаяДата = ИСТИНА)
|ГДЕ
| ЛичныеКонтакты. НапоминатьОДнеРождения = ИСТИНА
| И ЛичныеКонтакты. ДатаРождения <> ДАТАВРЕМЯ(1, 1, 1)
| И ЛичныеКонтакты. ПользовательДляОграниченияПравДоступа <> ЗНАЧЕНИЕ(Справочник. Пользователи. ПустаяСсылка)
| И (ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ГОД, ГОД(&ТекДата) - ГОД(ЛичныеКонтакты. ДатаРождения)) >= &ТекДата
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ДЕНЬ, - ЛичныеКонтакты. КоличествоДнейДоПодарка), ГОД, ГОД(&ТекДата) - ГОД(ЛичныеКонтакты. ДатаРождения)) <= &ТекДата
| ИЛИ ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ГОД, ГОД(&ТекДата) - ГОД(ЛичныеКонтакты. ДатаРождения)) >= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1)
| И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ЛичныеКонтакты. ДатаРождения, ДЕНЬ, - ЛичныеКонтакты. КоличествоДнейДоПодарка), ГОД, ГОД(&ТекДата) - ГОД(ЛичныеКонтакты. ДатаРождения)) <= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1))
| И ВТЗадачи. СрокИсполнения ЕСТЬ NULL ";
Запрос. УстановитьПараметр("ТекДата" , ТекущаяДата());
Запрос. УстановитьПараметр("УсловиеЗадачи" , УсловиеЗадачи);
РезультатЗапроса = Запрос. Выполнить().Выбрать();
//Получаем ответственного за подарки на текущий момент
ОтветственныйзаПодарок = РегистрыСведений. ОтветственныеЗаПодарки. СрезПоследних(ТекущаяДата(),);
Пока РезультатЗапроса. Следующий()Цикл
НоваяЗадача = Задачи. ЗадачиПользователя. СоздатьЗадачу();
НоваяЗадача. Дата =ТекущаяДата();
НоваяЗадача. Наименование = Строка(РезультатЗапроса. КонтактноеЛицо) + ". " + УсловиеЗадачи;
НоваяЗадача. ПамятнаяДата = Истина;
//Ставим инициатором и исполнителем ответственного за подарки
//если он вдруг не указан, то указываем основного менеджера
НоваяЗадача. Исполнитель = ?(ОтветственныйзаПодарок. Количество()>0, ОтветственныйзаПодарок[0].ОтветственныйзаПодарок, РезультатЗапроса. Исполнитель);
НоваяЗадача. Инициатор = ?(ОтветственныйзаПодарок. Количество()>0, ОтветственныйзаПодарок[0].ОтветственныйзаПодарок, РезультатЗапроса. Исполнитель);
НоваяЗадача. СрокИсполнения = Дата(Год(ТекущаяДата() + (РезультатЗапроса. ИнтервалДней * 24 * 60 * 60)), Месяц(РезультатЗапроса. ДатаРождения), День(РезультатЗапроса. ДатаРождения), 00, 00, 00);
НоваяЗадача. Оповещение = Истина;
НоваяЗадача. СрокОповещения = НоваяЗадача. СрокИсполнения - (РезультатЗапроса. ИнтервалДней * 24 * 60 * 60);
НоваяЗадача. Объект = РезультатЗапроса. КонтактноеЛицо;
Попытка
НоваяЗадача. Записать();
Исключение
КонецПопытки;
КонецЦикла;
//УТ Специалист КОНЕЦ
КонецПроцедуры // СоздатьЗадачиПоздравленияСДнемРождения()
Фсёё :)


