@Jinmy Неправильно составлен запрос. loggedln у вас вложено в result.
Как сейчас устроено ветвление через if-else?
-
Столкнулся с проблемой в ветвлении скрипта. Версия БАС 22.9
Конкретно - скрипт сначала идет по ветке if, затем по ветке else (после того как отработали вложенные внутрь них блоки if/else)
Искал на форуме похожие ошибки - встречаются.Логику проверил - в ней ошибок быть не должно. Есть предположение, что при многократном использовании вложенных if/else сбивается учет в них. В простых ветвлениях такой ошибки никогда не возникало.
Прежде чем начать разбираться, хотел бы узнать как БАС запоминает условия для ветвлений. И не может ли быть такого, что повторно используется одна и та же "ячейка" памяти, что приводит к искажению в логике?
-
@oleg4ever said in Как сейчас устроено ветвление через if-else?:
понимаю о чем ты. примерную схему лага составил.
IF1 = true
IF2 = false
ELSE2 - верно выполняется этот блок
ELSE1 - потом перескакивает сюда, чего не должно бытьнаверно вложения не предусмотрены.
Можете приложить тестовый проект?
-
Нормально прикладывайте проект
Я понимаю. Но не выкладывать же проект на 3К кубиков.
Там по всему скрипту эти ветвления - где конкретно сбой не понятно.
Потому и запросил сначала заметками других поделиться.IF1 = true
IF2 = false
ELSE2 - верно выполняется этот блок
ELSE1 - потом перескакивает сюда, чего не должно бытьtest.xml
О, спасибо за модель! То что надо, протестирую!
-
Метки наверно используете
Как раз метки как суррогат пытаюсь свести к минимуму.
Меж функциями переход по меткам вообще считаю какой-бякой) (даже не проверял как оно работает)
Меток не было вообще в изначальной версии.Теперь внедряю и ошибок становится меньше.
Стараюсь сделать "одноэтажный алгоритм" с исопльзованием if без else с переносом по меткам.Ну и вроде когда никак без вложенного ветвления, то помогает обращение к функции. Но пока не 100% инфа.
-
@IvanM said in Как сейчас устроено ветвление через if-else?:
Метки наверно используете
Как раз метки как суррогат пытаюсь свести к минимуму.
Меж функциями переход по меткам вообще считаю какой-бякой) (даже не проверял как оно работает)
Меток не было вообще в изначальной версии.Теперь внедряю и ошибок становится меньше.
Стараюсь сделать "одноэтажный алгоритм" с исопльзованием if без else с переносом по меткам.Ну и вроде когда никак без вложенного ветвления, то помогает обращение к функции. Но пока не 100% инфа.
Какое то гадание на кофейной гуще, опишите ошибку более подробно, приложите наглядный тестовый скрипт и если это баг мы это исправим
-
@Fox said in Как сейчас устроено ветвление через if-else?:
приложите наглядный тестовый скрипт
Да. Постараюсь как можно скорее.
Пока не получилось повторить ошибку искусственно((
Смотрю что делал в исходном скрипте. Возможно причина в изменении значении переменных (по которым определяются условия) внутри самих веток if/else.
Когда что-либо обнаружу - прикреплю пример.
Довольно длинный алгоритм, много что происходит, трудно понять в чем может быть загвоздка. -
@smeckoi77 said in Как сейчас устроено ветвление через if-else?:
@IvanM Бывают глюки, когда копируешь кубики с метками. Также замечал, что бывает и при копировании кубиков с циклами.
Можете описать ошибку более подробно? Как я могу повторить эту ошибку?
-
@Fox said in Как сейчас устроено ветвление через if-else?:
@smeckoi77 said in Как сейчас устроено ветвление через if-else?:
@IvanM Бывают глюки, когда копируешь кубики с метками. Также замечал, что бывает и при копировании кубиков с циклами.
Можете описать ошибку более подробно? Как я могу повторить эту ошибку?
Создай в одном проекте метки и перекинь их другой. У меня был такой баг, пришлось заново метки применять.
-
@FastSpace said in Как сейчас устроено ветвление через if-else?:
@Fox said in Как сейчас устроено ветвление через if-else?:
@smeckoi77 said in Как сейчас устроено ветвление через if-else?:
@IvanM Бывают глюки, когда копируешь кубики с метками. Также замечал, что бывает и при копировании кубиков с циклами.
Можете описать ошибку более подробно? Как я могу повторить эту ошибку?
Создай в одном проекте метки и перекинь их другой. У меня был такой баг, пришлось заново метки применять.
Простое копирование действий с метками сработало корректно, может названия меток были особыми?

-
@Fox said in Как сейчас устроено ветвление через if-else?:
Простое копирование действий с метками сработало корректно, может названия меток были особыми?
Другое.
В общем сегодня фиксанул у себя в проекте такой баг:
1)Вызов функции 1 (Создать профиль).
2)Внутри функции 1 был вызов функции 2 (Получить отпечаток с перфект канвас)
3)Внутри функции 2 были метки и было условие if-else, внутри этого else был еще один if-else и когда шло по второй ветке else и возвращалась меткой, то функция 2 просто зависала после успешной ее обработки (был получен отпечаток с канвас) и дальше ничего не происходило (1 из 5000 случаев где-то). Убрал этот второй if из первой ветки else и перенес его в функцию 1 и зависать перестало.
Вывод для себя: Не делать лишних if в ветке else когда еще вызвана функция с метками.
-
@tet-vivi said in Как сейчас устроено ветвление через if-else?:
@FastSpace проекты/проект был крупного размера?
Да, в крупных было когда переносил код, метки название баговалось на кразозяру и вопросы ?????????? приходилось пересоздавать метки.
-
@FastSpace said in Как сейчас устроено ветвление через if-else?:
@tet-vivi said in Как сейчас устроено ветвление через if-else?:
@FastSpace проекты/проект был крупного размера?
Да, в крупных было когда переносил код, метки название баговалось на кразозяру и вопросы ?????????? приходилось пересоздавать метки.
названия меток в кириллице были?
-
@FastSpace Вот никогда бы не подумал, что ты Кирилицей что то пишешь как Новички :)))
Мне как то дельный Совет Fox и UserTrue дали, стараться вообще Кириллицу не использовать ( у меня Ресурсы полностью на Русском были и был вот из за них даже глюк ) а тем более уж внутри Скрипта :)
И перед Функциями или Меткой, ставлю просто не большой Сон и не сглазить бы :)))
Но проблемы ушли :)
