Удаление скриптов

Поддержка
  • @paini Дополнительные вопросы:

    1. Что в коде проекта?
    2. Обратите внимание, пуст исключительно проект или справа в интерфейсе тоже пусто?
    3. Переустанавливали BAS после того, как проблема началась? (удалить BAS с компьютера и установить снова)
  • @romanbiz Пуст только скрипт.Все ресурсы сохранены и название тоже.Ничего приложить не могу,потому что скрипт большой был и в этот раз даже почему то бэкапов нет.Просто нет слов и ими делу уже не помочь.

  • Воспользуюсь вашими советами друзья,спасибо.

  • @paini Вы не ответили что в коде

  • @romanbiz Так кода нет больше.Я не могу вам сказать увы...

  • @paini Там пусто? 0_1559250124330_819ce3e1-1d55-438c-ba06-b1e513347015-image.png

  • 0_1559250579204_6a78cc3e-68b2-4003-988a-513687ac2df5-image.png ![alt text](image url)

  • @paini Тогда проект вроде как жив, нужно разбираться почему не подгружается, на форуме были такие случаи, попробуйте поискать для начала. А почему бекапы не сохранились? Вы где их наличие проверяете? Бекапы делаются автоматически.

  • @romanbiz Я сам удивляюсь,почему такая аномалия произошла.Ранее всегда бэкапы помогали,а именно этого проекта нет.

  • проверяю в папке БАСа в projectbackups

  • @paini Советую скопировать текущий скрипт, дабы не потерять возможность его восстановления. И уже пытаться реанимировать работая с его кодом. Подозреваю что в самом коде какой-то баг, который не дается загрузится проекту.

  • Я теперь буду их как раньше на флэшку еще скидывать

  • Всем привет!
    Аналогичная хрень. И не в первый раз. Сам скрипт (во вкладке "Скрипт") ни куда не исчез и даже запускается и выполняется. А вот вкладка сценария пуста. И кнопки управления тоже отсутствуют. Т.е. запустить его в режиме записи я не могу.
    В бэкапах та же беда. Последние бэкапы имеют ту же проблему что и основной файл, т.е. пустое окно сценария. Более ранние (например, утренние) бэкап версии файла открываются нормально, но они естественно не содержат последних внесённых изменений.
    Выглядит всё так:
    0_1561228162346_screenshot.1.jpg

    Версия 21.9.2, но это несколько раз случалось и на предыдущих версиях. Переустанавливать не пробовал.
    Такое ощущение, что случайно нажал какую то клавишу и содержимое окна оказалось скрытым.

    Есть у кого нибудь предположения что это может быть?

    Повторюсь: в режиме запуска работает, а в режиме записи окно сценария пустое.

  • @nevolshebnik said in Удаление скриптов:

    Всем привет!
    Аналогичная хрень. И не в первый раз. Сам скрипт (во вкладке "Скрипт") ни куда не исчез и даже запускается и выполняется. А вот вкладка сценария пуста. И кнопки управления тоже отсутствуют. Т.е. запустить его в режиме записи я не могу.
    В бэкапах та же беда. Последние бэкапы имеют ту же проблему что и основной файл, т.е. пустое окно сценария. Более ранние (например, утренние) бэкап версии файла открываются нормально, но они естественно не содержат последних внесённых изменений.
    Выглядит всё так:

    Версия 21.9.2, но это несколько раз случалось и на предыдущих версиях. Переустанавливать не пробовал.
    Такое ощущение, что случайно нажал какую то клавишу и содержимое окна оказалось скрытым.

    Есть у кого нибудь предположения что это может быть?

    Повторюсь: в режиме запуска работает, а в режиме записи окно сценария пустое.

    Скорее всего вы в режиме записи одновременно правили что то и в тексте кода скрипта и в действиях визуального конструктора. В таком случае может не правильно сохранится техническое описания действия для рабочей зоны BAS (зелёная строка, начиняющаяся с /*Dat:)

    Приведу пример на будущее, чтобы можно было ссылаться.

    Вот простой скрипт состоящий из 5 действий "лог"
    0_1561242052538_715f17d2-aa17-49f7-9916-ee5af0bbfcf6-изображение.png

    Тестовый скрипт

    Открываем код скрипта и видим код первого действия:

       section_start("", 548944399)!
       /*Dat:eyJzIjoibG9nIiwidiI6MSwiZiI6W10sInV3IjoiMCIsInV0IjoiMCIsInV0byI6IjAiLCJ1bSI6IjAiLCJkIjpbeyJpZCI6IkxvZ1RleHQiLCJ0eXBlIjoiY29uc3RyIiwiZGF0YSI6ItCX0LTQtdGB0YwiLCJjbGFzcyI6InN0cmluZyJ9XX0=*/
       log("Здесь")
       section_end()!
    

    В строке /*Dat:

    /*Dat:eyJzIjoibG9nIiwidiI6MSwiZiI6W10sInV3IjoiMCIsInV0IjoiMCIsInV0byI6IjAiLCJ1bSI6IjAiLCJkIjpbeyJpZCI6IkxvZ1RleHQiLCJ0eXBlIjoiY29uc3RyIiwiZGF0YSI6ItCX0LTQtdGB0YwiLCJjbGFzcyI6InN0cmluZyJ9XX0=*/
    

    находится закодированный в base64 json описания кода действия для отображения в рабочей зоне BAS'a

    {"s":"log","v":1,"f":[],"uw":"0","ut":"0","uto":"0","um":"0","d":[{"id":"LogText","type":"constr","data":"Здесь","class":"string"}]}
    

    Если испортить json строку, или просто удалить часть символов технического описания действия из кода

    /*Dat:eyJzIjoibG9nIiwidiI6MSwiZiI6WoiMCIsInV0IjoiMCIsInV0byI6IjAiLCJ1bSI6IIjpbeyJpZCI6IkxvZ1RleHQiLCJ0eXBlIjoiY29uZGF0YSI6ItCX0LTQtdGB0YwiLCJjbGFzcyI6InN0cmluZyJ9XX0=*/
    

    то рабочая зона окажется пуста, даже без кнопок навигации:

    0_1561242375707_ddcc564e-ddf5-44f4-97b6-283f5b468441-изображение.png

    так как это техническое описание действий нужно только для режима "записи", то в режиме "запуска" скрипт работает без ошибок:

    0_1561242432378_5c4a9308-33b0-40a6-b1f3-9d11ed707717-изображение.png

    Тестовый "испорченный" скрипт



    Если невалидный json технического описания находится в функции

    0_1561243029641_584855b1-c0c5-4a6f-af2e-479ef5628fe3-изображение.png

    то зайти в эту функцию не получится:

    0_1561242991276_support95.gif

    Тестовый скрипт без ошибки
    тестовый скрипт с ошибкой



    @support в курсе, и сказал, что если подобные случаи будут повторятся, то он исправит.

  • Добавлю сюда решение проблемы с повреждённым техническим описанием действий. Возможно оно подойдёт и для лайфхаков, но сама проблема появляется на форуме крайне редко, по этому оставлю решение здесь.

    Скрипт всего в 3 действия:
    0_1561250262645_995a1740-b9fc-4af3-b3cb-18d40b1408f0-изображение.png

    Находит регуляркой все технические описания действий и удаляет, если json в base64 битый

    IsJsonString = function (str) {
        try {
            JSON.parse(base64_decode(str));
        } catch (e) {
            return false;
        }
        return true;
    }
    
    var re = new RegExp("\\/\\*Dat:(.*?)\\*\\/", "g")
    [[RESULT]] = [[FILE_CONTENT]].replace(re, function (match, p1) {
        if (IsJsonString(p1)) {
            return match
        }else{
            return
        }
    }); 
    

    Сам скрипт



    Вот так выглядит результат работы скрипта над скриптом с "ошибкой":
    0_1561250565309_4276a074-b55f-4480-8cef-41b2de80a8e3-изображение.png

  • Спасибо за ответ.
    Дело в том, что скрипт руками я не правлю. Недостаточно знаний.
    И вкладку со скриптом открыл только чтобы убедиться, что скрипт есть. И скриншот сделать.
    Поэтому со 100% уверенностью могу сказать, что моей "заслуги" в этом нет. Вероятно какой то баг при сохранении проекта. И, конечно, хотелось бы в будущих версиях от него избавиться.

    За скрипт - "исправитель" очень благодарен. Сегодня непременно им воспользуюсь.

  • @nevolshebnik Отпишите о результатах, пожалуйста.

  • К сожалению предоставленный скрипт мне не помог, но направил ход мыслей в правильную сторону. За него в любом случае спасибо.
    Методом исключения из скрипта кусков кода, удалось найти код, из-за которого окно сценария было пустым.
    Определить почему BAS так на него реагировал мне не хватило знаний. Я просто из скрипта этот "плохой" код убрал и восстановил его заново в окне сценария (это было буквально несколько шагов).
    В итоге причина этой проблемы не выяснена и возможны повторения ситуации.

  • @nevolshebnik said in Удаление скриптов:

    К сожалению предоставленный скрипт мне не помог, но направил ход мыслей в правильную сторону. За него в любом случае спасибо.
    Методом исключения из скрипта кусков кода, удалось найти код, из-за которого окно сценария было пустым.
    Определить почему BAS так на него реагировал мне не хватило знаний. Я просто из скрипта этот "плохой" код убрал и восстановил его заново в окне сценария (это было буквально несколько шагов).
    В итоге причина этой проблемы не выяснена и возможны повторения ситуации.

    Скиньте в личку скрипт с ошибкой и исправленный вариант, посмотрю

  • @fox все не рабочии и старые версии удалил, бэкапы тоже, чтобы мусора меньше было) Если подобное повториться, отправлю.