Giter Club home page Giter Club logo

Comments (21)

nixel2007 avatar nixel2007 commented on August 28, 2024

В планах на ближайший месяц-два. Либо одна большая - как сделать библиотеку и как сделать приложение, либо две поменьше.

from oscript-library.

nixel2007 avatar nixel2007 commented on August 28, 2024

как это сделать (и можно ли)

большинство библиотек написаны на oscript, а не на c# :)

from oscript-library.

bambr1975 avatar bambr1975 commented on August 28, 2024

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.

ArsenShnurkov avatar ArsenShnurkov commented on August 28, 2024

Простой вопрос - чем "классы" отличаются от "модулей"? У них какой-то особый синтаксис? Где этот синтаксис описан?

from oscript-library.

bambr1975 avatar bambr1975 commented on August 28, 2024

http://oscript.io/docs/page/package-loader
Под классом понимается новый тип в системе типов приложения. Экземпляры объектов этого типа создаются через оператор Новый.
Модуль это то же самое, что ОбщийМодуль в системе 1С:Предприятие. Модуль - это свойство в глобальном контексте, методы которого мы можем вызывать из языка.

from oscript-library.

ArsenShnurkov avatar ArsenShnurkov commented on August 28, 2024

я имею в виду синтаксис в месте определения класса, а не в месте использования через оператор Новый

from oscript-library.

nixel2007 avatar nixel2007 commented on August 28, 2024

Классы инстанцируются с помощью оператора Новый. Каждый инстанс имеет свои собственные версии глобальных переменных скрипта.
Модули инстанцируются при начале работы приложения, как общие модули конфигурации. Глобальные переменные таких модулей (если они есть) общие на все время выполнения

from oscript-library.

nixel2007 avatar nixel2007 commented on August 28, 2024

у класса еще есть необязательный метод ПриСозданииОбъекта.

различий в синтаксисе описания классов и модулей нет, т.к. этого не позволяет сама грамматика 1С

from oscript-library.

ArsenShnurkov avatar ArsenShnurkov commented on August 28, 2024

в языке C# для класса есть ключевое слово "class", есть ли подобное в 1Скрипт? Или класс отличается от модуля только тем, что в классе описаны переменные в глобальном скопе, а в модуле не описаны?

from oscript-library.

nixel2007 avatar nixel2007 commented on August 28, 2024

в языке C# для класса есть ключевое словл "class", есть ли подобное в 1Скрипт?

нет, такого нет. все различие - в способе инстанцирования.

from oscript-library.

nixel2007 avatar nixel2007 commented on August 28, 2024

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

в модуле тоже могут быть переменные в глобальном скоупе.

from oscript-library.

EvilBeaver avatar EvilBeaver commented on August 28, 2024

@ArsenShnurkov все как на картинке. Будет файл "классом" или "модулем" зависит от того, в какой папке он лежит. Внутри синтаксически они не отличаются никак.

Если копнуть еще глубже, то дело не в папках, а в алгоритме модуля package-loader.os. Именно он решает в какую из групп "класс"/"модуль" отнести тот или иной файл .os

from oscript-library.

EvilBeaver avatar EvilBeaver commented on August 28, 2024

@bahtiy - это к кому просьба? Про написать?

from oscript-library.

EvilBeaver avatar EvilBeaver commented on August 28, 2024

Ничо не понял

from oscript-library.

ArsenShnurkov avatar ArsenShnurkov commented on August 28, 2024

Ничего не получается.

// Файл main.os
#Использовать Classes
    
Перем символ;
символ = Новый Символ();
символ.Выступить_С_Речью();
// Файл oscript.cfg
lib.additional = .;
// Файл package-loader.os
ДобавитьКласс("./Classes/symbol.os", "Символ");
// Файл Classes/symbol.os
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Процедура Выступить_С_Речью() Экспорт
	Перем консоль;
	консоль = Новый Консоль();
	консоль.ВывестиСтроку("за роботу товарещи");
КонецПроцедуры

Результат:

{Модуль main.os / Ошибка в строке: 5 / Ожидается идентификатор}

from oscript-library.

ArsenShnurkov avatar ArsenShnurkov commented on August 28, 2024

Так тоже не работает

// Файл main.os
Попытка
	ПодключитьСценарий("symbol.os","Символ");
	Высказать();
Исключение
	Сообщить("Пичаль/бида");
КонецПопытки;
// Файл symbol.os
Процедура Высказать() Экспорт
	Сообщение("за роботу товарещи");
КонецПроцедуры

Пишет

{Модуль main.os / Ошибка в строке: 4 / Неизвестный символ: Высказать}

$ oscript -v | head -1
1Script Execution Engine. Version 1.0.19.0

есличё, новее релизов нет в списке тэгов репозитория

from oscript-library.

arkuznetsov avatar arkuznetsov commented on August 28, 2024

@ArsenShnurkov :
// МойКласс.os

Процедура ПриСозданииОбъекта()
	Сообщить("Создан класс!");
КонецПроцедуры

Процедура МойМетод() Экспорт
	Сообщить("Вызван метод");
КонецПроцедуры

//main.os

ПодключитьСценарий("МойКласс.os", "МойКласс");

ЭкземплярКласса = Новый МойКласс();

ЭкземплярКласса.МойМетод();

вот так работает

from oscript-library.

ArsenShnurkov avatar ArsenShnurkov commented on August 28, 2024

Ясно, слово "Символ" неудачное было... Надо было использовать "СимволПрорыва"

from oscript-library.

EvilBeaver avatar EvilBeaver commented on August 28, 2024

Вопрос решен вроде бы

from oscript-library.

EinstokFair avatar EinstokFair commented on August 28, 2024

Не затруднит ли Вас в таком случае добавить сюда ссылку на эту замечательную обучающую статью с официального сайта 1Скрипт, раз уж вопрос решен. Или таки не решен?

from oscript-library.

nixel2007 avatar nixel2007 commented on August 28, 2024

http://oscript.io/docs

Статья под заголовком "Исчерпывающее руководство по созданию библиотеки 1Script" ведет на мою статью на ИС.

from oscript-library.

Related Issues (20)

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.