|
Запуск на выполнение регламентированного задания | ☑ | ||
---|---|---|---|---|
0
LivingStar
06.03.15
✎
12:30
|
Есть регламентированное задание. Которое будет запускаться с каким то промежутком времени. Суть его, выбрать документы и отправить смс по установленным в них номерам. Но отправка смс должна производиться за час от даты в документе и за 8 часов. Как это целесообразно правильнее сделать в коде, что с чем сравнивать, что то не дойдет.
есть выборка документов, я иду по ней перебором, как определять что до даты документа остался час, или 8 часов??? |
|||
1
Остап Сулейманович
06.03.15
✎
12:36
|
(0)
ПрошелЧАС = (ТекущаяДата() - ТвойДокумент.Дата) > 3600; Прошло8Часов = (ТекущаяДата() - ТвойДокумент.Дата) > (8 * 3600); |
|||
2
DrZombi
гуру
06.03.15
✎
12:36
|
(0) Используй смещение времени.
Лучше реализовывать все это через Еще один РС, где будешь проставлять Дату создания Записи для Отправки СМС. |
|||
3
Ёпрст
06.03.15
✎
12:36
|
сравнить с текущаяДата
©КапитанОчевидность |
|||
4
LivingStar
06.03.15
✎
12:49
|
(1)(2)(3) спасибо!
(2) так документов много, будут много записей в этот регистр попадать я решил заносить дату отправки в тч документа, сейчас вот решаю как сравнивать |
|||
5
SanGvin
06.03.15
✎
12:55
|
плоский регистр сведений, + сравнение с текущей датой в запросе (со смещением даты дока)
|
|||
6
LivingStar
06.03.15
✎
13:05
|
(5) не совсем понимаю ((((
|
|||
7
SanGvin
06.03.15
✎
16:33
|
(6) делаешь регистр сведений, 1 измерение (наприме рссылка над документ), ресурсов два - отправка за 8 ч и отправка за 1 ч (можно и иначе - запилить еще изменение напрмиер с количеством часо до отправки, но так проще)
Потом в запросе выбираешь документы, джойнишь на регистр, смотришь, где не заполнены флаги отправки. Условие по дате относительно текущей даты делаешь. Для манипуляции с датами в запросе помоему функция ДОБАВИТЬКДАТЕ есть. Принимает отрицательные значения. |
|||
8
LivingStar
08.03.15
✎
11:21
|
(1) как бы поточнее определять время до нужной даты, за час и за 8 часов, веть просто знаки сравнения могут влиять и на рузные даты вообще если будет совпадать условие
|
|||
9
LivingStar
08.03.15
✎
11:27
|
(8+) есть то есть дата1 и другая дата2 которая больше даты1 на неопределенное количество часов или дней
как выявлять момент когда дата1 осталось 8 часов до дата2 и час до дата2 ? |
|||
10
Остап Сулейманович
08.03.15
✎
12:34
|
(9) Птля... Да по аналогии же.
Например. ВремяСтарта1Час = ТвойДокумент.Дата + 3600; ВремяСтарта8Час = ТвойДокумент.Дата + 8 * 3600; // Для 1-го старта ДиапазонОтСтарта = ТекущаяДата() - ВремяСтарта1Час; //Так я определяю модуль числа еще со времен 7-ки //возможно в 8-ке что то поменялось //но меня устраивает и так ДиапазонОтСтарта = МАКС(ДиапазонОтСтарта, -ДиапазонОтСтарта); //Если мы в интервале 1-а минута Если ДиапазонОтСтарта < (60) Тогда Сообщить("По команде ""Ложись"" - ложись."); //Если мы в интервале 10ть минут ИначеЕсли ДиапазонОтСтарта < (60*10) Тогда Сообщить("Всем занять позицию низкого старта"); Иначе Сообщить("Можно пить пиво. Либо еще рано впадать в отчаяние, либо уже все полимеры съедены"); КонецЕсли; |
|||
11
LivingStar
08.03.15
✎
14:45
|
(10) Ок спасибо! Нужно просто тщательно самому поразмыслить. Спасибо за пример!!!
|
|||
12
LivingStar
10.03.15
✎
13:27
|
у кого есть ещё какие идеи по отправке смс????
к примеру сейчас планирую выполнение старта |
|||
13
LivingStar
10.03.15
✎
13:33
|
(10) ТекущаяДата() - ДатаВремяОтправки дало - 7076
что это дает мне понятно |
|||
14
LivingStar
10.03.15
✎
13:37
|
(7) время отправки за 1 час и за 8 часов учел, регистр сведений для этого не обязателен, но как мне делать отправку??? как отлавливать момент старта, по какому условию?
из (10) не совсем понятно |
|||
15
LivingStar
10.03.15
✎
13:38
|
нет четкого представления как определять момент запуска старта за 8 часов и за 1 час
|
|||
16
LivingStar
10.03.15
✎
15:04
|
(10) что у вас означает вот эта строка?
ДиапазонОтСтарта = МАКС(ДиапазонОтСтарта, -ДиапазонОтСтарта); максимум из одного и того же значения, второе со знаком минус |
|||
17
LivingStar
10.03.15
✎
16:06
|
(10) как вы тут сравниваете 2 даты? одну с минусом? на этом ошибка вылетает
ДиапазонОтСтарта = МАКС(ДиапазонОтСтарта, -ДиапазонОтСтарта); |
|||
18
LivingStar
10.03.15
✎
16:39
|
в принципе разобрался с (10) запустил у себя не знаю как будет отрабатывать
|
|||
19
LivingStar
11.03.15
✎
16:18
|
у меня ДиапазонОтСтарта = 4976040
ТекущаяДата() - 13.01.2015 6:00:00 = 4976040 подскажите как тут быть? а 60 * (КолЧасов * 60) = 28800 всего |
|||
20
LivingStar
11.03.15
✎
16:22
|
не пойму с чем что сравнивать:
как то это не клеится: // КОЭФФИЦИЭНТ ЧИСЛОВОЙ РАЗНИЦЫ С НСО Если ЗначениеЗаполнено(СтрТз.СсылкаЗаказТрансфера.вгтГород2.ЧасоваяРазницаСНовосибирском) Тогда РазницаСНСО = Число(СтрЗаменить(СтрТз.СсылкаЗаказТрансфера.вгтГород2.ЧасоваяРазницаСНовосибирском, "+", "")); Иначе РазницаСНСО = 0; КонецЕсли; // ДАТА ВРЕМЯ ПОДАЧИ ТРАНСПОРТА ПЕРЕВЕДЕННОЕ В НОВОСИБИРСКОЕ ВРЕМЯ Если РазницаСНСО >= 0 Тогда ДатаВремяПодачиТранспортаНСО = СтрТз.СсылкаЗаказТрансфера.ДатаВремяПодачиТранспорта + (РазницаСНСО * 3600); Иначе ДатаВремяПодачиТранспортаНСО = СтрТз.СсылкаЗаказТрансфера.ДатаВремяПодачиТранспорта - (РазницаСНСО * 3600); КонецЕсли; // ВРЕМЯ ОТПРАВКИ ПЕРВОГО СМС ЗА 8 ЧАСОВ ДО ДАТЫ ВРЕМЕНИ ПОДАЧИ ТРАНСПОРТА ПО НОВОСИБИРСКУ //ДатаВремяОтправкиЗа8Часов = ДатаВремяПодачиТранспортаНСО - 8 * 3600; // ВРЕМЯ ОТПРАВКИ ВТОРОГО СМС ЗА 1 ЧАС ДО ДАТЫ ВРЕМЕНИ ПОДАЧИ ТРАНСПОРТА ПО НОВОСИБИРСКУ //ДатаВремяОтправкиЗа1Час = ДатаВремяПодачиТранспортаНСО - 3600; // // ДАТА ВРЕМЯ ПОДАЧИ ТРАНСПОРТА ЗА ВЫЧЕТОМ НЕОБХОДИМОГО КОЛИЧЕСТВА ЧАСОВ ДЛЯ ОТПРАВКИ СМС ДатаВремяОтправки = ДатаВремяПодачиТранспортаНСО - КолЧасов * 3600; // ДиапазонОтСтарта = ТекущаяДата() - ДатаВремяОтправки; ДиапазонОтСтарта = МАКС(ДиапазонОтСтарта , -ДиапазонОтСтарта); // Сообщить(Строка(н) + "). " + Строка(СтрТз.СсылкаЗаказТрансфера) + " Диапазон старта «" + Строка(ДиапазонОтСтарта) + "», ДатаВремяОтправки " + Строка(ДатаВремяОтправки)); // Если ДиапазонОтСтарта < (60 * (КолЧасов * 60)) Тогда |
|||
21
LivingStar
11.03.15
✎
17:08
|
должно быть условие что высчитанное ДатаВремяОтправки должно быть больше ТекущаяДата(), ДАа ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |