Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 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);

               НоваяЗадача. Объект  = РезультатЗапроса. КонтактноеЛицо;

               Попытка

                       НоваяЗадача. Записать();

               Исключение

               КонецПопытки;

       КонецЦикла;

       //УТ Специалист КОНЕЦ

               

КонецПроцедуры // СоздатьЗадачиПоздравленияСДнемРождения()

Фсёё :)