Code Monkey home page Code Monkey logo

onescript's People

Contributors

240596448 avatar absolemus avatar akpaevj avatar alexkmbk avatar aliczin avatar andreyshv avatar arkuznetsov avatar artbear avatar bambr1975 avatar bapho-bush avatar chipazawra avatar dependabot[bot] avatar dmpas avatar dvakor avatar evilbeaver avatar faithfinder avatar jdeshin avatar kuntashov avatar lintest avatar mr-rm avatar n-dimens avatar nivanchenko avatar nixel2007 avatar otymko avatar pumbaeo avatar redmammoth avatar ret-phoenix avatar sfaqer avatar vbondarevsky avatar yukon39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onescript's Issues

Падает снегопат при открытии прилагаемой формы

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Во вложении скрипт (аддин снегопата) и форма к нему. При попытке открыть эту форму из Снегопата система падает. Другие формы отрабатывают без замечаний.

Подозрение на системе вызова обработчиков событий.


Функция возвращает ссылку вместо значения

Originally reported by: Sergey Batanov (Bitbucket: dmpas, GitHub: dmpas)


#!vb

Перем Ч;

Функция Ф()
    Ч = Ч + 1;
    Сообщить("Возврат = " + Ч);
    Возврат Ч;
КонецФункции

Функция Х()
    Ч = Ч + 1;
    Сообщить("Возврат = " + Ч);
    Возврат Ч;
КонецФункции


Ч = 1;

Сообщить(Ф()*Х());

даёт вывод

#!

Возврат = 2
Возврат = 3
9

когда 1С вполне ожидаемо выдаёт

#!

Возврат = 2
Возврат = 3
6

Если вместо Возврат Ч; написать Возврат Ч*1; тогда код отрабатывает правильно.


Именные параметры командной строки

Originally reported by: Евгений Мартыненков (Bitbucket: EvgenyMartynenkov, GitHub: Unknown)


Сделать именные параметры командной строки для того, чтобы вызывать скрипты примерно так:

#!1script

oscript.exe copyfile.os -Откуда "c:\1.txt" -Куда "d:\temp\1.txt"

(имена параметров можно ограничить и английским)
Внутри скрипта они виделись бы как фиксированная структура.


Добавить в инсталятор функционал записи в PATH

Originally reported by: Alexey Lustin (Bitbucket: allustin, GitHub: allustin)


Необходимо, чтобы инсталятор скриптового движка предлагал добавлять себя в переменную окружения PATH

Судя по тому, что используется InnoSetup то примерной ссылкой видится http://stackoverflow.com/questions/3304463/how-do-i-modify-the-path-environment-variable-when-running-an-inno-setup-install

Необходимо для простоты внедрения:

  1. пользователь установил инсталятор
  2. переходит в командную строку
  3. bin файл oscript.exe уже доступен к запуску без прямого указания пути к "движку"

Значения по-умолчанию в заголовках функций/процедур

Originally reported by: Nikolay Dyatchenko (Bitbucket: cybernik, GitHub: cybernik)


Не работают значения по-умолчанию в заголовках функций/процедур:

#!1С
Процедура Пример(Знач Парам1="тест") 
 Сообщить(Парам1);
КонецПроцедуры

Пример("первый");
Пример();

Вывод:

#!1С
первый
Неопределено

Развитие доступа к API Снегопата

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


  • Русские идентификаторы для основных глобальных методов (Сообщить, Предупреждение и т.п.)
  • Интеграция фабрики объектов (Функция "v8new") с оператором "Новый", с целью получить привычный синтаксис создания родных объектов 1С
  • Выброс исключений при обработке событий форм.
  • Отображаемое имя и уникальное имя для аддинов SSF.

Проброс исключения вверх по стеку вызовов

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Некорректно проталкивается исключение вверх по стеку.

При пробрасывании исключения наверх (ВызватьИсключение; - без параметра) оно может потеряться и долететь до обработчика не в первоначальном виде.

Если в блоке Исключение вызывались методы скрипта, то они затирают существующее исключение и далее пробрасывается уже пустое (без правильного текста сообщения)


Поддержка оператора Прервать.

Originally reported by: Валерий Агеев (Bitbucket: awa15, GitHub: awa15)


При использовании Прервать в цикле при компиляции ошибок не происходит, однако при выполнении происходит ошибка. Также "Прервать" не выделяется в коде как ключевое слово.


Некорректная отработка логических выражений

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


http://infostart.ru/public/287643/#message1167816

При выполнении сокращенных логических вычислений вторая часть выражения не приводится принудительно к "Булево", что является ошибкой.


Поддержка COM объектов, не предоставляющих ITypeInfo для master-ветки

Originally reported by: Nikolay Dyatchenko (Bitbucket: cybernik, GitHub: cybernik)


Патч из ветки snegopat для таких COM объектов позволяет решить данную проблему. Просьба включить его в основную ветку.

Применял патч руками - работает, но выкидывает эксепшен в методе ResolveMethodFunc класса MachineInstance. Убрал условие внутри метода и заработало, но предполагаю, что это не вариант для решения.


Приоритет логических операций

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Если Не НовыйБлок = Неопределено Тогда

1С выполняет сначала сравнение, затем отрицание

OneScript сначала выполняет отрицание, что может приводить к ошибке приведения к типу Булево, если НовыйБлок имеет не булевский тип.


Нельзя запустить скрипт при помощи wscript/cscript

Originally reported by: Alexander Kuntashov (Bitbucket: kuntashov, GitHub: kuntashov)


Нельзя запустить скрипт при помощи wscript/cscript

Порядок воспроизведения:

  1. Создаю скрипт со следующим кодом в кодировке cp1251
Сообщить("Привет, Мир!");
  1. Сохраняю файл с именем hello.1s
  2. Пытаюсь запустить файл командой

cscript test.1c

Выдается сообщение:

Ошибка ввода: Отсутствует исполняющее ядро  для расширения имени файла ".1s"

Если пытаюсь указать явно имя ядра как oscript в ком. строке:

script /E:oscript test.1c

То выдается сообщение:

Ошибка CScript: Не удается найти исполняющего ядра "oscript" для сценария D:
\Temp\test.1s

Правильно я понимаю, Windows Scripting Host пока полноценно не поддерживается?

Или я указываю не правильное название исполняющего ядра?

Поддержка WSC нужна для работы скриптов в среде Снегопата.


Поддержка строк, разделенных пробельными символами

Originally reported by: Валерий Агеев (Bitbucket: awa15, GitHub: awa15)


Вот такой код

Сообщить("упадёт?" "или нет?");

не компилируется. А должен.
1С поддерживает создание многострочных строк путем написания нескольких строк друг за другом, разделённых только пробельными символами.


Временно отключен функционал подключаемых скриптов

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


После версии 1.0.1 был масштабный рефакторинг и функция подключения скриптов, как самостоятельных классов была отключена. Потом она была забыта и так и висит отключенная.


Функции ввода значений и запуск с аргументами

Originally reported by: Alexey Lustin (Bitbucket: allustin, GitHub: allustin)


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

текущее поведение остальных языков

read-from-stdin
или
myscript.os --key=value


При сохранении состояния машины не очищается стек вызовов

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


При сохранении состояния машины стек вызовов не очищается. В результате, код нового состояния выполняя "Возврат" уходит по стеку из предыдущего состояния, чем вызывает непредсказуемое выполнение кода.


Отличается поведение цикла "Для.. По" по сравнению с 1С

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


http://infostart.ru/public/287643/#message1167833

A=5;
For i=1 To A Loop
 Message(i);
 A=4;
EndLoop;

В 1С верхняя граница цикла вычисляется один раз и не может изменяться из кода.

Нет уверенности, что стоит исправлять, как ошибку, т.к. текущее поведение делалось специально, хотя и без сравнения с поведением платформы.


Не поддерживается сокращенное вычисление логических выражений

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Если А <> Неопределено и А.КакоеТоСвойство = 5 Тогда

Сокращенное вычисление обеспечивает типобезопасность. Вторая часть условия будет исполнена только если первая часть равна Истина.


Семантика подсчета ссылок и RAII

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


OneScript не применяет семантику RAII и не ведет подсчет ссылок на объекты. Это непривычно для разработки под 1С и требует дополнительных усложнений в виде глобальной функции ОсвободитьОбъект.

Нужно ввести RAII на основе счетчика ссылок для объектов, владеющих ресурсами (файлов и COM)


Некорректно отрабатывает стек вызовов процедур

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Возможна ситуация появления в главном стеке мусорных возвращаемых значений функций. Главный стек приходит в рассогласованное состояние, и машина работает некорректно.


Ключевые слова в качестве полей структуры выдают ошибку компиляции

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Если у объекта (например, у Структуры) есть поле с ключевым словом, то возникает ошибка компиляции.

Стр = Новый Структура("Знач");

Стр.Знач = 1; // ошибка, считает "Знач" ключевым словом, которое не на своем месте.


Экранирование двойных кавычек в строках

Originally reported by: Nikolay Dyatchenko (Bitbucket: cybernik, GitHub: cybernik)


Не работает экранирование двойных кавычек.
Пример:

#!1С
 Перем текст;
 текст = "вот";
 Сообщить("Текст """+текст+"""");

Выводит:

#!1С
Текст ""вот""

Должно быть:

#!1С
Текст "вот"

Неверный порядок вычисления операндов

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


А = 100 + 100 + 20 * 100 / 2 - 18 + 45698 * 45789 / 16 - 500 - 800 * 19;

Сообщить(А);

Должно вывести 130764589.625.

Выводит другое значение, т.к. неправильно обрабатывается преобразование в польскую нотацию.


Не выполняется EndTry при преждевременном возврате

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


Попытка
    СделатьЧтоТо();
    Возврат Истина;
Исключение
    Возврат Ложь;
КонецПопытки;

При выполнении возврата из блока Попытка-Исключение не выполняется опкод EndTry, т.к. "Возврат" выполняет Jump на точку возврата и у EndTry не остается шансов на выполнение.


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.