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...":https://support.plan.io/news/187
Bug #941533
open8.3.19-21+ ПодробноеПредставлениеОшибки() отрезает самую нужную часть описания ошибки
0%
Description
https://partners.v8.1c.ru/forum/t/2048214/m/2048214
Конфигурация ПО
1С 8.3.19.1331, 8.3.20.1710, 8.3.21.1197
Проблема
Функция ПодробноеПредставлениеОшибки обрезает описание ошибки.
Воспроизведение
Восстановить базу из выгрузки. Запустить управляемое клиентское приложении. Нажать кнопку "Команда1". При этом выполнится код
Объект = Справочники.Справочник1.Тест.ПолучитьОбъект();
Попытка
Объект.Записать();
Исключение
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Сообщить("---" + Символы.ПС + ОписаниеОшибки());
КонецПопытки;
// Справочники.Справочник1.МодульОбъекта:
Процедура ПередЗаписью(Отказ)
ВызватьИсключение 1; // Тест
КонецПроцедуры
И в окно сообщений будет выведено
1 {ОбщаяФорма.Форма.Форма(11)}: Объект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
1
{ОбщаяФорма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - 'ПередЗаписью': {Справочник.Справочник1.МодульОбъекта(8)}: 1
В первом сообщении не видно строки исходного кода, которой возникла ошибка, т.е. {Справочник.Справочник1.МодульОбъекта(8)}
А ожидалось ее увидеть.
В 8.3.18 и ниже она в первом сообщении выводится.
Обход проблемы
Использовать прикладную функцию
Функция ПодробноеПредставлениеОшибкиХ(ИнформацияОбОшибке) Экспорт #Если Сервер И Не Сервер Тогда ИнформацияОбОшибке = ИнформацияОбОшибке(); #КонецЕсли Если ИнформацияОбОшибке = Неопределено Тогда Результат = "<>"; Иначе Результат = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); ТекстовыйДокумент = Новый ТекстовыйДокумент; ТекстовыйДокумент.УстановитьТекст(Результат); НомерПоследнейСтроки = ТекстовыйДокумент.КоличествоСтрок(); Если Найти(ТекстовыйДокумент.ПолучитьСтроку(НомерПоследнейСтроки), "{") = 0 Тогда Пока Истина И ИнформацияОбОшибке.Причина <> Неопределено И (Ложь Или ЗначениеЗаполнено(ИнформацияОбОшибке.Причина.ИмяМодуля) Или ИнформацияОбОшибке.Причина.Причина <> Неопределено) Цикл ИнформацияОбОшибке = ИнформацияОбОшибке.Причина; КонецЦикла; ТекстовыйДокумент.УдалитьСтроку(НомерПоследнейСтроки); Результат = ТекстовыйДокумент.ПолучитьТекст() + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции

Files
Related issues
Updated by Сергей Старых about 1 year ago
- Related to Bug #941636: Исправлено получение полных описаний ошибок на платформе 8.3.19+ added