|   |   | 
| 
 | Как уловить ошибку при проведений документа. | ☑ | ||
|---|---|---|---|---|
| 0
    
        antihacker 29.07.18✎ 13:32 | 
        Всем привет ! Вот так иногда мы запрещаем провести документ.
 ОбработкаПроведения(Отказ, РежимПроведения) Отказ= истина; сообщить("Найден детальный документ номером 123456 на текущий финансовый год !"); КонецПроцедуры Все нормально когда мы проводим документ интерактивно. А когда проводишь программно, то просто получаешь,,{HTTPСервис.СинхронизацияДокументов.Модуль(248)}: Ошибка при вызове метода контекста (Записать): Не удалось провести "Утвержденный план финансирования по расходам 2597-000000001 от 29.07.2018 16:03:03"! Как можно получить сообщение, которого ты получаешь при интерактивном проведений. | |||
| 1
    
        vde69 29.07.18✎ 13:51 | 
        надо делать так
 ОбработкаПроведения(Отказ, РежимПроведения) Отказ= истина; #ЕСЛИ тут какое то условие определяющее, что это сервис, я не помню на память какое ВызватьИсключение "Найден детальный документ номером 123456 на текущий финансовый год !" ; #ИНАЧЕ Отказ= истина; сообщить("Найден детальный документ номером 123456 на текущий финансовый год !"); #КонецЕсли КонецПроцедуры | |||
| 2
    
        vde69 29.07.18✎ 13:52 | 
        (1) тогда в сервисе функция ОписаниеОшибки() будет возвращать твой текст     | |||
| 3
    
        antihacker 29.07.18✎ 15:21 | 
        //Отказ= истина;
 #ЕСЛИ Отказ ТОГДА ВызватьИсключение "Найден детальный документ номером 123456 на текущий финансовый год !" ; #ИНАЧЕ #КОНЕЦЕСЛИ Вот так ? Не работает | |||
| 4
    
        quest 29.07.18✎ 15:26 | 
        по идее должно быть не Клиент вместо  Отказ в условии     | |||
| 5
    
        antihacker 29.07.18✎ 15:29 | 
        quest, не очень понял. Можешь перефразировать ответ ?     | |||
| 6
    
        quest 29.07.18✎ 15:33 | 
        #ЕСЛИ не клиент ТОГДА
 ВызватьИсключение "Найден детальный документ номером 123456 на текущий финансовый год !" ; #ИНАЧЕ сообщить("Найден детальный документ номером 123456 на текущий финансовый год !"); #КОНЕЦЕСЛИ | |||
| 7
    
        antihacker 29.07.18✎ 15:38 | 
        Это я понял. Дело в том что, когда провожу документ программно , все равно получаю такой ответ
 {HTTPСервис.СинхронизацияДокументов.Модуль(250)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ОбработкаПроведения': {Документ.УтвержденныйПланФинансированияПоРасходам.МодульОбъекта(24)}: Найден детальный документ номером 123456 на текущий финансовый год ! | |||
| 8
    
        antihacker 29.07.18✎ 15:38 | 
        А хотелось просто получить 
 "Найден детальный документ номером 123456 на текущий финансовый год !" | |||
| 9
    
        quest 29.07.18✎ 15:41 | 
        В документе, вместо сообщить пишешь - 
 ДополнительныеСвойства.Вставить("ПочемуНепПровели","Найден детальный документ номером 123456 на текущий финансовый год !") В методе вебсеривса ТекстОшибка = ""; попытка Док.Записать(РежимЗаписи.Проведление) исключение ТекстОшибки = Док.ДополнительныеСвойства.ПочемуНепПровели; конецпопытки Ну и дальше уже анализируешь что твам тебе надо. | |||
| 10
    
        Cyberhawk 29.07.18✎ 17:52 | 
        Ветка - перепись *овнокодеров     | |||
| 11
    
        Cyberhawk 29.07.18✎ 17:54 | 
        Я просто оставлю это здесь (фрагмент кода из ветки обработки исключения)
 ИнформацияОбОшибке = ИнформацияОбОшибке(); Причина = ИнформацияОбОшибке.Причина; Если Причина <> Неопределено Тогда #Если _ Тогда Причина = ИнформацияОбОшибке(); #КонецЕсли ТелоОтвета = Причина.Описание; КонецЕсли; ДополнительныеСообщения = ПолучитьСообщенияПользователю(); Для каждого ДополнительноеСообщение Из ДополнительныеСообщения Цикл ТелоОтвета = ТелоОтвета + Символы.ПС + ДополнительноеСообщение.Текст; КонецЦикла; | |||
| 12
    
        quest 29.07.18✎ 22:15 | 
        от попытки - не уйти все равно. а как передать  сообщение - это дело не важное. 
 Но за попытку засветить говнокод - +1 в карму тебе | |||
| 13
    
        vde69 29.07.18✎ 22:21 | 
        модуль проведения
 --------------------------------- #ЕСЛИ СCOMСоединение Тогда ВызватьИсключение "Найден детальный документ номером 123456 на текущий финансовый год !" ; #ИНАЧЕ сообщить("Найден детальный документ номером 123456 на текущий финансовый год !"); #КонецЕсли модуль от куда вызываешь проведение попытка Док.Записать(РежимЗаписи.Проведление) исключение ТекстОшибки = ОписаниеОшибки(); Сообщить (ТекстОшибки ) конецпопытки | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |