1C: пауза при исполнении кода
Есть мнение, что необходимость паузы в коде, это признак плохой архитектуры кода. Категорически не согласен. Да любой код можно усложнить так, чтобы избежать необходимости паузы. Но стоит ли усложнять код ради этого? Нужно искать компромисс. В моем случае, пауза понадобилась из-за того что есть ограничение по количеству отправляемых СМС в секунду со стороны провайдера. Простой способ: отправлять СМС с паузой. Сложный способ — организовать очередь отправки через..ну например регламентные задания. Зачем сложный способ для редкой отправки 20 СМС? Вот, держите один из реализаций «Паузы»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
&НаСервере Процедура Пауза(Секунд) Экспорт ТекущийСеансИнформационнойБазы = ПолучитьТекущийСеансИнформационнойБазы(); ФоновоеЗадание = ТекущийСеансИнформационнойБазы.ПолучитьФоновоеЗадание(); Если ФоновоеЗадание = Неопределено Тогда ПараметрыН = Новый Массив; ПараметрыН.Добавить(Секунд); ФоновоеЗадание = ФоновыеЗадания.Выполнить("ОбщегоНазначенияБТС.Пауза", ПараметрыН); КонецЕсли; Попытка ФоновоеЗадание.ОжидатьЗавершения(Секунд); Исключение Возврат; КонецПопытки; КонецПроцедуры |