Вход | Регистрация



Как передать текст ошибки из веб-сервиса?

Как передать текст ошибки из веб-сервиса?
Я
   vi0
 
25.09.16 - 06:22
Поделитесь, кто как передает текст ошибки из веб-сервсиса в случае различных своих проверок данных?
В случае с внешним соединением есть удобная типовая функция СообщитьОбОшибке, правда текст выводится пользователю не очень читабельный, зато минимум усилий со стороны разработчика.
А как в случае с вызовами веб-сервсиса?
Процедура СообщитьОбОшибке(ТекстСообщения, Отказ = Ложь, Заголовок = "", Статус = Неопределено) Экспорт
    #Если ВнешнееСоединение Тогда

    ВызватьИсключение (ТекстСообщения);
    #Иначе
...
 
 
   Armando
 
1 - 25.09.16 - 08:41
ВызватьИсключение для вебсервиса тоже работает
   vi0
 
2 - 25.09.16 - 09:41
(1) конечно работает, но здесь ты не сможешь использовать директиву для внешнего соединения, как в примере (0), поэтому и спрашиваю, какой есть опыт
   TreeDogNight
 
3 - 25.09.16 - 09:46
Вы из 1й базы вызываете метод Веб-сервиса 2й базы, и в случае ошибки хотите вывести сообщение в 1й базе или во 2й?
   vi0
 
4 - 25.09.16 - 09:47
(3) в вызывающей базе, т.е. в 1й
   TreeDogNight
 
5 - 25.09.16 - 10:52
Что вам мешает получить из метода текст ошибки (в случае её возникновения) и сообщить этот текст в 1й базе?
   Mauser
 
6 - 25.09.16 - 10:55
(5) Он хочет минимум усилий со стороны разработчика.
   vi0
 
7 - 25.09.16 - 11:26
(5) так можно
интересен опыт других
   Mauser
 
8 - 25.09.16 - 11:35
(7) Можно по разному. В каждом конкретном случае - свои требования. Надо ли тебе отслеживать отдельно таймауты и 500 - iis поломан, 500 - ховнокодер поделил на ноль и 200 - у тебя кривой склад, но можешь продолжать и т.п. Как со стороны вызывающего, так и со стороны сервера.
У тебя же в (0) подход однозначен - есть удобная функция, я не осилил подобную для веб-сервиса, а расскажите мне.
   vi0
 
9 - 25.09.16 - 12:01
(8) не нужно так нервничать, уважаемый
вопрос в (0) у меня простой:
> Поделитесь, кто как передает текст ошибки из веб-сервсиса
   TreeDogNight
 
10 - 25.09.16 - 13:00
(9) В методах Веб-сервисов я обычно возвращаю сереализованную JSON-структуру. Если во время исполнения алгоритма метода возникает какая-то ошибка, я возвращаю структуру с ключем "Error" и текстом ошибки, и уже на стороне вызывающей базы проверяю принятую структуру на содержание данного ключа. Если он есть, то просто сообщаю значение этого ключа.
 
 Рекламное место пустует
   vi0
 
11 - 25.09.16 - 13:26
(10) И результат веб-сервисов всегда структура?
   TreeDogNight
 
12 - 25.09.16 - 13:44
(11) Да.
   vi0
 
13 - 26.09.16 - 07:28
а есть аналог #Если ВнешнееСоединение для веб-сервиса?
в курсе кто?
   Mauser
 
14 - 26.09.16 - 07:49
(13) Конечно в курсе - в СП описаны все варианты.
   vi0
 
15 - 26.09.16 - 10:06
(14) что ты не угомонишься никак
   Остап Сулейманович
 
16 - 26.09.16 - 10:10
(13) А зачем это? Модуль ВЕБ-сервиса и так выполняется только в веб-сервисе. Или имеется ввиду вызов (например) общего модуля от имени ВЕБ-сервиса? Так передай ему параметром фишку, что оно вызвано из ВЕБ-сервиса. Или о чем терки?
   vi0
 
17 - 26.09.16 - 10:14
(16) интересно, можно ли идентифицировать веб-сервис штатными средствами
   Остап Сулейманович
 
18 - 26.09.16 - 10:18
(17) Ф-у-у-ух. Ну прям сразу все стало понятно.
"идентифицировать веб-сервис штатными средствами"
Где?
1. На стороне клиента (который вызвал операцию ВЕБ-сервиса)
2. На стороне сервиса в общем (например) модуле.
3. В модуле самого ВЕБ-сервиса 0_0
   vi0
 
19 - 26.09.16 - 10:21
(18) ну если читать токль (17) то правда понять трудно
выше, например в (0) или (13) все написал
   Жан Пердежон
 
20 - 26.09.16 - 10:22
(18) забей, чел за 11 лет на мисте так и не научился вопросы формулировать; уже все рассказали, но он все равно ждет какого-то чуда
   Остап Сулейманович
 
21 - 26.09.16 - 10:27
(19) Если читать (0) - то ни о какой "идентификации" ВЕБ-сервиса речь не идет.
Чем не устраивает вариант в (10)?
Еще есть классика жанра - возвращаемая из ВЕБ-сервиса переменная с текстом ошибки. Если она пустая - ошибок нет и делать ничего не нужно. Если метод ВЕБ-сервиса заполнил эту переменную - на принимающей стороне
1. ВызватьИсключение с текстом ошибки принятой от ВЕБ-Сервиса.
2. ПоказатьПредупреждение с теми же исходными
3. ...
   Остап Сулейманович
 
22 - 26.09.16 - 10:27
+ (21) Зачем дополнительно идентифицировать ВЕБ-сервис я понять затрудняюсь. Или вы не уверены в том, кого вызывали?
   vi0
 
23 - 26.09.16 - 10:36
(22) > Зачем дополнительно идентифицировать ВЕБ-сервис я понять затрудняюсь
Например, операция веб-сервиса использует уже существующие процедуры содержащие в себе проверки и вызывающие процедуру СообщитьОбОшибке. Как я написал в (0) в случае вызова этих процедур по внешнему соединению вызывается исключение, т.к. есть идентификация контекста внешнего соединения.
   Жан Пердежон
 
24 - 26.09.16 - 10:58
(22) под "идентификацией" он подразумевает что-то типа следующего на стороне сервера:

ЭтоВебСервис = Ложь;

Для каждого Соединение из ПолучитьСоединенияИнформационнойБазы() Цикл
    Если Соединение.НомерСоединения = НомерСоединенияИнформационнойБазы() Тогда
        ЭтоВебСервис  = Соединение.ИмяПриложения ="WSConnection";
    КонецЕсли;
КонецЦикла;
   vi0
 
25 - 26.09.16 - 11:16
неплохо


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует