-
Notifications
You must be signed in to change notification settings - Fork 107
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
Несовместимое поведение Выполнить, закрепленное в тестах eval #1412
Comments
Reopen, всё хуже. Процедура Вторая(Пар)
Выполнить "сообщить(ТипЗнч(Рез)); Лок = Пар + 1;";
КонецПроцедуры
Процедура ТестДолжен_ПроверитьВложенныеВызовыВыполнить()
Рез = 1;
Выполнить "сообщить(ТипЗнч(Рез)); Вторая(2);";
КонецПроцедуры
ТестДолжен_ПроверитьВложенныеВызовыВыполнить() OneScript после внесенных исправлений: |
А может ну его нафиг? На лицо протекание области видимости переменной, причём ничем не обоснованное |
Ну дык я это и спилил |
Так было всегда испокон в 1Скрипте и это не про Выполнить, а вообще про разные моменты инициализации переменных 1С
1Скрипт
P.S. Посмотрел повнимательнее, кажется, надо лучше изучить поведение 1С. То, что раньше у нас было, как у них - это чистая случайность. |
Переоткрыл по причине: "Надо изучить доскональнее поведение 1С" |
Итак, поиск странностей. // обращение к переменной _как бы_ до объявления.
Выполнить "Сообщить(""ТП:""+ТипЗнч(ТП)+""=""+ТП);";
ТП = -10; ТП:Неопределено= |
А вот это работает только в 1С: // проброс переменной модуля внутрь процедуры и её возврат
Процедура Проброс()
ТП2 = 2;
Выполнить "сообщить(""<ТП=""+ТП+"":""+ТипЗнч(ТП));" // Onescript падает здесь
" ТП2 = ТП+1; ТП = ложь;"
" сообщить("">ТП=""+ТП+"":""+ТипЗнч(ТП));";
сообщить("локальная ТП2="+ТП2+":"+ТипЗнч(ТП2));
КонецПроцедуры
ТП = -9;
Проброс();
Выполнить "сообщить(""после вызова ТП=""+ТП+"":""+ТипЗнч(ТП));"; <ТП=-9:Число |
(опуская примеры, краткий вывод) |
@Mr-Rm спасибо за анализ! |
Существующий тест eval https://github.com/EvilBeaver/OneScript/blob/develop/tests/eval.os#L270 описывает поведение, которое не поддерживается в 1С. И судя по тесту, он тестирует не очень хорошую особенность работы ВМ 1Скрипт, исправляемую в рамках #1000 и #268
1C работает логично и не выполняет данный код из теста eval
The text was updated successfully, but these errors were encountered: