Как решать повседневные задачи с помощью OneScript

22.10.17

Разработка - OneScript

Если вам не нравится выполнять рутинные операции вручную. Если вы 1С-ник, который хоть раз в жизни писал BAT-CMD-файлы для автоматизации, или который время от времени вынужден вспоминать особенности черной магии Powershell, то эта статья для вас. Теперь можно все это делать на языке 1С. Интересно? Читайте дальше!

Скачать файлы

Наименование Файл Версия Размер
Подсветка синтаксиса Notepad++
.xml 22,73Kb
25
.xml 22,73Kb 25 Скачать

Скрипты – наше все!

Что такое скрипт или, по-другому, сценарий? Это простой текстовый файл с кодом, который можно выполнить непосредственно. Без компиляции, без построения промежуточных выполняемых модулей – прямо из текстовика.

Скрипт – это часто одноразовая программа, которая сделает вам нужную работу. Ее просто накидать, просто запустить, просто получить результат.

На windows традиционно была нехватка мощных средств автоматизации с помощью скриптов. Я знаю, что есть виртуозы BAT-файлов, которые могут творить с ними чудеса, но все же овладение этим инструментом занятие не для слабонервных.

Кроме того, на windows есть система Windows Script Host (WSH) которая позволяет уже писать более-менее функциональные скрипты на VBScript или JS, однако, когда дело доходит до работы с кириллицей – начинаются шаманские пляски с бубном.

Еще есть Powershell, который, бесспорно является сильным шагом вперед, но тоже иногда добавляет радостей своими несколько своеобразными подходами к решению задач.

Ну и в Linux, конечно, очень распространен скриптинг. Развитая система родных shell-скриптов, которыми можно делать практически любую автоматизацию системы, в Linux дополняется возможностью подключить любой другой скриптовый язык.

Однако, у всех перечисленных инструментов есть одна проблема.

Все это чужеродные элементы!

Для того, чтобы сделать что-либо вне платформы 1С, нам нужно изучить хотя бы один из этих языков и технологий. Само по себе это неплохо, но, во-первых, это отрыв от реальных задач, а во-вторых, эти технологии имеют обыкновение забываться со временем. И каждое возвращение из 1С в другую экосистему зачастую означает повторное изучение (вспоминание) синтаксиса, основных команд и всего такого прочего.

Есть решение!

Чтобы сделать скрипт, решающий наши проблемы, не нужно переключаться на другой язык. Нужно писать скрипты прямо на языке 1С!

Что может быть автоматизировано?

Если вкратце, то практически все, что угодно :) Приведу простой пример. Не так давно на нашем сервере, который управляет git-репозиториями, поменялся URL. Нужно было переключить все локальные копии на моей машине на этот новый адрес. Таких  локальных копий у меня было около 10-ти.

Вручную я должен был войти в каждую папку, набрать там команду git remote, скопировать оттуда старый адрес, преобразовать его в новый и выполнить git remote set-url уже с новым URL.

Я не помню, как все это сделать на Powershell и тем более на BAT/CMD. Более того, я не хочу все это вспоминать. Вместо этого, я взял и написал скрипт на языке 1С. Всего-то перебрать папки из списка, в каждой из них дважды запустить git. Раз плюнуть. Потом скрипт переехал к коллегам, столкнувшимся с той же проблемой.

Что такое 1Script?

На конференции Infostart Event 2014 мною был представлен новый скриптовый движок, позволяющий исполнять код на языке 1С:Предприятия, но без самой платформы 1С. Фактически, это новый инструмент автоматизации, не требующий переключения контекста из 1С в абракадабру другого языка и обратно, и который может быть использован специалистами по 1С для автоматизации той или иной рутинной работы внутри операционной системы.

Технически он устроен, как и любой другой скриптовый движок (Python, JScript, PHP). Это интерпретатор, выполняющий текстовые файлы, как правило, в консольном режиме. Преимущество перед другими языками здесь в том, что вы не переключаетесь в чужеродную экосистему, для выполнения задачи. Вы не тратите время на изучение (или вспоминание) другого языка. Вы просто пишете на 1С. При этом вы не запускаете платформу, вам не нужен лицензионный ключ, вам не нужно выбирать в меню "Файл" внешнюю обработку, которая выполнит нужные действия. Создаете текстовый файл и пишете прямо в нем. Его же запускаете на выполнение.

Кстати, забыл сказать, что это кросс-платформенный инструмент. Вы можете писать скрипты под Linux на языке 1С с той же простотой.

Предлагаю рассмотреть порядок установки и запуска вашего первого скрипта на OneScript. В качестве примера возьмем ту самую задачу с изменением URL для git-репозитория.

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

OneScript имеет открытый исходный код и доступен в публичном репозитарии на bitbucket.

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

Опубликованный релиз

Версия в разработке

Есть два вида дистрибутива – инсталлятор и просто архив с файлами программы. Нам нужен инсталлятор. Скачиваем и запускаем его.

Далее-далее-далее, ждем завершения установки.

Инсталлятор автоматически пропишет oscript.exe в переменную PATH, чтобы было удобно пользоваться интерпретатором. Для проверки нужно запустить командную строку и набрать там команду oscript. Если все успешно, то должно появится следующее сообщение:

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

Настройка окружения для разработки

ВНИМАНИЕ! Информация о редакторе кода на данный момент устарела, поскольку, сообщество уже создало намного более совершенный редактор для кода 1С на базе Visual Studio Code. Неплохое руководство по которому можно прочитать по ссылке //infostart.ru/public/687869/ Разумеется, редактор описываемый ниже, тоже можно использовать, но имейте в виду, что есть намного более удобный способ разработки. С уважением, ваш Evil Beaver. 22.10.2017

В принципе, скрипты можно писать в любом текстовом редакторе, но все-таки хочется подсветки синтаксиса и контекстной подсказки.

Если у вас есть Снегопат, то вы можете писать скрипты в Конфигураторе 1С. При переключении текстового документа в режим встроенного языка Снегопат будет предоставлять контекстную подсказку, как будто это не скрипт, а обычный модуль 1С.

Я этим способом не пользуюсь, а пишу скрипты в Notepad++. Не пугайтесь, это не просто блокнот, а я не чокнутый гик (хотя в последнем не уверен). В Notepad++ есть и подсветка и подсказка и средства выполнения скрипта, который вы в данный момент пишете. Нужно только все это включить. Этот блокнот легко превращается в неплохую среду разработки.

 А вот и контекстная подсказка.

 Включаем подсветку синтаксиса Notepad++

 Во-первых, нужно установить сам Notepad++

Чтобы Notepad++ заиграл красками 1С в нем нужно произвести несколько настроек. Во-первых, установить файл подсветки синтаксиса. Скачать его можно вот здесь или во вложении к статье. Далее, заходим в меню «Синтаксисы/Задать свой синтаксис».

В этом окне нажимаем кнопку «Импорт» и выбираем файл с синтаксисом 1С. Убедитесь что в поле «Расширение» установлено значение «os». При открытии файлов с этим расширением Notepad++ будет автоматически включать нужную подсветку синтаксиса.

 

Если подсветка не включилась

В Notepad++ есть странный глюк. Подсветка синтаксиса 1С в нем работает только если файл использует кодировку UTF-8. Поэтому, рекомендуется все скрипты кодировать именно так. Если подсветка после импорта из файла не включилась – нужно переключить кодировку в UTF-8 (меню «Кодировки\Преобразовать в UTF-8») и перезапустить блокнот.

Устанавливаем плагины

Существует огромное количество удобных плагинов для NPP. Все они удобным образом устанавливаются через менеджер плагинов, запускаемый из меню «Плагины – Plugin Manager – Show Plugin Manager»

Для разработки скриптов наиболее полезным является плагин NppExec. Он позволяет, не выходя из блокнота, запускать какое-либо приложение и наблюдать его консольный вывод непосредственно в окне Notepad++.

Для разработчика скриптов это означает, что он пишет скрипт, нажимает кнопку и видит результат работы скрипта сразу же, в окне блокнота. Этим обеспечивается быстрый цикл разработки в стиле «Написал-Нажал-Посмотрел результат»

Устанавливаем в менеджере плагинов флажок возле NppExec и запускаем установку. После установки в меню "Плагины" появится пункт NppExec. В подменю этого пункта рекомендуется установить флажок "Follow ($CURRENT_DIRECTORY)". При запуске скрипта на выполнение он автоматически будет стартовать в той директории, где лежит файл запускаемого скрипта.

 

Настраиваем запуск скрипта

NppExec работает следующим образом:

  • Нажимаем кнопку F6 и в открывшемся окне вводим команду для запуска. Жмем ОК и она выполняется. Результат будет выведен в отдельную всплывающую панель
  • Далее, жмем Ctrl+F6 и предыдущая команда запускается еще раз

То есть, нам нужно в окне запуска ввести команду oscript $(FULL_CURRENT_PATH) и нажать ОК. В консоли будет выведен результат работы того скрипта, который сейчас открыт в блокноте.

 

На этом настройка рабочего окружения закончена. Это было несложно:

  1. Установили Notepad++
  2. Установили подсветку синтаксиса
  3. Установили плагин NppExec и настроили команду запуска текущего скрипта
  4. Профит

Автоматизируемся!

Давайте вернемся к исходной задаче перенастройки git-репозиториев. Итак, есть каталог, внутри которого находятся локальные копии разных репозиториев.

Задача – перенастроить их на другой url.

Создаем новый файл с расширением os. Если у вас блокнот настроен на кодировку ANSI – переключаемся в UTF-8, чтобы работала подсветка.

А дальше – все, как в 1С. Скрипт начинает выполняться «с конца». При запуске выполняется код в самом низу модуля.

Для того, чтобы было проще сориентироваться в возможностях 1Script, имеется своего рода «Синтакс-помощник» в wiki проекта. Он описывает доступные языковые средства, классы, методы и т.п.

Итак, поскольку скрипт – это одноразовая программа, то мы не заморачиваемся с настройками. Все пути можно жестко прописать прямо в скрипте:
РабочийКаталог = "C:\Documents\GITs";
ОбойтиВсеРепозитарииВКаталоге(РабочийКаталог);

Теперь создаем процедуру «ОбойтиВсеРепозитарииВКаталоге»

// Перерегистрация репозитариев

Процедура ОбойтиВсеРепозитарииВКаталоге(Знач РабочийКаталог);
	
	Каталоги = НайтиФайлы(РабочийКаталог, "*.*", Ложь);
	Для Каждого НайденныйФайл Из Каталоги Цикл
		Если НайденныйФайл.ЭтоКаталог() Тогда
			ОбработатьКаталог(НайденныйФайл.ПолноеИмя);
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

Ну и дело за малым – запустить гит для получения и изменения URL в процедуре «ОбработатьКаталог»

Процедура ОбработатьКаталог(Знач Каталог)
	
	Сообщить("Обрабатываю каталог " + Каталог);
	КаталогГит = Новый Файл(Каталог + "\.git");
	Если Не КаталогГит.Существует() Тогда
		Сообщить("Каталог не является git-репозиторием");
		Возврат;
	КонецЕсли;
	
	ЛогГит = ПолучитьИмяВременногоФайла();
	
	КодВозврата = -1;
	ЗапуститьПриложение("cmd /C git remote -v > " + ЛогГит, Каталог, Истина, КодВозврата);
	Если КодВозврата <> 0 Тогда
		Сообщить("Ошибка получения git remote");
		Сообщить(ПрочитатьФайл(ЛогГит));
		Возврат;
	КонецЕсли;
	
	ОсновнойАдрес = ПрочитатьАдрес(ЛогГит);
	Если ОсновнойАдрес = Неопределено Тогда
		Возврат;
	КонецЕсли;
	Сообщить("URL: " + ОсновнойАдрес);
	НовыйУрл = СтрЗаменить(ОсновнойАдрес, "http://old-server", "http:new-server");
	Сообщить("Перенаправляю на " + НовыйУрл);
	
	КодВозврата = -1;
	ЗапуститьПриложение("cmd /C git remote set-url origin " + НовыйУрл + " > " + ЛогГит, Каталог, Истина, КодВозврата);
	Если КодВозврата <> 0 Тогда
		Сообщить("Ошибка git set-url");
		Сообщить(ПрочитатьФайл(ЛогГит));
		Возврат;
	КонецЕсли;
	
	Сообщить("Каталог " + Каталог + " обработан");
	
КонецПроцедуры

Ну и остались служебные процедуры «ПрочитатьАдрес» и «ПрочитатьФайл». Не буду их приводить из экономии места. Там банальное чтение файлов с помощью ЧтениеТекста.

Ну и дальше, жмем в блокноте Ctrl+F6 и наблюдаем за работой скрипта:

Мы только что написали несложный код на знакомом и любимом языке. Мы очень хорошо знаем его и можем творить с ним чудеса, верно? И обратите внимание, нам не потребовался Конфигуратор, мы вообще не трогали 1С. OneScript не использует никакие библиотеки платформы и не требует ее установки на машину.

Полный код приведенного скрипта можно посмотреть на GitHub (https://gist.github.com/EvilBeaver/14292ad7269d9d17ea8e)

Что еще можно автоматизировать? Можно, например, разложить архив домашних фотографий по папкам Год\Месяц и автоматизировать этот процесс, настроив мониторинг какой-либо папки «Входящие фотки» через планировщик операционной системы. На знакомом языке сделать такое – пара пустяков, верно?

Немного экономики

Мы у себя в работе используем OneScript для самых разных задач. От автоматизации развертывания баз 1С и синхронизации исходников конфигураций в git, до расчета покрытия кода тестами. Код наших скриптов также расположен в git, и любой 1С-ник компании может при желании что-то доработать. Язык знаком всем и не требует дополнительных навыков.

Производительность кода по нашим оценкам, как минимум, не хуже 1С. На некоторых задачах OneScript быстрее почти в 2 раза, на некоторых – примерно одинаково. Радикального проигрыша 1Script в скорости по сравнению с 1С мы пока не наблюдали.

Сейчас, в пору кризисов и санкций в Сети все чаще попадаются предложения по экономии на лицензиях для Windows, есть success-story по переводу части парка машин на Linux. Если посчитать лицензии Microsoft по текущему курсу, то переезд на Линукс выглядит все более привлекательным. Если вы строили автоматизацию на Powershell, то он станет у вас камнем преткновения. OneScript работает под Linux и вы можете автоматизировать свою деятельность независимо от того, какая ОС применяется (или будет применяться в будущем) в вашей компании. Если 1С-ники вашей фирмы пересядут на линукс, то им  (в идеале) не придется изучать shell-скрипты. Они смогут пользоваться знакомым языком программирования.

Заключение

За минувший год 1Script вырос из исследовательского проекта в продукт, успешно применяемый в реальных бизнес-решениях. Это полноценный независимый кросс-платформенный интерпретатор языка 1С. Исходные коды открыты. Справка по доступным классам и глобальным процедурам доступна и постоянно обновляется.

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

Писать скрипты – это просто, а главное – эффективно. Автоматизируйтесь! Пусть страх перед незнакомыми языками программирования больше не останавливает вас.

скрипт автоматизация OneScript

См. также

Особенности национального Workflow: Github Actions и OneScript

Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1188    bayselonarrend    3    

37

TCP прокси-сервер хранилища конфигурации 1С

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    2774    kamisov    17    

57

Что такое ОСень? Или как лучшие практики из мира Java прижились в экосистеме OneScript

OneScript Бесплатно (free)

Думаете, на OneScript неудобно создавать сложные инфраструктурные приложения? Ошибаетесь. Благодаря фреймворку ОСень за последний год экосистема библиотек, упрощающих написание собственных приложений, существенно выросла. Расскажем о самых передовых технологиях OneScript. Спойлер: будет много рефлексии, мета-аннотаций, желудей, напильников и дубов с завязями.

21.11.2023    3115    NikitaIvanchenko    16    

46

Библиотека создания клиент-серверных приложений для сценарного языка OneScript

Инструментарий разработчика Работа с интерфейсом OneScript Россия Бесплатно (free)

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

31.07.2023    2018    ahyahy    8    

32

Получаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    3623    ardn    3    

27

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    8037    kamisov    57    

95

OneScript на страже порядка на сервере тестовых баз данных

Администрирование СУБД OneScript Бесплатно (free)

Наводим порядок на сервере тестовых баз с помощью любимого инструмента - OneScript. Находим заброшенные базы на сервере MS SQL, определяем кандидатов на удаление.

14.06.2022    4255    ardn    23    

37

Идем в Serverless с кодом 1С

Облачные сервисы, хостинг OneScript Россия Абонемент ($m)

Запускаем код OneScript в Serverless Container Яндекса.

1 стартмани

29.04.2022    3698    1    papami    2    

9
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
99. Evil Beaver 8107 27.11.15 09:50 Сейчас в теме
(98) nipil, у меня не просит админских прав, N++ установлен по умолчанию в Program Files, Windows 7,8,10 никаких доп. прав не выдавалось - работает из коробки. Я не готов поддерживать инструкцию по всем возможным вариантам настроек систем. Имеющий руки да настроит. Имхо, в 95% случаев статья описывает все что нужно для быстрого старта.
w22u; JohnyDeath; artbear; +3 Ответить
102. nipil 28.11.15 15:55 Сейчас в теме
(99) (101) artbear, Спасибо за ответы и статистику. Потестировал систему. При повторных установках OS не требовала повышения прав. Поведение не локализовал, поскольку на смог вспомнить ночную последовательность действий.

За OneScript ещё раз спасибо.
106. nipil 30.11.15 15:50 Сейчас в теме
(102) nipil, Нашел! После работы инсталятора OneScript и до перезагрузки системы переменная среды Path имеет разные значения. При запуске cmd с повышением прав (от имени "Администратора") возвращает новое значение с установленным OneScript. При запуске cmd без повышения - остается старое. Проверенно на 2х системах Win7 Win8.
В статье описано - "нужно перезайти" я, в свою очередь, запустил cmd c повышением прав. Получив положительную реакцию на "oscript" запустил Notepad++ без повышения прав и соответственно получил указанную ошибку.
Таким образом все претензии к статье снимаются. Не бейте меня! Я мягкий и пушистый. Не нужно работать по ночам.
101. artbear 1448 27.11.15 10:29 Сейчас в теме
(98) Я также ставлю Notepad++ по умолчанию и все работает. На 6 машинах ставил, проблем нет
103. Lapitskiy 1057 29.11.15 09:16 Сейчас в теме
Да, сайт все так же недоступен...
104. Evil Beaver 8107 29.11.15 21:45 Сейчас в теме
(103) Lapitskiy, доступен. Какой IP у вас пигнуется?
105. Lapitskiy 1057 30.11.15 13:57 Сейчас в теме
107. vec435 15 02.12.15 12:44 Сейчас в теме
когда увидит свет российская ОС - скрипты под нее уже есть
108. dis_2015 27 30.12.15 17:04 Сейчас в теме
Коллеги, подскажите как на onescript организовать взаимодействие с пользователем. Мне нужно при запуске скрипта спрашивать у пользователя путь к файлу.
110. Evil Beaver 8107 31.12.15 11:02 Сейчас в теме
(108) dis_2015, в скриптинге так не принято. Обычно пользователя просят передать что-либо в качестве аргументов командной строки.

Т.е. нужно не выдавать пользователю запрос "введите путь", а описать в справке параметр "Путь" и при запуске требовать, чтобы его передавали.
JohnyDeath; +1 Ответить
111. ahyahy 91 12.01.16 02:00 Сейчас в теме
Очень заинтересовала данная публикация. Давно искал движок скрипта на русском языке. И нашел.
Спасибо! Предлагаю расширить возможности 1Script всё таки добавив к нему GUI. В том смысле что я
разработал возможность применения в скрипте библиотеки KiXforms Version 2.47, библиотека ведь
бесплатная.
Надеюсь пригодится, и для организации диалога с пользователем тоже. Перевел справку KiXforms,
повозился с нежеланием KiXforms работать для 1Script и вроде получилось. Предлагаю потестить.
Примеры из справки можно сохранять в "*.os" и запускать. Стоит ли двигаться в этом направлении?(108) dis_2015,
Прикрепленные файлы:
kixforms_v247-ru40.chm
vasiliy_b; +1 Ответить
112. ahyahy 91 12.01.16 02:05 Сейчас в теме
Да, на всякий случай, если kixforms_v247-ru40.chm не показывает разделы, в свойствах файла нажмите Разблокировать. (108) dis_2015,
113. Evil Beaver 8107 12.01.16 15:01 Сейчас в теме
(112) ahyahy, справка нерабочая.
Сам по себе, я не сторонник GUI для скриптов, но если кто-то считает, что это будет полезно - я всеми руками ЗА. Если у Вас есть наработки по данной библиотеке (первый раз слышу про нее) - выкладывайтесь на гитхаб или еще куда. Там и мы все посмотрим, о чем речь, и помощники смогут подключиться, если сочтут нужным.

Иными словами, да, замечательно, что у вас есть интерес развивать GUI и участвовать в проекте. Я, со своей стороны, всегда готов помочь.
JohnyDeath; +1 Ответить
115. ahyahy 91 13.01.16 02:17 Сейчас в теме
(113) Исправил, на ресурсе bitbucket.org/ahyahy/gui-1script лежит русская справка KiXforms в html, dll и примеры "*.os". Справку и примеры буду дополнять, накопал недокументированные возможности.
vasiliy_b; +1 Ответить
117. JohnyDeath 301 13.01.16 23:40 Сейчас в теме
(115) ahyahy, я не совсем понимаю, для чего конкретно вы это делаете. Для каких задач?
Но если востребовано, то конечно пусть будет.

Посмотрел мельком пару файлов из вашего репо. Навскидку совет: сделайте уж сразу обертку над всеми объектами и переведите на русский все их методы и свойства.
Чтобы не переключать раскладку по 10 раз в таких строках:
СписокЭлементов1.Clear();	
СписокЭлементов1.Columns.Add("Цвет",120,0);

а сразу писать:
СписокЭлементов1.Очистить();
СписокЭлементов1.Колонки.Добавить("Цвет",120,0);
118. ahyahy 91 14.01.16 04:04 Сейчас в теме
(117) JohnyDeath, О, для чего конкретно я и сам наверное четко не сформулирую, хотя можно попробовать. Начну с того, что просто
интересно кодировать и много свободного времени. Увидел скриптовый язык привычного синтаксиса и загорелось, не
потушишь. Просто болезнь какая то. Пока болею может что полезное сделаю. Мне-то точно, но может ещё и другим
пригодится. Идеи какие подкинет, на мысли хорошие наведёт. Идём дальше.
Ученые из ЦЕРНа (у меня нет там знакомых...) так прямо и отвечают - Ну не знаем мы, что нам этот бозон Хиггса даст,
но искать будем, только денег пожалуйста дайте. Ну не знаю я пока что из этого вырастет. Пусть растёт деревце,
если вырастет яблоня, яблоки будем кушать. Идём дальше.
Линус Торвальдс, когда писал свой эмулятор терминала, тоже бы четко не ответил. Ты чё парень, у нас же уже есть
UNIX, а он "заболел" и нате вам Linux. Идём дальше.
Да замечательно, теперь с 1Script мне автоматизировать легко и просто, ну легче и проще. Но привык я к GUI. Может
кто к другому привычнее, а я к GUI. Это не порок. Для пользователя опять же можно будет минипрограммки-подсказки
штамповать. Там и поля ввода можно отформатировать, чтобы лишнего не набили, и подсказок напридумывать.
Заботиться о пользователе надо. Кто кроме админа его пожалеет?
Можно этот GUI держать в стороне на полочке, и без него можно обойтись, а если понадобится так вот оно уже есть,
пользуйся, дополнительное лезвие в швейцарском ноже. И 1С по поводу лицензии к нам без претензий. Большие
программы конечно не напишешь, так ведь инструмент надо применять по назначению. Для админов самое то.
Будет востребовано или нет, мне и самому очень хочется знать, может я не один такой?
Да не хочу я 1С повалить. Там ребята молодцы, да и девчонки тоже, дело своё делают помаленьку. У них своё дело
, у нас своё. Думаю мы друг другу не мешаем.
Методы и свойства на русском тоже хочу, но не сразу Москва строилась! Я только недавно вплотную
KiXforms занимаюсь. Был ещё кандидат в виде WSO от Александра Веретенникова, но там всё очень громоздко
получилось и медленно. Да и подучить кое что надо. Ах, ах, у меня большие пробелы в знаниях. Осваиваю по мере
необходимости и интереса. Но в планах есть конечно. С самого начала было.
Надеюсь как-то ответил.
Насчет справки, после очередного теста нашел нестабильность формы, уже исправил, но новые версии справки и
примеров только собираюсь сформировать. Будет kf247ru50.
biformatus; Evil Beaver; JohnyDeath; +3 Ответить
114. JohnyDeath 301 12.01.16 20:40 Сейчас в теме
(112), (113)
Далее появится "конвертер управляемых форм в KiXforms", параллельно ему допилят ODBC-обертку и вуаля, убийца 1С готова )))
116. Evil Beaver 8107 13.01.16 23:05 Сейчас в теме
(114) JohnyDeath,
вуаля, убийца 1С готова )))

Чур-меня, чур. Изыди, еретик! )))
119. Darklight 32 20.01.16 11:38 Сейчас в теме
Скрипты это хорошо. Но для скриптов очень важно
а) Повторное использование кода (подключение библиотек)
б) Набор нативных возможностей, дающих доступ к тем или иным ресурсам локального/удалённого компьютерного оборудования, и к WEB-ресурсам
в) Шаблоны и макросы - позволяющие "управляемо" разворачивать алгоритмы в более сложные структуры, позволяющие получать массово клонируемые полиморфные стукрутыр алгоритмов на основе "простых" исходных образцов. Скрипты, генерирующие по паттернам скрипты и их исполняющие их.
Для эффективной реализации пунктов а) и б) нужны простые механизмы подключения уже созданных библиотек: скриптов + возможность подключать свои библиотеки (на той же dot NET) для расширения нативных библиотек.
А для последнего пункта нужен особый синтаксис для реализации макрошаблонов (в 1С 8 такого нет, но очень не хватает; но есть, например, dot NET языке Nemerle).
И тогда это будет мощный инструмент.

Да, и ещё вопрос. А как тут с поддержкой работы с базами данных (хотя бы через ADO SQL) и есть ли поддержка OLE Automation Clinet (хотя бы для подключения к 1С: Предприятие)?
120. Evil Beaver 8107 20.01.16 16:20 Сейчас в теме
(119) Darklight,

а) Повторное использование кода (подключение библиотек)

Есть http://oscript.io/library (полный список на гитхабе по ссылке)
б) Набор нативных возможностей, дающих доступ к тем или иным ресурсам локального/удалённого компьютерного оборудования, и к WEB-ресурсам

Есть (чего не хватает - сообщайте):
  • Файлы
  • Запуск приложений
  • Чтение потоков ввода/вывода
  • XML
  • TCP\
  • HTTP
  • ZIP
  • COM-объекты
  • И вообще, все здесь: http://oscript.io/syntax

в) Шаблоны и макросы - позволяющие "управляемо" разворачивать алгоритмы в более сложные структуры

Нету. Но и далеко не в каждом скриптовом языке есть.
Да, и ещё вопрос. А как тут с поддержкой работы с базами данных (хотя бы через ADO SQL) и есть ли поддержка OLE Automation Clinet (хотя бы для подключения к 1С: Предприятие)?

Задача на собственные классы к БД есть, но не реализована. А через ADO - хоть сейчас.
Кроме того, прямой проброс библиотек .NET в скрипты - делается несложно, планы такие есть.

Иными словами, непонятна критика - большая часть того, что вы перечислили есть уже сейчас, а метапрограммирование штука хорошая, но без нее жить вполне можно.
123. andy23 467 31.03.16 17:32 Сейчас в теме
(120) работа с FTP очень бы пригодилась
121. shalimski 6 25.01.16 09:56 Сейчас в теме
122. Evil Beaver 8107 26.01.16 12:46 Сейчас в теме
(121) shalimski, Это класс, выдающий информацию о сценарии (скрипте). Существует два способа получения информации о скрипте:

Метод ТекущийСценарий()
Метод СтартовыйСценарий()

СтартовыйСценарий() описан в синтакс помощнике в разделе "Глобальный контекст"

ТекущийСценарий() это встроенная операция движка. (она, к сожалению, не описана в синтакс-помощнике, но зато ее много в файлах публикуемых скриптов - библиотеке и в примерах)

Что касается того, как с этим работать - то очень просто.

ЭтотСкрипт = ТекущийСценарий();
Сообщить(СтрШаблон("Выполняется скрипт %1", ЭтотСкрипт.Источник));
shalimski; +1 Ответить
124. MishaD 14 31.03.16 18:13 Сейчас в теме
Ага, столкнулся с задачей качать по расписанию большой файл с фтп с докачкой. Поискал в гугле, спросил на мисте, нашел ncftp. Да качает с докачкой, но надо знать имя файла. А про файл известно только то, что он по дате последний на фтп лежит.
125. eugeniezheludkov 43 01.04.16 08:18 Сейчас в теме
Обнаружил первоапрельскую багу в разнице поведения с 1С:
кк=2;Для i = 0 По 1000000 Цикл 	кк = кк * Цел((i+2)/2) * 2 /(Цел((i+1)/2) * 2 + 1);	КонецЦикла;	Сообщить(кк);

этот код нормально выполняется в 1Script, но в 1С 8.2 зависает навсегда, сделайте чтоб и у вас зависал.
126. dmpas 417 01.04.16 09:08 Сейчас в теме
(125) eugeniezheludkov, будь это на перле, я бы не рискнул запускать это :-D
Evil Beaver; +1 Ответить
127. Evil Beaver 8107 05.04.16 10:37 Сейчас в теме
(126) baton_pk, z я даже читать не рискнул, не говоря уже о запуске ))
128. eugeniezheludkov 43 12.04.16 06:33 Сейчас в теме
не вздумайте запускать тот код, я ничего не писал, это сделал известный ботнет от инфостарта
129. PerlAmutor 129 12.04.16 08:30 Сейчас в теме
1С придумывает велосипеды, разработчики 1С придумывают велосипеды. Когда это уже закончится? EcmaScript/JavaScript, на худой конец просто Java синтаксис во все приложения и будет вам низкий порог вхождения и ничего никогда забывать не придется. Что уж говорить о том, что в 21 веке в 1С до сих пор нет регулярных выражений, а работа с датами и строками - хождение по мукам, не говоря уже об отсутствующих функциях для работы с бинарными файлами (COM объекты - зло)...
130. Evil Beaver 8107 14.04.16 11:13 Сейчас в теме
(129) PerlAmutor, а почему сразу Java[Script]? Оно что, лучше остальных?
131. PerlAmutor 129 24.04.16 19:08 Сейчас в теме
(130) лучше конечно. C++ подобный синтаксис. А это сразу низкий порог вхождения для разработчиков из многих языков программирования: Java, C#, C/ObjectC...OpenCL Полный список тут.

Стоит ли говорить, что именно благодаря подобному синтаксису огромное количество портов программ из одного языка в другой и огромное сообщество кодеров, которое может помочь в составлении алгоритмов?
132. Evil Beaver 8107 25.04.16 15:04 Сейчас в теме
(131) PerlAmutor, вы не уловили иронии. Ну да бог, с ним... Язык не важен. Совсем. Добавление [choose a language] не изменит порог вхождения.
133. PerlAmutor 129 30.04.16 13:58 Сейчас в теме
(132) синтаксис очень важен. Все это влияет на скорость разработки и ёмкость кода. Я писал макросы Excel(Visual Basic), на WindowsShell (VBscript, jScript), PowerShell, BAT/CMD, AutoIt, Lua, Perl, Python, PHP. Последние 3 еще ничего. Но вот все остальное (включая синтаксис и набор методов 1С) стоят на первой ступени развития эволюции. В то время как синтаксис других языков ушел достаточно далеко. Одни лямбды с регулярными выражениями чего стоят. Подобные глупости вообще вымораживают:
НомерСтроки = НомерСтроки + 1;
А чего не "НомерСтроки++" ?
Или
SQLзапрос = "INS ERT IN TO table ("
"|id, "
"|1,"
"|2)";

Кому нужны эти кавычки и вертикальные линии, когда в нормальных языках компилятор и сам догадывается что происходит без явных указаний?

SQLзапрос = "INS ERT IN TO table (
id, 
1,
2
";
[/IS-QUOTE]

А комментарии и излишний текст?:

[1C-CODE]
// Пар1 - число, Пар2 - строка, Пар3 - массив
Процедура ИмяПроцедуры(пар1, пар2, пар3)
КонецПроцедуры;
Показать


Так поинтереснее будет:
function main(argc, argv /*комментарий в любом месте кода*/)
{

}


Это вообще классика:

СтрШаблон("Ошибка в данных в строке %1 (требуется тип %2)", 2, "Дата")


А как вам такой вариант (C++):
std::cerr << "Cannot open file for writing: "
              << qPrintable(file.errorString()) << std::endl;


Или PHP:
$var = 'my variable';
echo "I love {$var}";


Вот зачем кодерам жизнь усложнять? Возьми экспортируй весь набор типов данных, классов, методов, процедур, функций и т.д. и т.п. из своей библиотеки и позволь выбрать любой язык программирования для работы с этим.
134. Evil Beaver 8107 07.05.16 23:45 Сейчас в теме
(133) PerlAmutor,
экспортируй весь набор типов данных, классов, методов, процедур, функций и т.д. и т.п. из своей библиотеки и позволь выбрать любой язык программирования для работы с этим

Экспортировать мало. А рантайм (выполнялку) где брать? Т.е. еще надо поддержать в платформе движки PHP, JS и питона? Чтобы сервер предприятия запускал нужные скрипты на желаемом языке, так получается?
135. PerlAmutor 129 08.05.16 08:52 Сейчас в теме
(134) также как и с подключаемыми модулями в 1С. Сначала экспортируешь типы, функции, интерфейсы из ядра. Пишешь 1-2 стандартных подключаемых модуля, например под поддержку EcmaScript и Python. Чтобы было доступно из коробки. Дальше уже сторонние разработчики пишут свои плагины/подключаемые модули под другие языки, например под .cs (C#) скрипты. В результате имеем механизмы для работы и создания приложений любой сложности, а главное его можно разрабатывать в любой IDE и интерфейс описывать на любом декларативном языке. В общем что-то типа QtQuick, только со специализированным ядром учетной системы.
136. Evil Beaver 8107 12.05.16 22:01 Сейчас в теме
(135) PerlAmutor, там придется серьезно переписать ядро самой платформы, чтобы такие плагины стали возможны. (Ну или если там это есть - то все это придется серьезно задокументировать, а потом поддерживать)

И тут встанет вопрос "Где деньги, Зин?" Какой профит принесет компании вложение ресурсов в подобную доработку платформы? Мы, например, тут можем придумать ответ на данный вопрос и попытаться донести его до 1С. Если наше предложение действительно будет приносить прибыль, уверен, 1С займется этой работой.

Возьметесь сформулировать?
137. PerlAmutor 129 20.05.16 22:16 Сейчас в теме
(136) определенно надо часть ядра переносить в OpenSource среду и позволить всем программистам вносить свою лепту. Если все идет в сторону HTML5 и JavaScript, то надо перестраиваться. WMF/EMF иконки выкинуть, сделать поддержку .svg/.svgz, webp/webm и т.д. Встроить Chrome движок в ядро, а не полагаться на InternetExplorer. Apple пошла этим путем, взяла все свободные разработки сделанные другими людьми бесплатно, сделали форки, чуток изменили и начали продавать как готовый собственный продукт. Исков не избежали. Но и продавать меньше не стали после этого. Надо соответствовать мировым стандартам и обратить "мозги" находящиеся зарубежом на пользу собственной стране не зацикливаясь на синтаксисе с русским языком.
138. JohnyDeath 301 21.05.16 09:29 Сейчас в теме
139. cool.vlad4 2 22.05.16 04:20 Сейчас в теме
(137) PerlAmutor, осталось только понять, если вы знаете эти крутые банальностиистины, то почему не взяли как Apple и не подкрутили там, сям и не получили на выходе продукт? вы даже на гитхабе не смогли найти данную разработку, но уже беретесь о ней судить. C# скрипты не надо изобретать, они уже есть. http://scriptcs.net/
141. cool.vlad4 2 22.05.16 04:31 Сейчас в теме
(137) PerlAmutor,
сделали форки, чуток изменили
и нифига они не чуток изменили. там дохрена человекочасов потрачено. а автор скриптового языка 1С сделал его не чтобы
соответствовать мировым стандартам и обратить "мозги" находящиеся зарубежом на пользу собственной стране не зацикливаясь на синтаксисе с русским языком.

об этом хорошо на кухне говорить. а чтобы был скриптовый язык, совместимый до некоторой степени с языком 1С. как я писал выше, мне он не нужен вообще. но другим вполне может быть полезным. это не велосипед ни разу, поскольку нет ни одного совместимого скриптового языка с языком 1С(на уровне копипейста. это может быть даже покрывает некоторые кейсы при программировании на самой 1С, - например проще тестировать некоторые куски кода). все остальные замечания по поводу отставания (с которыми я ксатит могу быть согласным) , надо писать на почту 1С, а не сюда.
ps в 1С можно и на английском кодить. че-то я не заметил , чтобы мировые мозги зациклились на 1С. на сегодняшний день, 1С, это чисто российский продукт, рассчитанный на постсоветское пространство, где польуется популярностью для учета программа 1С. не надо строить иллюзий.
142. Evil Beaver 8107 24.05.16 11:52 Сейчас в теме
(141) cool.vlad4,
это чисто российский продукт, рассчитанный на постсоветское пространство


В последний год 1С стала активно прикладывать усилия для продвижения за рубюежом. Курсы 1С на английском, офисы в Германии, Турции, США.

Продукт accountingsuite продвигается в Америке http://www.accountingsuite.com/

Видео со знакомым UI: https://www.youtube.com/watch?v=95X7yXP5BME

И демо-версия http://apps.1c-dn.com/1cas/en_US/

1C это весьма современный фреймворк. Совсем не хуже прочих, что используют в западном Enterprise.
140. cool.vlad4 2 22.05.16 04:26 Сейчас в теме
(134) я бы лучше ему задал другой вопрос. написал ли он хоть один язык или хоть пытался. любой, - скриптовый или компилируемый, неважно. а то такие фразы
экспортируй весь набор типов данных, классов, методов, процедур, функций и т.д. и т.п. из своей библиотеки и позволь выбрать любой язык программирования для работы с этим

выдают, что месье теоретик в кубе. есть такой проект Nitra (https://github.com/JetBrains/Nitra), который начат JetBrains, взяв под крыло мэйтейнеров Nemerle, вот уже пару лет пытаются допилить. и чего-то как-то до сих пор. а тут энтузиасты на вольных хлебах в свободное от работы время замутят. всего лишь возьмут разработку опенсурс и все само собой накодится.
143. Drak0n 187 01.07.16 09:46 Сейчас в теме
При попытке свернуть комментарий перед процедурой/функцией - вылет.
144. Evil Beaver 8107 03.07.16 22:06 Сейчас в теме
(143) Drak0n, в каком редакторе?
145. Drak0n 187 04.07.16 16:59 Сейчас в теме
146. Evil Beaver 8107 04.07.16 18:15 Сейчас в теме
Спасибо. на всякий случай, напомню, что TestApp используется нами для отладки движка и не является полноценным редактором кода.

Полноценный редактор: http://infostart.ru/public/450868/ (по функциональности редактирования 1С лидирует VS Code)

И общепринятой практикой является сообщать об ошибках непосредственно в багтрекере проекта (https://github.com/EvilBeaver/OneScript/issues ). Так сообщение быстрее попадет к авторам.
147. newdigger 15.09.16 16:24 Сейчас в теме
Решаю админские задачи, не связанные с 1С, средствами платформы 1С. Очень порадовало решение. Спасибо разработчикам! Один скрипт уже портировал. Очень жду поддержки работы с электронной почтой (мне нужна только отправка писем).

P.S. В документации не нашел функции СокрЛП, хотя по факту она есть...
148. json 3297 06.10.16 20:01 Сейчас в теме
решил научиться пользоваться данным инструментом. Подскажите, пжалста, статья еще актуальная? Не нашел инсталлятора, как в статье. Какой файл тыкнуть, чтобы он установился?
149. dmpas 417 06.10.16 20:11 Сейчас в теме
150. json 3297 06.10.16 20:17 Сейчас в теме
(149) baton_pk, благодарю, помогло
151. hostguy 1 12.12.16 17:58 Сейчас в теме
Коллеги, подскажите пожалуйста в каком редакторе в Linux (OpenSUSE или Ubuntu) можно настроить подсветку синтаксиса аналогично Notepad++? Можно, конечно, писать скрипты в любом текстовом редакторе, но хочется с комфортом и красиво.
152. pumbaE 12.12.16 20:07 Сейчас в теме
153. hostguy 1 19.12.16 17:58 Сейчас в теме
(152) Евгений, благодарю за подсказку.
Еще вопрос - у меня подсветку синтаксиса в NP++ сделать получилось, но контекстной подсказки нет. Когда начинаешь набирать, например, Удалить - то контекста нет, и в англоязычном варианте тоже нет... Что я сделал не так и как прикрутить контекст?
154. JohnyDeath 301 19.12.16 23:58 Сейчас в теме
(153) может все-таки по ссылке перейдете и установите то, что советуют?
В NP++ не будет никакого контекста. Там только раскраска была, а все "подсказки" - штатные редактора, т.е. просто слова по текущему файлу
155. hostguy 1 20.12.16 12:24 Сейчас в теме
(154) Я именно так и сделал, перешел по ссылке и установил все что советуют. Подсветка синтаксиса и запускальщик в NP++ у меня прекрасно работают. Я спрашивал про контекстные подсказки, т.к. увидел контекст на картинке. Вы развеяли мои недоразумения, теперь содержимое картинки с контекстом мне понятно как и то, что я все сделал правильно и у меня все работает. Благодарю.
156. hostguy 1 20.12.16 12:31 Сейчас в теме
(152) Евгений, примите еще раз мою благодарность. Установил себе на LinuxMint редактор VSC и, воспользовавшись проектом xDrivenDevelopment/1c-syntax на GIT, подключил подсветку синтаксиса и контекст. Установил oScript и написал скриптик для подъема 2х файловых баз из архивов для обмена данными (рутинная операция, отнимавшая время каждый месяц). Могу сказать что это очень удобно, особенно когда немного привыкнешь к редактору и подсветке синтаксиса. Теперь на очереди скрипт для сортировки и удаления ненужных архивов 1С.
Еще раз спасибо!
Evil Beaver; artbear; +2 Ответить
157. JohnyDeath 301 20.12.16 14:59 Сейчас в теме
(156) многое уже сделано до вас. Вот стандартные библиотеки: https://github.com/oscript-library . Есть еще несколько отдельный проектов
Вливайтесь в чатик, спрашивайте, вам обязательно помогут: https://gitter.im/EvilBeaver/oscript-library
158. AKV77 259 30.12.16 14:38 Сейчас в теме
Коллеги добрый день ! Всех с наступающим Новым Годом ! Успехов, процветания и мира в ваших домах !

Решил воспользоваться oScript , установил , запустил тестовый батник, в итоге получил ошибку : (показана на рисунке)

Подскажите, в чем может быть причина.
Спасибо.



Прикрепленные файлы:
160. JohnyDeath 301 31.12.16 09:14 Сейчас в теме
(158) пиши подробнее в чат https://gitter.im/EvilBeaver/oscript-library с какими параметрами вызываешь и где платформа стоит.
159. AKV77 259 30.12.16 14:48 Сейчас в теме
в дополнение использую скрипт
Прикрепленные файлы:
uni_script.zip
161. DIvanmgn 11.05.17 22:04 Сейчас в теме
Здравствуйте. У меня ошибка (см. скриншот). Подскажите, пожалуйста, что не так?
Прикрепленные файлы:
163. Evil Beaver 8107 14.05.17 22:50 Сейчас в теме
(161) Точки с запятой после КонецПроцедуры запрещены синтаксисом. В 1С будет тоже ошибка, только звучать по-другому.
162. tivanitsky 18 12.05.17 10:22 Сейчас в теме
Пользуюсь не первый день ;-)
Evil Beaver; +1 Ответить
164. artbear 1448 15.05.17 08:53 Сейчас в теме
(0) Андрей, добавь в начало статьи вставку, что работа через Notepad++ морально устарела и рекомендуется VSC c нашим плагином.
Видишь, народ до сих пор юзает N++ :(
Evil Beaver; +1 Ответить
165. Evil Beaver 8107 18.05.17 00:58 Сейчас в теме
(164) А у нас есть где-то похожая детальная инструкция по превращению VSC в редактор 1Script?

Надо дать на нее ссылку.
166. JohnyDeath 301 18.05.17 08:00 Сейчас в теме
167. user736995 18.05.17 09:22 Сейчас в теме
Классная вещь! Надо попробовать!
168. Lucechiaro 10.10.17 09:47 Сейчас в теме
Добрый день!
Вопрос от начинающего пользователя onescript. Хочу написать сценарий сжатия файла журнала регистрации (sqlite). Одним из этапов планируется остановка службы сервера 1С, применение команды vacuum для файла базы sqlite и запуск службы сервера 1С.
Можно ли реализовать такое средствами onescript?
169. Evil Beaver 8107 10.10.17 12:54 Сейчас в теме
(168) Посмотрите в сторону пакета для работы с базами данных ( https://github.com/oscript-library/sql ) Я не являюсь автором и не могу сказать, поддерживает ли он sqlite. Но если поддерживает, то скорее всего, задачу реализовать можно.
170. artbear 1448 10.10.17 15:12 Сейчас в теме
(169) Поддерживает. У автора даже на Инфостарте статья об этой библиотеке есть.
173. Lucechiaro 11.10.17 09:59 Сейчас в теме
(169) Спасибо, Андрей. Буду пробовать.
171. oldfornit 10.10.17 15:23 Сейчас в теме
(168) рекомендую перейти на старый формат ЖР. Да, рекомендация совершенно левая, но зато здорово поднимает производительность сервера, особенно если ЖР занимает более 10-и гигов.
dmpas; JohnyDeath; +2 Ответить
172. Lucechiaro 11.10.17 09:58 Сейчас в теме
(171) Спасибо. Действительно, периодически задумываюсь об этом.
174. Evil Beaver 8107 11.10.17 10:19 Сейчас в теме
(171) Рекомендация не левая. На частой записи в ЖР старый формат лучше. Если надо искать в ЖР и писать туда не в режиме HighLoad, то новый формат самое то. Однако, на больших нагрузках - лучше себя показывает старый формат. А для поиска ЖР можно переливать в ElasticSearch.
175. Lucechiaro 11.10.17 10:47 Сейчас в теме
(174) Да, я как раз смотрю в сторону Elastic. Скорее не из-за HighLoad, а из-за жестких ограничений на объём дисков C на нашей ИТ-инфраструктуре. Раздувание ЖР сейчас для меня является большой головной болью.
176. maikl007 91 30.10.17 07:41 Сейчас в теме
Доброе время. Есть в onescript какой нибудь транслятор в другой язык скажем в VBS, просто нужно что код выполнялся на любой машине где есть OS WINDOWS?
177. Evil Beaver 8107 30.10.17 13:18 Сейчас в теме
(176) Нет. Есть функция упаковки в независимый EXE, но она не приветствуется и вообще развивается неохотно (но можно развить самостоятельно, т.к. open source)

Тем не менее, несложный набор скриптов превратить в exe возможно.
178. dmpas 417 30.10.17 13:33 Сейчас в теме
(176) (177)
несложный набор скриптов превратить в exe возможно

но всё равно помимо OS WINDOWS нужен будет установленный .NET Framework 4.5. То есть, на XP не запустится в любом случае.
179. Evil Beaver 8107 31.10.17 11:38 Сейчас в теме
(178) Кто сидит в 2017 году на вирусячном дырявом ведре выпуска 2002 года, тот я даже не знаю кто.
180. artbear 1448 31.10.17 12:13 Сейчас в теме
199. strange2007 144 15.08.18 17:31 Сейчас в теме
(179) Мне 98-я винда нравилась. Но эти злостные продвигатели новых осей совсем жить не давали. Злые вы)))))))
181. eugeniezheludkov 43 02.11.17 03:48 Сейчас в теме
Предлагаю еще немного популяризировать проект добавив его в качестве одного из ЯП для участия в чемпионате:
с 7 ноября стартует очередной чемпионат http://russianaicup.ru/ с призами и большим количеством программистов участников.
Каждый год список заявленных языков программирования пополняется "на лету".
Достаточно на добавляемом языке описать структуры данных обмена (они будут выложены 7 ноября на сайте) и написать клиента обмена с сервером (примеры будут так же выложены 7 ноября) через сокеты (http://oscript.io/syntax/page/TCP%D0%A1%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5­%D0%BD%D0%B8%D0%B5) используя описанную структуру (бинарные данные).
Протестировать решение с помощью утилиты localrunner.
Написать организаторам приложив ссылку на интерпретатор (oscript) и свой созданный языковой пакет.
182. eugeniezheludkov 43 02.11.17 06:20 Сейчас в теме
Может кому пригодится моя функция сжатия текста по алгоритму LZ77 ?
работает в oscript ))) поэтому кидаю в эту ветку и стираю с жесткого диска )

Функция СжатьLZ77(ВходнаяСтрока)
	ВыходнаяСтрока = "";
	Для i = 1 По СтрДлина(ВходнаяСтрока) Цикл 
		best = 0;
		bestLength = 0;
		Для  j = 1 По i Цикл 
			k = 0;
			Пока k + j < i и Сред(ВходнаяСтрока, k + i, 1)= Сред(ВходнаяСтрока, k + j, 1) Цикл 
				k = k + 1;
			КонецЦикла;     
			Если k > bestLength Тогда
				bestLength = k ;
				best = j   ;
			КонецЕсли;
		КонецЦикла;
		bestLength = Мин(bestLength, 30);
		Если bestLength < 3 Тогда 
			ВыходнаяСтрока = ВыходнаяСтрока + Сред(ВходнаяСтрока, i, 1);
		Иначе
			ВыходнаяСтрока = ВыходнаяСтрока + Символ(best + 2048 * bestLength);
			i = i + bestLength - 1;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ВыходнаяСтрока;	
КонецФункции

Функция РазжатьLZ77(ВходнаяСтрока)
	t="";
	СтрМакс = 2048;
	for П=1 to StrLen(ВходнаяСтрока) do 
		С=Mid(ВходнаяСтрока,П,1);
		К=CharCode(С);
		t=t+?(К<СтрМакс,С,Mid(t,К%СтрМакс,К/СтрМакс));
	enddo;
	Возврат t;
КонецФункции
Показать


поскольку в 1Скрипт нет функции Выполнить или Вычислить, то вариант sfx кода отпадает (((( разве что через временные файлы
Evil Beaver; +1 Ответить
183. dmpas 417 02.11.17 09:38 Сейчас в теме
(182)
нет функции Выполнить или Вычислить

появились

разве что через временные файлы

"ЗагрузитьСценарийИзСтроки"
Evil Beaver; +1 Ответить
184. Evil Beaver 8107 02.11.17 22:16 Сейчас в теме
(182) Сижу вот и думаю: а куда бы ее применить?
209. Perfolenta 204 30.10.18 15:16 Сейчас в теме
(182)
работает в oscript

очень странно работает :)
Например,
СказкаКолобок = "
|Жили-были старик со старухой.
|Вот и говорит старик старухе:
|— Поди-ка, старуха, по коробу поскреби, по сусеку помети, не наскребешь ли муки на колобок.
|Взяла старуха крылышко, по коробу поскребла, по сусеку помела и наскребла муки горсти две.
|Замесила муку на сметане, состряпала колобок, изжарила в масле и на окошко студить положила.
|";
получаем результат сжатия/разжатия и видим:
Жили-были старик со старухой.
Вот и говорит старик старухе:
о ст Поди-ка, старухи-кпо коробухи-скребиухи-ксусекробуметребне нахи-скешь ли мукибнекполобок.
Взялака, стар крылышкоухи-кпо коробухи-склрухи-ки-ксусекробВзямукиобухи-с ли мугорсти две.
Замесиухи-с уукибсобуане-каостряпаВзянекполо, изжариВзяв маслебВзям окоылы студитьхи-ложмес.

Не спорю, коробухи-скребиухи звучит прикольно, но на исходный текст не похоже.... :)
210. Evil Beaver 8107 30.10.18 19:50 Сейчас в теме
(209) вы какой версией это запускали?
211. Perfolenta 204 31.10.18 13:03 Сейчас в теме
(210) 1.0.20.108 но OneScript не виноват по-моему... я на своем языке программирования запускал этот же код, результат тот же... проблема в алгоритме... во-первых, алгоритм не поддерживает символы с кодом больше 2048, а в этом тексте такие есть ("—" длинный дефис), а во-вторых, алгоритм не пригоден для длинных текстов из-за малого числа разрядов под хранение смещения (я только кусочек в комментарий вставил, текст был длиннее)...
185. ahyahy 91 09.12.17 13:32 Сейчас в теме
Только что увидел версию 1.0.18. Почитал описание, просто СУПЕР! Проект развивается. Отладчик, функции «Выполнить», «Вычислить» и особенно «ЗагрузитьСценарийИзСтроки» для меня обещают много интересного... Спасибо разработчикам!
186. dmpas 417 09.12.17 14:33 Сейчас в теме
(185)
Только что увидел версию 1.0.18

мы тут 19-ю к новому году выпустить собираемся.
187. Evil Beaver 8107 11.12.17 00:06 Сейчас в теме
(185) Спасибо и вам! А еще и среда разработки на базе VSC сделала много шагов вперед.
188. biformatus 23.12.17 23:09 Сейчас в теме
Есть снегопат, и хотел писать скрипты в конфигураторе, но файла addins.ini не нашел.
189. Evil Beaver 8107 25.12.17 23:43 Сейчас в теме
(188) Новая версия Снегопата (которая reborn 2.0) пока не интегрирована с 1Script. Ждем энтузиастов, у самих рук не хватает пока сделать то, что для Снегопата 1.х уже было. (((
190. biformatus 18.01.18 00:10 Сейчас в теме
Можно ли обновить версию движка не скачивая дистрибутив?
191. Evil Beaver 8107 18.01.18 10:19 Сейчас в теме
(190) Это как? Силой мысли?

Если речь о "нескачивании" setup.exe - то да, можно. Но тогда придется скачать вариант дистрибутива ZIP и распаковать его в нужную папку. Так, чтобы совсем ничего не скачивать - это я не знаю как ))
192. biformatus 26.01.18 20:00 Сейчас в теме
(191) какой нибудь скрипт который скачает и обновит уже установленный из дистрибутива движок.
193. artbear 1448 26.01.18 20:12 Сейчас в теме
(192) Таких скриптов у нас несколько.
Сейчас заканчивается разработка удобного инструмента OneScript Version Manager
https://github.com/silverbulleters/ovm

с его помощью можно легко управлять версиями установленного/используемого движка

у меня уже заработала дев-версия.
194. Glebis 13 18.04.18 11:01 Сейчас в теме
Замечательная штука, но, как я понял, для выполнения скрипта на каком-то конкретном компьютере требуется чтобы был установлен OneScript.
Поэтому у меня 2 вопроса (предложения сделать):
1) Можно ли запустить один и тот же скрипт на нескольких ПК без установленных на них OneScript используя telnet или winRM (*nix аналога)?
2) Планируется ли создание компилятора osTOexe для быстрого развертывания на клиентских компьютерах без проблем с установкой OneScript и необходимостью поддерживать последние версии библиотек?
195. JohnyDeath 301 18.04.18 12:53 Сейчас в теме
(194) делать exe из скрипта можно уже довольно давно. И он не потребует установленного OneScript.
Правда есть проблемы, если скрипту требуются бинарники. Они в пак не входят
Оставьте свое сообщение