Имя: Пароль:
1C
1С v8
Регламентное задание и смс
, , ,
0 Облачко
 
14.10.21
21:41
Настроила отправку смс через внешнюю обработку. Теперь подключаю через регламентное задание, с тем же кодом. Но почему-то смс не уходят (
Что я делаю не так?
УТ 11
1 Turku
 
14.10.21
21:59
Думаю, нужно смотреть на контекст исполнения кода. Для рег.задания во внешней обработке должен быть задан тип использования "ВызовСерверногоМетода". И весь код должен исполняться исключительно на сервере. Хотя Вы и так это знаете...Причин, почему не работает, может быть великое множество.
2 Мультук
 
гуру
15.10.21
07:44
(0)

Код отправляющий СМС очевидно пишут ошибки. Нужно их читать

P.S.

Или у тебя так ?

Процедура ОтправитьСМС()
  Попытка
    //тут код по отправке смс
  Исключение
    //тут ничего не пишем, зачем облегчать себе и админам жизнь
  КонецПопытки


КонецПроцедуры
3 Мультук
 
гуру
15.10.21
07:45
*пишет ошибки
4 УдавВПопугаях
 
15.10.21
09:40
(2) как из попытки можно узнать, на чем споткнулось?
(0) возьмите консоль фоновых заданий и посмотрите, что не так
выполняйте отладку в контексте сервера
5 ДенисЧ
 
15.10.21
09:52
(4) "из попытки можно узнать, на чем споткнулось?"
ОписаниеОшибки() уже отменили?
6 Kassern
 
15.10.21
09:58
(0) скорее всего на сервере нет доступа к внешнему сервису отправки смс
7 УдавВПопугаях
 
15.10.21
10:36
(5) очень далеко не всегда пригождается, попытка в принципе - лажа, описаниеошибки - еще хуже
8 Малыш Джон
 
15.10.21
12:38
(7)>>попытка в принципе - лажа, описаниеошибки - еще хуже

береза — тупица... дуб — осёл... речка — кретинка... облака — идиоты. Лошади — предатели. Люди — мошенники. Весь мир таков, что стесняться некого!
9 ДенисЧ
 
15.10.21
12:39
(7) Ниасилил?
10 Kassern
 
15.10.21
12:39
(7) работа со внешними сервисами обычно всегда через попытку идет. Можно к примеру пытаться несколько раз подрубиться, если количество попыток исчерпано то вызвать исключение и т.д.
11 УдавВПопугаях
 
15.10.21
15:30
(8) у вас прям глобальные проблемы, у меня все проще, попытка - шляпа, в паре с ним описание ошибки - хрень, ничего не дает тем более в случае, когда исполнение по стеку уходит  дальше/глубже - на сторону внешнего сервиса или в обработку проведения, где проверка остатков например и сообщение, что не хватает остатков и отказ = истина, а если проведение происходит через сервис в сторонней базе, то ни сообщения ни описанияошибки на Фвызывающую сторону не вернется
(9) после описанной выше ситуации стараюсь не использовать эту парочку обработчиков, т к непригодно. да даже если все происходит в одной базе, то в чем разница: в попытке произошел косяк, обрабатываем исключение, в котором вызываем описаниеошибки, которое бы и так появилось на экране, без попытки исключения
(10) да можно, только практического смысла в этом нет
12 ДенисЧ
 
15.10.21
15:31
Ясно. Внятную обработку ошибок ниасилил.
13 УдавВПопугаях
 
15.10.21
15:32
)) научи
14 УдавВПопугаях
 
15.10.21
15:36
вот тут

вызываем в сторонней базе обработку проведения документа, где проверка остатков и сообщение, что не хватает остатков (это в польз. режиме) и отказ = истина

это ошибка? ошибка. как показать пользователю в текущей базе, почему не провелся документ? желательно с использование конструкций попытка/исключение и ОписаниеОшибки() конечно же
15 УдавВПопугаях
 
15.10.21
16:13
Ясно. Умничать осилил.
16 Kassern
 
15.10.21
16:16
(14) подключаем систему взаимодействия и в исключении сообщаем пользователю об ошибке.
17 Kassern
 
15.10.21
16:19
а по факту, сообщать надо тому, кто пытался что-то сделать. К примеру юзвер запустил выгрузку на сайт и она не прошла, так как проблемы с инетом. В исключении можно об этом попвестить юзвера и сделать какие то действия.
Так же в типовых не редко встречается конструкция где в цикле 1ска пытается получить данные с ресурса, когда счетчик ошибок становится равен 5 к примеру, то вызывается уже исключение.
18 УдавВПопугаях
 
15.10.21
16:19
(16) спасибо, еще не знал о такой, а касательно вопроса - хоршая шутка
19 Kassern
 
15.10.21
16:20
Так же есть регламентные задачи. Если в них произошла ошибка несколько раз подряд, то оно тупо отключается. А можно не получать ошибку и выполнять в попытке. А все ошибки отражать в журнале регистрации под нужной веткой
20 УдавВПопугаях
 
15.10.21
16:21
(19) вот вот - регламенты, я за них, при выгрузках загрузках и т д
21 Kassern
 
15.10.21
16:22
(20) тогда вы должны понимать, что надо в попытке к внешнему сервису обращаться, потому что вы не можете гарантировать 100% успешное подключение, а ошибки надо как то собирать и учитывать
22 УдавВПопугаях
 
15.10.21
16:22
от имени сервера что бы, не стоит пользователю вручную обмены запускать - не вышло если, то опять жми кнопку, через час, два, три, ерунда же
23 УдавВПопугаях
 
15.10.21
16:23
(20) ну ясное дело ошибки нужны, но попытка в этом смысле ничего не даст. работает регламент, консолью/журналом смотришь что там происходит, все ошибки регистрируются вполне читабельно
24 УдавВПопугаях
 
15.10.21
16:24
23 к 21
25 Kassern
 
15.10.21
16:25
(23) если будут ошибки, то у вас будет в списке рег заданий статус у него "завершено с ошибками", обычно 3 ошибки и все рег задание встает колом.
26 Kassern
 
15.10.21
16:25
(25) а если через попытку, то оно всегда будет завершаться успешно, даже если попадет в исключение
27 УдавВПопугаях
 
15.10.21
16:26
(25) и чего? количество попыток настраивается, задержка тоже
28 УдавВПопугаях
 
15.10.21
16:27
про встает колом не понял, правда, почему
29 PuhUfa
 
15.10.21
16:28
(14) Для текущей базы никакой ошибки не будет. Обработка вызвалась и она отработала. Если тебе так нужно знать результат ее выполнения, то позаботься написать код так, что бы в текущую базу вернулся результат, а не сваливать говнокод на то, что 1С не смогла ОписаниеОшибки()...
30 Kassern
 
15.10.21
16:29
(27) вы не задавались вопросом почему в типовой все обращения с внешними сервисами в попытке сделаны?) И какое вы количество укажите, если вам надо всегда запускать задание по крону?
31 УдавВПопугаях
 
15.10.21
16:29
(29) я не сваливаю, я просто не пользуюсь, лучше увидеть ошибку сразу, чем потом гадать, а что там произошло
32 Мультук
 
гуру
15.10.21
16:30
(24)

В некой компании при проведении документов (именно в модуле) происходила отсылка email почты.
Зачем, наверное, уже никто и не знает. Зачем так было сделано - тоже.
Естественно никаких попыток, флагов отключений этой опции. И вот smtp-сервре лёг.

Бизнес-процессы в базе тоже. Письмо не отсылается -- документ не проводится.
Остановить систему нельзя.

smtp сервер жостко внесен в код.

P.S.
Хэппи-енд наступил, спустя полчаса, smtp-сервер отпустило
33 ДенисЧ
 
15.10.21
16:31
(32) Я так понимаю, нашли того, кто сделал такое, и он тоже лёг?
34 Kassern
 
15.10.21
16:31
(32) а всего то надо было создавать ЭлектронноеПисьмоИсходящее, а его рассылка как раз по рег заданию и происходит)
35 Мультук
 
гуру
15.10.21
16:32
(33) Там все такое (судя по рассказам) - так что только массовые расстрелы
36 Мультук
 
гуру
15.10.21
16:33
(34) БСП не тру. Только 100500 одинаковыых функций.

P.S.
Хотя иногда БСП с его dll-hell тоже не тру. Или меня это так в пятницу колбасит?
37 ДенисЧ
 
15.10.21
16:39
(36) Зачем ты трёшь БСП? О_о
38 УдавВПопугаях
 
15.10.21
16:55
он как раз не трет
2 + 2 = 3.9999999999999999999999999999999...