Comments (21)
В планах на ближайший месяц-два. Либо одна большая - как сделать библиотеку и как сделать приложение, либо две поменьше.
from oscript-library.
как это сделать (и можно ли)
большинство библиотек написаны на oscript, а не на c# :)
from oscript-library.
https://infostart.ru/public/548028/ раздел "Схема загрузки библиотек", плюс уже упомянутый http://oscript.io/docs/page/libraries плюс https://github.com/oscript-library/oscript-lib-template и https://github.com/oscript-library/oscript-app-template
from oscript-library.
Простой вопрос - чем "классы" отличаются от "модулей"? У них какой-то особый синтаксис? Где этот синтаксис описан?
from oscript-library.
http://oscript.io/docs/page/package-loader
Под классом понимается новый тип в системе типов приложения. Экземпляры объектов этого типа создаются через оператор Новый.
Модуль это то же самое, что ОбщийМодуль в системе 1С:Предприятие. Модуль - это свойство в глобальном контексте, методы которого мы можем вызывать из языка.
from oscript-library.
я имею в виду синтаксис в месте определения класса, а не в месте использования через оператор Новый
from oscript-library.
Классы инстанцируются с помощью оператора Новый. Каждый инстанс имеет свои собственные версии глобальных переменных скрипта.
Модули инстанцируются при начале работы приложения, как общие модули конфигурации. Глобальные переменные таких модулей (если они есть) общие на все время выполнения
from oscript-library.
у класса еще есть необязательный метод ПриСозданииОбъекта.
различий в синтаксисе описания классов и модулей нет, т.к. этого не позволяет сама грамматика 1С
from oscript-library.
в языке C# для класса есть ключевое слово "class", есть ли подобное в 1Скрипт? Или класс отличается от модуля только тем, что в классе описаны переменные в глобальном скопе, а в модуле не описаны?
from oscript-library.
в языке C# для класса есть ключевое словл "class", есть ли подобное в 1Скрипт?
нет, такого нет. все различие - в способе инстанцирования.
from oscript-library.
Или класс отличается от модуля только тем, что в классе описаны переменные в глобальном скопе, а в модуле не описаны?
в модуле тоже могут быть переменные в глобальном скоупе.
from oscript-library.
@ArsenShnurkov все как на картинке. Будет файл "классом" или "модулем" зависит от того, в какой папке он лежит. Внутри синтаксически они не отличаются никак.
Если копнуть еще глубже, то дело не в папках, а в алгоритме модуля package-loader.os. Именно он решает в какую из групп "класс"/"модуль" отнести тот или иной файл .os
from oscript-library.
@bahtiy - это к кому просьба? Про написать?
from oscript-library.
Ничо не понял
from oscript-library.
Ничего не получается.
// Файл main.os
#Использовать Classes
Перем символ;
символ = Новый Символ();
символ.Выступить_С_Речью();
// Файл oscript.cfg
lib.additional = .;
// Файл package-loader.os
ДобавитьКласс("./Classes/symbol.os", "Символ");
// Файл Classes/symbol.os
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Процедура Выступить_С_Речью() Экспорт
Перем консоль;
консоль = Новый Консоль();
консоль.ВывестиСтроку("за роботу товарещи");
КонецПроцедуры
Результат:
{Модуль main.os / Ошибка в строке: 5 / Ожидается идентификатор}
from oscript-library.
Так тоже не работает
// Файл main.os
Попытка
ПодключитьСценарий("symbol.os","Символ");
Высказать();
Исключение
Сообщить("Пичаль/бида");
КонецПопытки;
// Файл symbol.os
Процедура Высказать() Экспорт
Сообщение("за роботу товарещи");
КонецПроцедуры
Пишет
{Модуль main.os / Ошибка в строке: 4 / Неизвестный символ: Высказать}
$ oscript -v | head -1
1Script Execution Engine. Version 1.0.19.0
есличё, новее релизов нет в списке тэгов репозитория
from oscript-library.
@ArsenShnurkov :
// МойКласс.os
Процедура ПриСозданииОбъекта()
Сообщить("Создан класс!");
КонецПроцедуры
Процедура МойМетод() Экспорт
Сообщить("Вызван метод");
КонецПроцедуры
//main.os
ПодключитьСценарий("МойКласс.os", "МойКласс");
ЭкземплярКласса = Новый МойКласс();
ЭкземплярКласса.МойМетод();
вот так работает
from oscript-library.
Ясно, слово "Символ" неудачное было... Надо было использовать "СимволПрорыва"
from oscript-library.
Вопрос решен вроде бы
from oscript-library.
Не затруднит ли Вас в таком случае добавить сюда ссылку на эту замечательную обучающую статью с официального сайта 1Скрипт, раз уж вопрос решен. Или таки не решен?
from oscript-library.
Статья под заголовком "Исчерпывающее руководство по созданию библиотеки 1Script" ведет на мою статью на ИС.
from oscript-library.
Related Issues (20)
- Вопрос: Организация библиотек HOT 13
- Сборка пакетов opm кладет в пакет неверные файлы HOT 1
- Работа opm через proxy HOT 1
- [opm] сборка с указанием выходного каталога падает
- При запуске всех тестов для oscript-library в Ubuntu выдается ошибка
- Добавить внешний реп messenger HOT 2
- ошибка клонирования с подмодулями HOT 3
- При клонировании репо исходников в src/ нет HOT 3
- Доработка package-loader HOT 5
- Ошибка при сборке cf файла с помощью packman. HOT 1
- Getting more done in GitHub with ZenHub
- Идея пакета: semver HOT 1
- Новая библиотека чтения и записи YAML HOT 3
- gitsync: Альтернативный автор при выгрузке версии хранилища в гит HOT 12
- Добавить gitrunner как сабмодуль в стандартной либе HOT 3
- Включить oscript-config в стандартную поставку
- Зависимость библиотеки от других библиотек. HOT 9
- gitsync не удаляет временные файлы после работы HOT 1
- Установка в Docker HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oscript-library.