![]() |
![]() |
![]() |
|
Отладка регламентного задания 1С 8.1 | ☑ | ||
---|---|---|---|---|
0
AnisaL
05.03.13
✎
08:30
|
Добрый день!! Скажите пожалуйста, как отлаживать регламентное фоновое задание поздравления с днем рождения?
|
|||
1
AnisaL
05.03.13
✎
08:32
|
// Процедура формирует задачи о необходимости поздравить с днем рождения
// Процедура СоздатьЗадачиПоздравленияСДнемРождения() Экспорт УсловиеЗадачи = УправлениеОтношениямиСПоставщикамиИПокупателями.ПолучитьСтрокуУсловияДР(); Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ | Контакты.КонтактноеЛицо КАК КонтактноеЛицо, | Контакты.Владелец.ОсновнойМенеджерПокупателя КАК Исполнитель, | Контакты.КонтактноеЛицо.КоличествоДнейДоНапоминания КАК ИнтервалДней, | Контакты.КонтактноеЛицо.ДатаРождения КАК ДатаРождения, | Задачи.СрокИсполнения КАК Срок |ИЗ | Справочник.КонтактныеЛицаКонтрагентов КАК Контакты |ЛЕВОЕ СОЕДИНЕНИЕ | Задача.ЗадачиПользователя КАК Задачи |ПО | Задачи.Объект = Контакты.КонтактноеЛицо | И Задачи.Оповещение = ИСТИНА | И Задачи.СрокИсполнения > ДОБАВИТЬКДАТЕ(Контакты.КонтактноеЛицо.ДатаРождения, ГОД, РАЗНОСТЬДАТ(Контакты.КонтактноеЛицо.ДатаРождения, ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, Контакты.КонтактноеЛицо.КоличествоДнейДоНапоминания), МЕСЯЦ)/12 - 1) | И Задачи.ПамятнаяДата = ИСТИНА |ГДЕ | Контакты.КонтактноеЛицо.НапоминатьОДнеРождения = ИСТИНА | И Контакты.Владелец ССЫЛКА Справочник.Контрагенты | И Контакты.Владелец <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) | И Контакты.Владелец.ОсновнойМенеджерПокупателя <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | И ((ДОБАВИТЬКДАТЕ(Контакты.КонтактноеЛицо.ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (Контакты.КонтактноеЛицо.ДатаРождения))) >= &ТекДата | И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Контакты.КонтактноеЛицо.ДатаРождения, ДЕНЬ, -(Контакты.КонтактноеЛицо.КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (Контакты.КонтактноеЛицо.ДатаРождения))) <= &ТекДата) | ИЛИ (ДОБАВИТЬКДАТЕ(Контакты.КонтактноеЛицо.ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (Контакты.КонтактноеЛицо.ДатаРождения))) >= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1) | И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(Контакты.КонтактноеЛицо.ДатаРождения, ДЕНЬ, -(Контакты.КонтактноеЛицо.КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (Контакты.КонтактноеЛицо.ДатаРождения))) <= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1))) | И Задачи.СрокИсполнения ЕСТЬ NULL | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | ЛичныеКонтакты.Ссылка, | ЛичныеКонтакты.ПользовательДляОграниченияПравДоступа, | ЛичныеКонтакты.КоличествоДнейДоНапоминания, | ЛичныеКонтакты.ДатаРождения, | Задачи.СрокИсполнения |ИЗ | Справочник.ЛичныеКонтакты КАК ЛичныеКонтакты |ЛЕВОЕ СОЕДИНЕНИЕ | Задача.ЗадачиПользователя КАК Задачи |ПО | Задачи.Объект = ЛичныеКонтакты.Ссылка | И Задачи.Оповещение = ИСТИНА | И Задачи.СрокИсполнения > ДОБАВИТЬКДАТЕ(ЛичныеКонтакты.ДатаРождения, ГОД, РАЗНОСТЬДАТ(ЛичныеКонтакты.ДатаРождения, ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, ЛичныеКонтакты.КоличествоДнейДоНапоминания), МЕСЯЦ)/12 - 1) | И Задачи.ПамятнаяДата = ИСТИНА |ГДЕ | ЛичныеКонтакты.НапоминатьОДнеРождения = ИСТИНА | И ЛичныеКонтакты.ПользовательДляОграниченияПравДоступа <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | И ((ДОБАВИТЬКДАТЕ(ЛичныеКонтакты.ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты.ДатаРождения))) >= &ТекДата | И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ЛичныеКонтакты.ДатаРождения, ДЕНЬ, -(ЛичныеКонтакты.КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты.ДатаРождения))) <= &ТекДата) | ИЛИ (ДОБАВИТЬКДАТЕ(ЛичныеКонтакты.ДатаРождения, ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты.ДатаРождения))) >= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1) | И ДОБАВИТЬКДАТЕ(ДОБАВИТЬКДАТЕ(ЛичныеКонтакты.ДатаРождения, ДЕНЬ, -(ЛичныеКонтакты.КоличествоДнейДоНапоминания)), ГОД, (ГОД(&ТекДата) - ГОД (ЛичныеКонтакты.ДатаРождения))) <= ДОБАВИТЬКДАТЕ(&ТекДата, ГОД, -1))) | И Задачи.СрокИсполнения ЕСТЬ NULL |"; Запрос.УстановитьПараметр("ТекДата" , ТекущаяДата()); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий()Цикл НоваяЗадача = Задачи.ЗадачиПользователя.СоздатьЗадачу(); НоваяЗадача.Дата =ТекущаяДата(); НоваяЗадача.Наименование = Строка(РезультатЗапроса.КонтактноеЛицо) + ". " + УсловиеЗадачи; НоваяЗадача.ПамятнаяДата = Истина; НоваяЗадача.Исполнитель = РезультатЗапроса.Исполнитель; НоваяЗадача.Инициатор = РезультатЗапроса.Исполнитель; НоваяЗадача.СрокИсполнения = Дата(Год(ТекущаяДата() + (РезультатЗапроса.ИнтервалДней * 24 * 60 * 60)), Месяц(РезультатЗапроса.ДатаРождения), День(РезультатЗапроса.ДатаРождения), 00, 00, 00); НоваяЗадача.Оповещение = Истина; НоваяЗадача.СрокОповещения = НоваяЗадача.СрокИсполнения - (РезультатЗапроса.ИнтервалДней * 24 * 60 * 60); НоваяЗадача.Объект = РезультатЗапроса.КонтактноеЛицо; Попытка НоваяЗадача.Записать(); Исключение КонецПопытки; КонецЦикла; КонецПроцедуры // СоздатьЗадачиПоздравленияСДнемРождения() |
|||
2
AnisaL
05.03.13
✎
08:32
|
(1) Вот сама процедура, но она не работает, не пойму почему
|
|||
3
AnisaL
05.03.13
✎
08:33
|
(2) Т.е. ЗадачаПользователя не формируется
|
|||
4
Галахад
гуру
05.03.13
✎
08:35
|
Может нету именинников?
|
|||
5
AnisaL
05.03.13
✎
08:36
|
(4) Есть, сегодня)
|
|||
6
Лодырь
05.03.13
✎
08:38
|
Может разделить задачу на две? 1 - получить уверенность что запрос выдает именно то что задумывалось, 2 - проверить что задача формируется из неких произвольных данных. И кстати добавить обработку ошибки записи задачи, хотя б узнаешь что она не срабатывает.
|
|||
7
AnisaL
05.03.13
✎
08:41
|
(6) Ага, можно) подскажи какие
|
|||
8
Галахад
гуру
05.03.13
✎
08:46
|
Прикольно.
|
|||
9
AnisaL
05.03.13
✎
08:48
|
(8) Что прикольного?
|
|||
10
Галахад
гуру
05.03.13
✎
08:50
|
(7) Прикольно.
|
|||
11
AnisaL
05.03.13
✎
08:50
|
А может запрос по-другому написать, упростить его)
|
|||
12
Галахад
гуру
05.03.13
✎
08:51
|
(11) Кто мешает-то?
|
|||
13
AnisaL
05.03.13
✎
08:53
|
(12) по сути нам не нужны контактные лица контрагентов, а нужно просто чтоб сотрудников фирмы поздравить
|
|||
14
Галахад
гуру
05.03.13
✎
08:57
|
(13) А нафига, тогда (0)? ДР сотрудников искать у контрагентов?
Наверное, нужно в ЗУП заглянуть. Или в Камин. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |