HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...
Bug #941533
open8.3.19-22+ ПодробноеПредставлениеОшибки() отрезает самую нужную часть описания ошибки
0%
Description
https://partners.v8.1c.ru/forum/t/2048214/m/2048214
https://bugboard.v8.1c.ru/error/000121166
Конфигурация ПО
1С 8.3.19.1331, 8.3.20.1710, 8.3.21.1197, 8.3.22
Проблема
Функция ПодробноеПредставлениеОшибки обрезает описание ошибки.
Воспроизведение
Восстановить базу из выгрузки. Запустить управляемое клиентское приложении. Нажать кнопку "Команда1". При этом выполнится код
Объект = Справочники.Справочник1.Тест.ПолучитьОбъект();
Попытка
Объект.Записать();
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Сообщить("---" + Символы.ПС + ОписаниеОшибки());
КонецПопытки;
// Справочники.Справочник1.МодульОбъекта:
Процедура ПередЗаписью(Отказ)
ВызватьИсключение 1; // Тест
КонецПроцедуры
И в окно сообщений будет выведено
1 {ОбщаяФорма.Форма.Форма(11)}: Объект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
1
{ОбщаяФорма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПередЗаписью': {Справочник.Справочник1.МодульОбъекта(8)}: 1
В первом сообщении не видно строки исходного кода, которой возникла ошибка, т.е. {Справочник.Справочник1.МодульОбъекта(8)}
А ожидалось ее увидеть.
В 8.3.18 и ниже она в первом сообщении выводится.
Обход проблемы
Использовать прикладную функцию
Функция ПодробноеПредставлениеОшибкиХ(ИнформацияОбОшибке) Экспорт #Если Сервер И Не Сервер Тогда ИнформацияОбОшибке = ИнформацияОбОшибке(); #КонецЕсли Если ИнформацияОбОшибке = Неопределено Тогда Результат = "<>"; Иначе Результат = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.УстановитьТекст(Результат); НомерПоследнейСтроки = ТекстовыйДокумент.КоличествоСтрок(); Если Найти(ТекстовыйДокумент.ПолучитьСтроку(НомерПоследнейСтроки), "{") = 0 Тогда Пока Истина И ИнформацияОбОшибке.Причина <> Неопределено И (Ложь Или ЗначениеЗаполнено(ИнформацияОбОшибке.Причина.ИмяМодуля) Или ИнформацияОбОшибке.Причина.Причина <> Неопределено) Цикл ИнформацияОбОшибке = ИнформацияОбОшибке.Причина; КонецЦикла; ТекстовыйДокумент.УдалитьСтроку(НомерПоследнейСтроки); Результат = ТекстовыйДокумент.ПолучитьТекст() + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции
Files
Related issues
Updated by Сергей Старых almost 3 years ago
- Related to Bug #941636: Исправлено получение полных описаний ошибок на платформе 8.3.19+ added
Updated by Сергей Старых over 1 year ago
- Subject changed from 8.3.19-21+ ПодробноеПредставлениеОшибки() отрезает самую нужную часть описания ошибки to 8.3.19-22+ ПодробноеПредставлениеОшибки() отрезает самую нужную часть описания ошибки
- Description updated (diff)