evilbeaver / onescript Goto Github PK
View Code? Open in Web Editor NEWИсполняющая среда скриптов на языке 1С
Home Page: http://oscript.io
License: Mozilla Public License 2.0
Исполняющая среда скриптов на языке 1С
Home Page: http://oscript.io
License: Mozilla Public License 2.0
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"
(имена параметров можно ограничить и английским)
Внутри скрипта они виделись бы как фиксированная структура.
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
Необходимо для простоты внедрения:
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Коммитом 9523573 привнесена ошибка.
Создание структуры с помощью кода:
Новый Структура("Поле1,Поле2,Поле3",1,2,3)
приводит к падению.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Некорректно проталкивается исключение вверх по стеку.
При пробрасывании исключения наверх (ВызватьИсключение; - без параметра) оно может потеряться и долететь до обработчика не в первоначальном виде.
Если в блоке Исключение вызывались методы скрипта, то они затирают существующее исключение и далее пробрасывается уже пустое (без правильного текста сообщения)
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Отсутствует функция получения текущей даты.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
http://infostart.ru/public/287643/#message1167816
При выполнении сокращенных логических вычислений вторая часть выражения не приводится принудительно к "Булево", что является ошибкой.
Originally reported by: Nikolay Dyatchenko (Bitbucket: cybernik, GitHub: cybernik)
Патч из ветки snegopat для таких COM объектов позволяет решить данную проблему. Просьба включить его в основную ветку.
Применял патч руками - работает, но выкидывает эксепшен в методе ResolveMethodFunc класса MachineInstance. Убрал условие внутри метода и заработало, но предполагаю, что это не вариант для решения.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Тип double не должен использоваться, как внутреннее отображение чисел. Необходимо применять Decimal или BigDecimal.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Обеспечить возможность запуска других приложений
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Если Не НовыйБлок = Неопределено Тогда
1С выполняет сначала сравнение, затем отрицание
OneScript сначала выполняет отрицание, что может приводить к ошибке приведения к типу Булево, если НовыйБлок имеет не булевский тип.
Originally reported by: Alexander Kuntashov (Bitbucket: kuntashov, GitHub: kuntashov)
Нельзя запустить скрипт при помощи wscript/cscript
Порядок воспроизведения:
Сообщить("Привет, Мир!");
cscript test.1c
Выдается сообщение:
Ошибка ввода: Отсутствует исполняющее ядро для расширения имени файла ".1s"
Если пытаюсь указать явно имя ядра как oscript в ком. строке:
script /E:oscript test.1c
То выдается сообщение:
Ошибка CScript: Не удается найти исполняющего ядра "oscript" для сценария D:
\Temp\test.1s
Правильно я понимаю, Windows Scripting Host пока полноценно не поддерживается?
Или я указываю не правильное название исполняющего ядра?
Поддержка WSC нужна для работы скриптов в среде Снегопата.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Не хватает функций по определению окружения:
И, возможно, других.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
После версии 1.0.1 был масштабный рефакторинг и функция подключения скриптов, как самостоятельных классов была отключена. Потом она была забыта и так и висит отключенная.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Требуется реализовать методы УдалитьФайлы и НайтиФайлы.
Originally reported by: Anonymous
#!c#
Т="123
//|456
|789";
вызывает ошибку Wrong string literal
Ожидается (как работает в 1С) выполнение:
#!c#
Т="123
|789";
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
При сохранении состояния машины стек вызовов не очищается. В результате, код нового состояния выполняя "Возврат" уходит по стеку из предыдущего состояния, чем вызывает непредсказуемое выполнение кода.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Периодически роняет конфигуратор при выгрузке скрипта из Снегопата. Как-то связано с подсчетом ссылок на адд-ин скрипта.
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 Тогда
Сокращенное вычисление обеспечивает типобезопасность. Вторая часть условия будет исполнена только если первая часть равна Истина.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Выражение вида '20010102' - '20010101' не работает.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Добавить в библиотеку класс ЗаписьТекста
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)
EXE, полученный с помощью oscript -make не анализирует передаваемые ему параметры командной строки.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Если у объекта (например, у Структуры) есть поле с ключевым словом, то возникает ошибка компиляции.
Стр = Новый Структура("Знач");
Стр.Знач = 1; // ошибка, считает "Знач" ключевым словом, которое не на своем месте.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
После обработки исключения стек вызовов не раскручивается. В результате получается малопредсказуемый ход исполнения кода.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Плагин Снегопата загружает скрипты только в UTF-8. Необходимо использовать для чтения файла вспомогательный класс FileOpener из ScriptEngine.dll
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
При открытии прилагаемой формы под снегопатом ничего не происходит, однако Конфигуратор после этого начинает работать нестабильно.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Обращение к свойству СOM завершается неудачно, если не совпадают регистры символов. (Воспроизводится на объекте V83.ComConnector)
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
При возврате из циклов "Для" состояние цикла остается в главном стеке.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
В некоторых случаях возможна порча главного стека, если функция вызывается, как процедура (т.е. без использования возвращаемого значения).
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
А = 100 + 100 + 20 * 100 / 2 - 18 + 45698 * 45789 / 16 - 500 - 800 * 19;
Сообщить(А);
Должно вывести 130764589.625.
Выводит другое значение, т.к. неправильно обрабатывается преобразование в польскую нотацию.
Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)
Попытка
СделатьЧтоТо();
Возврат Истина;
Исключение
Возврат Ложь;
КонецПопытки;
При выполнении возврата из блока Попытка-Исключение не выполняется опкод EndTry, т.к. "Возврат" выполняет Jump на точку возврата и у EndTry не остается шансов на выполнение.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.