Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибка при попытке Вычислить() переменную в которой лежит системное перечисление #1481

Closed
sfaqer opened this issue Dec 31, 2024 · 3 comments

Comments

@sfaqer
Copy link
Contributor

sfaqer commented Dec 31, 2024

Опишите ошибку
Ошибка при попытке Вычислить() переменную в которой лежит системное перечисление

Воспроизведение ошибки
Steps to reproduce the behavior:

  1. Запустить код
    Процедура Старт(Элемент1, Элемент2)
    
        Для Сч = 1 По 2 Цикл
    	    Сообщить(Вычислить("Элемент" + Сч));
        КонецЦикла;
    КонецПроцедуры
    
    Старт(КодировкаТекста.UTF8, КодировкаТекста.ANSI);
  2. Увидеть ошибку
    Внешнее исключение (OneScript.Compilation.Binding.BindingException): Переменная stackvar уже определена}
    

Ожидаемое поведение
Ошибки нет, вычисляется значение системного перечисления

Окружение

  • ОС: Win11 23h2
  • Версия: 2.0.0.531-rc6-28905893+72229c7a580799caeb5bdbdee170161c09849090
@EvilBeaver
Copy link
Owner

а в единице нет такого?

@sfaqer
Copy link
Contributor Author

sfaqer commented Dec 31, 2024

а в единице нет такого?

Нет, в единице выводит ожидаемо:

UTF8
ANSI

@Mr-Rm
Copy link
Collaborator

Mr-Rm commented Jan 1, 2025

Не только перечисления:

Процедура Старт(Элемент1, Элемент2)
    Для Сч = 1 По 2 Цикл
	    Сообщить(Вычислить("Элемент" + Сч));
      КонецЦикла;
КонецПроцедуры

Структура=Новый Структура("Поле1,Поле2","Поле1","Поле2");
Старт(Структура.Поле1, Структура.Поле2);

Ошибка в строке: 3 / Внешнее исключение (OneScript.Compilation.Binding.BindingException): Переменная stackvar уже определена}

Без передачи в процедуру - работает:

Структура=Новый Структура("Поле1,Поле2","Поле1","Поле2");
Для Сч = 1 По 2 Цикл
	Сообщить(Вычислить("Структура.Поле" + Сч));
КонецЦикла;

Поле1
Поле2

EvilBeaver added a commit that referenced this issue Jan 3, 2025
fix #1481: исправлено Вычислить() с именами параметров процедуры +тест
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants