domjon / enterprise-integrator

Automatically exported from code.google.com/p/enterprise-integrator
0 stars 0 forks source link

Отображение стека вызова #64

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Форма и раздел, в котором возникает
ошибка:

Profiler

Что происходит вместо ожидаемого
события?

При расшифровке поля Context не полностью 
формируется стек вызовов, выводится только 
1 строка.

Исключения НЕ приводящие к этой ошибке:

В Context не должно быть подобных строк

Документ.НачислениеАбонентамСписком.Модул
ьОбъекта : 79 : 
Расчеты.РасчитатьЗаписиРегистраНачислени�
�(Ссылка, ДополнительныеСвойства);

Original issue reported on code.google.com by German.K...@gmail.com on 6 Jun 2013 at 7:04

GoogleCodeExporter commented 8 years ago
Заменить текст процедуры 
вПолучитьДеревоКонтекста в форме тжДанные 
на следующий

//Формирует дерево констекста
//Параметры:
//  Представление - <Строка>. Представление 
дерева
//
Процедура вПолучитьДеревоКонтекста(Знач 
Представление)
    RegExp.Pattern="(?:\s*([^\n]*): ([0-9]*)(?: :([^\n]*))?(?:\n|$))|(?:\s*{([^\n]*)})";//"(?:\s*([^\n]*): ([0-9]*) :([^\n]*)(?:\n|$))|(?:\s*{([^\n]*)})";//"\s*([^\n]*): ([0-9]*) :([^\n]*)(?:\n|$)"; 
    Контекст.Строки.Очистить();
    НоваяСтрока = Контекст;
    Для Каждого Вызов из RegExp.Execute(Представление) Цикл
        Модуль=СокрЛП(""+Вызов.SubMatches(0) + Вызов.SubMatches(3));
        Если //Не ПустаяСтрока(Модуль) И  //модуль может быть пустой если идет конструкция Выполнить/Вычислить 
             Не Модуль="Форма."+МетаданныеФормы
            И Не Модуль="ВнешняяОбработка."+ЭтотОбъект.Метаданные().Имя Тогда
            НоваяСтрока=НоваяСтрока.Строки.Добавить();
            Если Вызов.SubMatches(3) = Неопределено Тогда
                //это встроенный язык
                НоваяСтрока.Модуль=Модуль;
                НоваяСтрока.ТекстВызова=СокрЛП(Вызов.SubMatches(2));
                НоваяСтрока.НомерСтроки=Число(СокрЛП(Вызов.SubMatches(1)));
            Иначе
                //это интерфейс
                Модуль = СтрЗаменить(Модуль,"}/{",Символы.ПС);
                НоваяСтрока.Модуль     = СтрПолучитьСтроку(Модуль,1);
                Ном = 2;
                Для Ном = 2 ПО СтрЧислоСтрок(Модуль) Цикл
                    НоваяСтрока.ТекстВызова = НоваяСтрока.ТекстВызова + " - " + СтрПолучитьСтроку(Модуль,Ном);
                    Ном = Ном + 1;
                КонецЦикла;
                НоваяСтрока.ТекстВызова = ?(Не ПустаяСтрока(НоваяСтрока.ТекстВызова),Сред(НоваяСтрока.ТекстВызова,4),"");
                НоваяСтрока.Интерфейс   = Истина;
            КонецЕсли; 
        КонецЕсли; 
    КонецЦикла;
    Если Контекст.Строки.Количество()>0 Тогда
        ЭлементыФормы.Контекст.Развернуть(Контекст.Строки[0], Истина);
    КонецЕсли;
КонецПроцедуры

Original comment by German.K...@gmail.com on 30 Jun 2013 at 10:53

Attachments:

GoogleCodeExporter commented 8 years ago
http://main.1c-ei.ru/site/enterpriseinegrator1c/Home/versions/2590

Original comment by German.K...@gmail.com on 20 Sep 2013 at 6:45