Closed GoogleCodeExporter closed 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:
http://main.1c-ei.ru/site/enterpriseinegrator1c/Home/versions/2590
Original comment by German.K...@gmail.com
on 20 Sep 2013 at 6:45
Original issue reported on code.google.com by
German.K...@gmail.com
on 6 Jun 2013 at 7:04