Нужно вызывать задание в заданное время. Готового решения в дизайнере не нашел, пришлось делать самому. Для этого надо получить текущую дату и время. Я это сделал так:
Далее, имея в переменной текущее значение, создал условие, где проверяется дата вызова задания и текущее. Но условие срабатывает неправильно. В чем подвох?
Да я проверял, задает текущую дату и время в формате битрикса. Далее условие если текущая дата больше даты вызова задания, тогда вызывается задание. но почему то условие срабатывает даже когда текущая дата меньше чем дата в условии. Я вот думаю, может дату надо в Юниксе задавать? Не решали подобных задач, когда надо вызывать событие в определенное время? Чтобы задание сработало именно например в '19.09.2011 15:00:00'.
Сергей Затылкин пишет: надо пользоваться агентом ..
Агент не будет выполнен в абсолютно точно заданное время. Читаем документацию:
Цитата
Временная точность запуска агентов напрямую зависит от равномерности и плотности посещаемости сайта. Если вам необходимо организовать запуск каких либо PHP функций в абсолютно точно заданное время, то необходимо воспользоваться стандартной утилитой cron, предоставляемой большинством хостингов.
Не надо сверлить зубы через задний проход дрелью от Сваровски
ну так о чём и был вопрос, как организовано условие? так как методов шедулера в бп не озвучили разрабы (хотя он там как бы есть), то такие штуки штатно можно делать только заворачивая в цикл c паузой внутри. либо я не понял вашу задачу.
То есть вы предлагаете делать так: 1. Создать переменную типа Число (целое) 2. Расчитать через php разницу в секундах между сегодняшним числом и датой, когда надо запустить задание, записать его в переменную (1). 3. В бизнес-процесс вставить паузу с полученным числом секунд.
Ключевое слово - зацикливание. Ещё раз предлагаю - зациклить проверку на время. Цикл с паузой внутри. Если точность не критична, можно сделать паузу между итерациями цикла - сутки, например.
Есть дата и время, в которые надо вызвать определенное задание.
Вызов задания сделал так:
1. Создал переменную типа число (Variable1)
2. С помощью php-кода записал количество секунд до вызываемого задания:
Код
$date_pay = MakeTimeStamp('{=Template:paymentDate}'); // Дата платежа
$delta = $date_pay-time(); // Период паузы
$a = $this->SetVariable('Variable1',$delta); // Запись в переменную БП
3. Вставил в БП паузу с записанным в переменную количеством секунд 4. По прошествии паузы событие успешно вызывается именно в нужную дату время.
Просьба разрабам сделать это штатно (вызов задания в определенную дату).
Еще просьба сделать в паузе количество месяцев (а не только секунд/часов/дней).
Сейчас придумал как с помощью напильника и костылей зациклить бизнес-процесс помесячно, но придется опять кодить, а хотелось бы красиво и просто использовать дизайнер для этого...