Skip to content

Commit

Permalink
Генерация шага по текущей строке табло переменных #2188
Browse files Browse the repository at this point in the history
  • Loading branch information
Pr-Mex committed Sep 1, 2024
1 parent fb8cb7f commit 3a67b6f
Showing 1 changed file with 57 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3684,6 +3684,63 @@

КонецПроцедуры

&НаКлиенте
Процедура ТаблоПеременныхПриАктивизацииСтроки(Элемент)

ШагПроверкиЗначенияПеременной = "";

ТекущиеДанные = Элементы.ТаблоПеременных.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;

СтрокаРодитель = ТекущиеДанные.ПолучитьРодителя();

Если ЗначениеЗаполнено(ТекущиеДанные.Имя) И ЗначениеЗаполнено(ТекущиеДанные.Значение) Тогда
Если ТекущиеДанные.Тип = "Строка" Тогда
Если СтрокаРодитель.СлужебнаяСтрока Тогда
ТекстШага = "Тогда переменная '%1' имеет значение '%2'";
Иначе
ТекстШага = "Тогда выражение внутреннего языка '" + ТекущиеДанные.ИсточникДанных + ".%1' имеет значение '%2'";
КонецЕсли;

ЗначениеПеременной = СтрЗаменить(ТекущиеДанные.Значение, "'", "\'");
ЗначениеПеременной = СтрЗаменить(ЗначениеПеременной, "|", "\|");
ШагПроверкиЗначенияПеременной = ПодставитьПараметрыВСтроку(ТекстШага, ТаблоПеременныхДополнитьИмяПеременной(ТекущиеДанные.Имя, ТекущиеДанные), ЗначениеПеременной);

ИначеЕсли ТекущиеДанные.Тип = "Булево" Тогда
ТекстШага = "Тогда выражение внутреннего языка '%1' Истинно";
Если ТекущиеДанные.Значение Тогда
ЗначениеПараметра = ТекущиеДанные.ИсточникДанных + "." + ТаблоПеременныхДополнитьИмяПеременной(ТекущиеДанные.Имя, ТекущиеДанные);
Иначе
ЗначениеПараметра = "НЕ " + ТекущиеДанные.ИсточникДанных + "." + ТаблоПеременныхДополнитьИмяПеременной(ТекущиеДанные.Имя, ТекущиеДанные);
КонецЕсли;
ШагПроверкиЗначенияПеременной = ПодставитьПараметрыВСтроку(ТекстШага, ЗначениеПараметра);

ИначеЕсли ТекущиеДанные.Тип = "Число" Тогда
Если СтрокаРодитель.СлужебнаяСтрока Тогда
ТекстШага = "Тогда переменная '%1' имеет значение %2";
Иначе
ТекстШага = "Тогда выражение внутреннего языка '" + ТекущиеДанные.ИсточникДанных + ".%1' имеет значение %2";
КонецЕсли;

ЗначениеПеременной = XMLСтрока(ТекущиеДанные.Значение);
ШагПроверкиЗначенияПеременной = ПодставитьПараметрыВСтроку(ТекстШага, ТаблоПеременныхДополнитьИмяПеременной(ТекущиеДанные.Имя, ТекущиеДанные), ЗначениеПеременной);

ИначеЕсли ТекущиеДанные.Тип = "Массив" ИЛИ ТекущиеДанные.Тип = "Структура" ИЛИ ТекущиеДанные.Тип = "Соответствие" Тогда
ТекстШага = "Тогда выражение внутреннего языка '" + ТекущиеДанные.ИсточникДанных + ".%1.Количество()' имеет значение %2";
ЗначениеПеременной = XMLСтрока(ТекущиеДанные.ПолучитьЭлементы().Количество());
ШагПроверкиЗначенияПеременной = ПодставитьПараметрыВСтроку(ТекстШага, ТаблоПеременныхДополнитьИмяПеременной(ТекущиеДанные.Имя, ТекущиеДанные), ЗначениеПеременной);

Иначе
ЗначениеПеременной = XMLСтрока(ТекущиеДанные.Значение);
ШагПроверкиЗначенияПеременной = ПодставитьПараметрыВСтроку(ТекстШага, ТекущиеДанные.Имя, ЗначениеПеременной);
КонецЕсли;

КонецЕсли;

КонецПроцедуры

#КонецОбласти

#Область ОбработкаСобытийЭлементовФормы
Expand Down

0 comments on commit 3a67b6f

Please sign in to comment.