From 2d19904c80b7622bfe2c217aafcdae4311fe95f3 Mon Sep 17 00:00:00 2001 From: Mr-Rm Date: Thu, 2 Jan 2025 17:20:02 +0400 Subject: [PATCH] =?UTF-8?q?fix=20#1481:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=92=D1=8B=D1=87=D0=B8=D1=81?= =?UTF-8?q?=D0=BB=D0=B8=D1=82=D1=8C()=20=D1=81=20=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D0=B4=D1=83?= =?UTF-8?q?=D1=80=D1=8B=20+=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OneScript.Core/Contexts/Variable.cs | 10 +++------- tests/eval.os | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/OneScript.Core/Contexts/Variable.cs b/src/OneScript.Core/Contexts/Variable.cs index 532fe9241..404a4a7ca 100644 --- a/src/OneScript.Core/Contexts/Variable.cs +++ b/src/OneScript.Core/Contexts/Variable.cs @@ -32,15 +32,11 @@ public static IVariable Create(IValue val, string symbol) public static IVariable CreateReference(IVariable variable, string refName) { - if (variable is VariableReference vref) + if (variable is VariableReference vref && vref._reference is IndexedValueReference iv) { - if (vref._reference is IndexedValueReference iv) - { - _ = iv.Value; - } - - return variable; + _ = iv.Value; // проверить правильность индекса } + return new VariableReference(variable, refName); } diff --git a/tests/eval.os b/tests/eval.os index 014afd3d5..9fc1e87d3 100644 --- a/tests/eval.os +++ b/tests/eval.os @@ -25,6 +25,7 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьВложенныеВызовыВыполнить"); ВсеТесты.Добавить("ТестДолжен_ПроверитьВызовыВыполнитьСПопытками"); ВсеТесты.Добавить("ТестДолжен_ПроверитьРаботоспособностьВПодключенныхСценариях"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьРаботоспособностьСПараметрамиПроцедуры"); Возврат ВсеТесты; КонецФункции @@ -341,3 +342,16 @@ А.Тест(); КонецПроцедуры + +Процедура РаботаСПараметрамиПроцедуры(Элемент1, Элемент2) + Рез = ""; + Для Сч = 1 По 2 Цикл + Рез = Рез + Вычислить("Элемент" + Сч); + КонецЦикла; + юТест.ПроверитьРавенство("Поле1Поле2", Рез); +КонецПроцедуры + +Процедура ТестДолжен_ПроверитьРаботоспособностьСПараметрамиПроцедуры() Экспорт + Структура=Новый Структура("Поле1,Поле2","Поле1","Поле2"); + РаботаСПараметрамиПроцедуры(Структура.Поле1, Структура.Поле2); +КонецПроцедуры