IE 2016

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

Опубликовал Evil Beaver в раздел Программирование - Инструментарий

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

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

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

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

На 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С. При переключении текстового документа в режим встроенного языка Снегопат будет предоставлять контекстную подсказку, как будто это не скрипт, а обычный модуль 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С. Исходные коды открыты. Справка по доступным классам и глобальным процедурам доступна и постоянно обновляется.

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

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

См. также

Лучшие комментарии

8. vandalsvq 04.02.2015 11:51
Классная работа. Молодцы. И большое спасибо что статью сделали - это большой шаг для продвижения. На конференции не все было понятно, не все воспринималось так же легко. В статье же все доходчиво и просто.

И на самом деле удобный и нужный инструмент. Только главное на хабре не рассказывать, что 1С-ники настолько ленивые что ничего кроме 1С знать не хотят )))))))
# Ответить
12. lustin 04.02.2015 13:30
(9) идет работы по прикручиванию с Sublime, но идет тяжело
# Ответить
24. lustin 08.02.2015 12:13
(23) cool.vlad4, понимаешь в чём штука - когда пишешь для себя, и сам изучаешь скриптинг - то да, такой способ работает на ура и мы его уже прошли. Кто-то на python, bash|zsh, Powershell. F# и Go - это тоже интересно, но только тебе и мне и еще 10-15 людям.
В свое время был такой сайт script-coding.info где gray-cardinal и остальные создавали скрипты для повторного использования.

Так вот проблема именно в повторном использовании - пример с Go, я не могу передать команде все мои наработки по Go, так как она не знает языка. Вариантов 2 - любо все изучают скрипты на go, либо я всё пилю в одиночку. И это проблема.

Применительно к твоему примеру - что еще хуже, такой скриптинг завязан только на Windows. То есть если у соседней команды linux - ты таким скриптингом уже не поделишься.

То есть 1Script предназначен для коллективной автоматизации 1С-специалистов и для повторного использования уже имеющихся наработок.

P.S. Как ты понял - я помимо ruby и python, последней время подсел на Go и экспериментирую с ним. Но только для личных целей.
Ответили: (25) (30) (74)
# Ответить
93. JohnyDeath 19.11.2015 19:17
(92) Evil Beaver, это они для меня немного магические. Для гуру гита наверняка все просто.

Вот откопал видео, которое я делал года полтора назад для тех, кто хочет побыстрей переложить все хранилище 1С в гит.
Все операции проводил в SourceTree:
http://www.screencast.com/users/mevgeny/folders/Jing/media/e6e543f6-96ec-4b30-a51b-a286f4b2e16b
+ 2 [ theshadowco; artbear; ]
# Ответить
43. pumbaE 11.03.2015 20:40
(42) jdo, ну расширение EXE ведь это условность, можно прописывать в скирптах
#!/usr/local/bin/oscript.exe
установить +x и скрипт будет выполняться с помощью oscript , а то что там расшрирение exe-это не важно.
Ответили: (44)
+ 2 [ Evil Beaver; artbear; ]
# Ответить

Комментарии

1. m-aziat 04.02.2015 09:20
Действительно классно получается. +
# Ответить
2. OrsoBear 04.02.2015 10:58
Отличная идея!
Часто приходится пользоваться скриптами.
Хорошо, что админ толковый попался, за меня эту функцию выполняет.
В данном случае могу делать все сам, и уровень сложности зависит только от меня.
Это радует.
Спасибо!
# Ответить
3. ekaruk 04.02.2015 11:19
Отличная статья.
Недавно как раз наткнулась в Инфостартовских видео на OneScript.
Как раз присматриваюсь.
Именно такой статьи и не хватало.

Есть ли какая-то возможность отладки скрипта?
Ответили: (5) (14)
+ 2 [ valik29; artbear; ]
# Ответить
4. WhiteOwl 04.02.2015 11:24
Занятная разработка))
# Ответить
5. Evil Beaver 04.02.2015 11:42
(3) ekaruk, мы пишем скрипты через тестирование и необходимость в отладке, как правило отпадает. Если что - выводим диагностические сообщения. За 4 месяца активного использования желания отладить пошагово ни разу не возникло.

Пошаговой отладки нет и вначале казалось, что она нужна. Сейчас такой уверенности нет. Диагностические сообщения и короткие тесты снимают необходимость колупать скрипт пошагово.
Ответили: (14)
+ 1 [ Redokov; ]
# Ответить
6. yku 04.02.2015 11:42
Это шикарно!
# Ответить
7. Bronislav 04.02.2015 11:49
Отличная штука, пользуюсь.
# Ответить
8. vandalsvq 04.02.2015 11:51
Классная работа. Молодцы. И большое спасибо что статью сделали - это большой шаг для продвижения. На конференции не все было понятно, не все воспринималось так же легко. В статье же все доходчиво и просто.

И на самом деле удобный и нужный инструмент. Только главное на хабре не рассказывать, что 1С-ники настолько ленивые что ничего кроме 1С знать не хотят )))))))
# Ответить
9. tormozit 04.02.2015 12:48
Кроме отладки еще и подсказка через точку отсутствует как я понимаю? =)
Ответили: (10) (12)
# Ответить
10. Evil Beaver 04.02.2015 13:12
(9) tormozit, присутствует. Вся подсказка реализуется средствами Notepad++. Она работает не так, как 1С-овская (и, наверное, не так, как твоя), но мне она кажется очень удобной ибо подсказывает вообще все, в том числе слова внутри строковых констант и через точку.
+ 1 [ kuntashov; ]
# Ответить
11. JohnyDeath 04.02.2015 13:25
Отлично!
А почему людям не дал ссылочку на жизненно важные скрипты-примеры https://github.com/xDrivenDevelopment/AutoAdmin1C/tree/develop/Scripts ? ;)
Ответили: (13)
# Ответить
12. lustin 04.02.2015 13:30
(9) идет работы по прикручиванию с Sublime, но идет тяжело
# Ответить
13. lustin 04.02.2015 13:34
(11) потому-что они не красиво пока выглядят. это же develop ветка. И зависят от TeamCity.
Ответили: (19)
# Ответить
14. lustin 04.02.2015 13:40
(3) ekaruk, цитата 3-ех месячной давности


Учитывая возникшие вопросы, хотелось бы поднять вопрос необходимости отладки самих скриптов

Причем давайте договоримся, что возможность "реализации отладки" существует. Гипотетическая.

То есть задача "Отладка скриптов 1Script" в первом приближении вырождается в несколько задач (причем эпичных):

* запуск интерпретатора в отладочном режиме (с debug портами)
* включение поддержки отладки в свою собственную IDE или в стороннюю (например Atom.io или Sumlime)

Пока в ближайшем будущем создание такого отладчика скорее НЕ нужно.


(5) ты решил что отладка все нужна ?
Ответили: (15)
# Ответить
15. Evil Beaver 04.02.2015 14:01
(14) lustin, мне казалось, что я ответил как раз противоположное. Возможно плохо сформулировал? Мы обсудили (ты привел цитату из обсуждения) и пришли к выводу, что отладка не нужна.
Ответили: (16)
# Ответить
16. Pr-Mex 04.02.2015 17:51
(15) Evil Beaver, пишу скрипты на OneScript постоянно.
Справляюсь без отладки.
Имхо, это не главное.
Главное - что новый язык для скриптов изучать не надо.
# Ответить
17. Asmody 05.02.2015 13:31
А Выполнить() реализована?
Я к тому, что repl бы не помешал.
Ответили: (18)
# Ответить
18. Evil Beaver 05.02.2015 16:52
(17) Asmody, в вики перечислены отличия от 1С:

Отличия от стандартного языка 1С:
Не реализованы следующие строковые функции:
  • СтрЧислоСтрок;
  • СтрПолучитьСтроку;
  • СтрЧислоВхождений (уже реализована в dev-версии 1.0.9);
  • ТРег
  • Не реализовано динамическое выполнение кода функциями Вычислить и Выполнить
  • Не реализованы функции ДобавитьОбработчик, УдалитьОбработчик для обработки событий COM-объектов.
  • Не поддерживается оператор Перейти (Goto) и метки

Некоторые отличия в будущем могут быть реализованы.

Мы не гонимся за абсолютной совместимостью, реализуем только наиболее полезные и востребованные вещи. "Выполнить" и "Вычислить" делать планируем, но это пока не жизненно необходимо и приоритет задачи снижен.
Ответили: (21)
# Ответить
19. JohnyDeath 05.02.2015 21:12
(13) выглядят они очень даже неплохо, тем более решают насущные проблемы простого одинэсника. От тимсити там не сильно много. А вот как старт для новичков, которым нужна выгонялка пользователей, этот небольшой наборчик очень даже пригодится.
# Ответить
20. pumbaE 05.02.2015 21:50
Для 8.3 есть управление сервером на основании RAC и RAS утилит. Можно по cron вешать проверку на наличие блокировки фоновых заданий.
# Ответить
21. Asmody 06.02.2015 14:23
(18) Evil Beaver, я же не столько про Выполнить(), сколько про repl. Если писать repl onescript на самом onescript (что кармически расово верно), то нужна Выполнить().
Ответили: (22)
# Ответить
22. Evil Beaver 06.02.2015 15:10
(21) Asmody, я понял. repl в чистом виде нет. Зато в комплекте есть тестовая утилита TestApp.exe. Там можно экспериментировать с кодом.
# Ответить
23. cool.vlad4 06.02.2015 15:52
плюсую хоть и не буду пользоваться))) и добавлю - видел подобное на ис сначала у Душелова (умный был мужик) и думал нафига оно, а оказалось если развить идею, то кому-то очень даже нужная вешь . от себя добавлю , что пользуюсь моим любимым python, на который вообще чего только нет и сейчас пытаюсь как-то использовать f# (а там есть скрипты!!!) , уж больно мне функциональщина и type provider (это вообще бомба) милы. например скачал здесь скрипт , перезапускает процессы и другие штуки делает на js
for (var enumItems = new Enumerator(objWMIService.ExecQuery (query_processes));!enumItems.atEnd(); enumItems.moveNext()) {
pcss_terminated = false;
var objProc = enumItems.item();

и понял , что js мне не люб.

вот так куда круче
let GetServiceByName(name : string) =
data.Win32_Service
|> Seq.find (fun proc -> proc.Name.Contains(name))

а потом можно передать список сервисов через пайп и делать что нужно
Ответили: (24)
# Ответить
24. lustin 08.02.2015 12:13
(23) cool.vlad4, понимаешь в чём штука - когда пишешь для себя, и сам изучаешь скриптинг - то да, такой способ работает на ура и мы его уже прошли. Кто-то на python, bash|zsh, Powershell. F# и Go - это тоже интересно, но только тебе и мне и еще 10-15 людям.
В свое время был такой сайт script-coding.info где gray-cardinal и остальные создавали скрипты для повторного использования.

Так вот проблема именно в повторном использовании - пример с Go, я не могу передать команде все мои наработки по Go, так как она не знает языка. Вариантов 2 - любо все изучают скрипты на go, либо я всё пилю в одиночку. И это проблема.

Применительно к твоему примеру - что еще хуже, такой скриптинг завязан только на Windows. То есть если у соседней команды linux - ты таким скриптингом уже не поделишься.

То есть 1Script предназначен для коллективной автоматизации 1С-специалистов и для повторного использования уже имеющихся наработок.

P.S. Как ты понял - я помимо ruby и python, последней время подсел на Go и экспериментирую с ним. Но только для личных целей.
Ответили: (25) (30) (74)
# Ответить
25. minimajack 08.02.2015 13:17
(24) lustin, проблема в том, что:
-скрипты пишутся под необходимое действие - один раз правильно написаный скрипт не требует изменений
-зависимости от дотнет, моно

в свое время писал скрипты(в основном php), с обязательным условием - наличие рядом интерпретатора и всех необходимых библиотек...
то есть структура была приблизительно такая:

скрипт1.bat
скрипт1.sh
/scripts/
/scripts/script1.php
/sctipts/data/ <- интерпретаторы, библиотеки
/sctipts/libs/ <- дополнительные библиотеки( на пхп)
...Показать Скрыть


фактически папка кидалась куда угодно и запускался любой скрипт в независимости от того, есть что либо установленное или нет. Размер 8-9 Мб + необходимые динамические библиотеки

Плюсы других скриптов в том - что на них уже понаписано много всего...вам недогнать без вливания гор денег и времени.
Ответили: (28)
# Ответить
26. Litvin2015 08.02.2015 13:42
Хорошая статья
# Ответить
27. Litvin2015 08.02.2015 13:42
Я бы даже сказал, что упрощает жизнь))
# Ответить
28. Evil Beaver 09.02.2015 00:47
(25) minimajack, от интерпретаторов никуда не уйти. На чем скрипт ни пиши, а интерпретатор поставить придется (разумеется, shell-язык не считаем). Если инфраструктура скриптинга удобна, то интерпретатор и незаметен вовсе. На линукс с этим проще, пишете в начале скрипта #!/usr/bin/oscript и вперед.
# Ответить
29. Yashazz 10.02.2015 02:03
Насколько это легально, как вяжется со всякими цопирайтами 1С и вообще каково мнение 1С об этом всём? Как сертифицируется, локально, в сети, в терминале итд?
Ответили: (35)
# Ответить
30. cool.vlad4 10.02.2015 02:58
(24) lustin, с этой точки зрения да, onescript выгоден. но минус у него - довольно маленькое комьюнити. даже у f# поболее) про python вообще молчу. как следствие гораздо меньше всяких возможностей. вот интересно interop у него есть какой-нибудь?


(f# кстати на linux-е вполне себе работает. проверено на opensuse, проверено на HackerRank, куда его недавно добавили, насчет wmi вот тут не уверен, что он там будет работать))) надо будет попробовать . но вроде и onescript на шарпе написан. так что паритет) смотрел немножко go, немного не понял нафига они сделали такую извращенную работу с исключениями а-ля C . на дворе 2015 год как никак.
Ответили: (52)
# Ответить
31. cool.vlad4 10.02.2015 03:04
не в любом случае нужная вещь. это я понимаю. для тех кто вообще не пишет ни на каком скриптовом языке, это ж круто, - взял, сел и написал что нужно. без 1С. теперь может парсеры будут на onescript писать))) не серьезно, стоит подумать об всяких interop. не знаю. какой конкретно . но раз это на шарпе написано, то возможность подключения сборок.
# Ответить
32. jdo 18.02.2015 18:06
В связи с тряской мелкософтом перхотью с своих тухлых яиц и угрозой сцанкций, где можно скачать пакет под Linux? Не очень хочется, чтобы в час Х у меня всё перестало работать. Хотя кто его знает, может там уже заложено и ждёт своего часа, что-то типа format c:. :-) Windows это же проприетарная, то есть частная закрытая корпоративная система. Там по коду не полазишь, а укого есть такая возможность, то они не поделятся и не помогут.
Ответили: (33)
# Ответить
33. pumbaE 18.02.2015 18:33
(32) jdo, какой-то сумбур.
apt-get install mono-core
mono oscript.exe --version
Ответили: (38)
+ 1 [ Evil Beaver; ]
# Ответить
34. su_mai 02.03.2015 14:56
"Скрипты – наше все!"
"ИТС - наше все!"
Где то я это уже слышал :) Улыбнуло!
Ответили: (36)
# Ответить
35. Evil Beaver 02.03.2015 17:36
(29) Yashazz, полностью легально. Синтаксисы языков программирования не облагаются копирайтами.
# Ответить
36. Evil Beaver 02.03.2015 17:39
(34) su_mai, привет, Андрей. Не уловил шутку про скрипты и ИТС, пояснишь?
Ответили: (37)
# Ответить
37. su_mai 02.03.2015 18:29
(36) Evil Beaver, КВ так обычно говорила на семинарах. Извини если обидел.
# Ответить
38. jdo 10.03.2015 10:56
(33) pumbaE, нормальный "сумбур"-каламбур, то есть под nix-ы нет, на nix-ах только в эмуляторе. Одним словом он не кроссплатформенный. Жаль. :-(
Ответили: (39)
# Ответить
39. Evil Beaver 10.03.2015 11:34
(38) jdo, Что-что простите? Какой эмулятор? Моно? Вы по-моему, не в теме, уважаемый. Моно - это не эмулятор. Вы еще JAVA эмулятором назовите. 1Script кросс-платформенный в полной мере (насколько позволяет Runtime, а он позволяет практически все, что вам может понадобиться).
Ответили: (40) (42)
# Ответить
40. pumbaE 10.03.2015 14:53
(39) Evil Beaver, java - это кофе.
Ответили: (41)
# Ответить
41. Evil Beaver 10.03.2015 17:01
(40) pumbaE, Женя, а ты тот еще трололо :)
+ 1 [ pumbaE; ]
# Ответить
42. jdo 11.03.2015 20:00
(39) Evil Beaver, не тогда при чем здесь oscrip.EXE? В nix-ах вообще нет такого понятия как EXE, COM, BAT, CMD. Насколько я помню там есть только исполнимые файлы (+x). Также можно запустить и wine excel.exe.
Ответили: (43) (44)
# Ответить
43. pumbaE 11.03.2015 20:40
(42) jdo, ну расширение EXE ведь это условность, можно прописывать в скирптах
#!/usr/local/bin/oscript.exe
установить +x и скрипт будет выполняться с помощью oscript , а то что там расшрирение exe-это не важно.
Ответили: (44)
+ 2 [ Evil Beaver; artbear; ]
# Ответить
44. Evil Beaver 12.03.2015 09:49
(43) pumbaE, не совсем так, но смысл правильный.
(42) jdo, wine это тоже не эмулятор (это отражено в названии), хотя я с ними и не совсем согласен. А вот Mono - это полноценный runtime для Common Language Infrastructure. А то, что там файл с расширением .exe - так это просто название, ничего более. Внутри это не windows executable и не linux elf. Там внутри байткод для виртуальной машины. В Винде такой машиной является .NET, в Linux - Mono. Для работы 1Script в линукс не нужен wine.
Ответили: (45)
# Ответить
45. jdo 12.03.2015 12:55
(44) Evil Beaver, спасибо большое :-). Давно уже не работал с Linux-ом после сборки медиацентра на базе RedHat 5.4 руки не доходят (видите какой я древний, помню ещё Red Hat 6.1 - Black Cat). Да, согласен - WINE («Wine Is Not an Emulator»), по моему уразумению - это совокупность "бридж"-библиотек для среды Linux (Wine — это альтернативная реализация Windows API). Можно ли это назвать "RunTime для Windows приложений" или нет не могу сказать. О mono слышу впервые. Wiki: «Mono — проект по созданию полноценного воплощения системы .NET Framework на базе свободного программного обеспечения. ...платформа Mono была официально признана реализацией .NET на Unix-подобных операционных системах (Linux, Mac OS X и других). Mono предоставляет реализацию ASP.NET, ADO.NET и Windows.Forms, но в то же время рекомендует не использовать эти API.[6].»
Из всего вышенарытого делаю осторожный вывод, что mono - это частично реализованная WINE, поскольку Windows API включает в себя ADO.NET, ASP.NET & Windows Forms) или я снова ошибаюсь? (Опять я "за старое" :-))
Ответили: (46) (76)
# Ответить
46. Evil Beaver 12.03.2015 13:13
(45) jdo, Mono и Wine два разных проекта. Насколько мне известно, между собой не связанных. .NET сам по себе кросс-платформенная среда (как и Java, с которой он был слизан). В .net нет в явном виде завязок на какую-то конкретную операционную систему, все как-бы абстрагировано от ОС. Опять же, см. JAVA. Другое дело, что если вы собираетесь явно привязать свой софт к Windows, то можете использовать системные вызовы, ориентированные именно на конкретную ОС. Но архитектурно .NET кросс-платформенная среда, выполняемая в виртуальной машине. Mono - это реализация такой машины для nix. Там нет оберток для функций windows.

Что касается ASP.NET, то он написан уже на управляемом коде, соответственно, отвязан от ОС и может быть выполнен в Mono. Про Windows Forms не знаю, как они это делали. Вообще оригинальный WinForms был жестко завязан на GDI. Как они вышли из ситуации не знаю. Вполне возможно, опять же, что рисуют окошки сами, изображая снаружи API Windows Forms.
Ответили: (47)
# Ответить
47. jdo 15.03.2015 10:31
(46) Evil Beaver, огромное спасибо. В связи с физиологическим несварением корпорации Мелкософт и их форточек, не воспринимаю их продукты уже физическом уровне (скорее бы уж они ввели свои сцанкции против нас, о как достали). Поэтому не интересуюсь их "творчеством", просто пользую в работе. Отлик был для меня очень полезен. Ещё раз большое спасибо.
Ответили: (49)
# Ответить
48. Артано 16.03.2015 04:11
Давно слежу за развитием проекта. Очень хорошо, что удалось его довести до известности. По поводу необходимости знания "настоящих языков" могу сказать следующее:
В любой задаче на разработку есть два ключевых параметра: время на разработку и эффективность конечного софта.

Разумеется, если разработчик 95% времени пишет на языке 1С, то рабочий скрипт на этом же языке напишет быстро даже в обычном блокноте без плюсов.
Ответили: (50)
# Ответить
49. Evil Beaver 16.03.2015 12:04
(47) jdo, Да не за что. Это вам спасибо.
P.S. Ненависть к Microsoft является болезнью. Линус Торвальдс. :)
Ответили: (73)
+ 1 [ artbear; ]
# Ответить
50. Evil Beaver 16.03.2015 12:08
(48) Артано, Спасибо за отзыв. Вопрос из любопытства: а самим 1Script пользуетесь? Или просто за проектом следите?
Ответили: (51)
# Ответить
51. Артано 17.03.2015 02:11
(50) Пока только слежу, очень понравилась идея изначально. Вчера всерьёз обсуждали вопрос об использовании 1Script в повседневной работе. Скорость и качество написания скриптов админами известна, скорость и качества кода разработчиков тоже. Вопрос времени.
# Ответить
52. Evil Beaver 26.05.2015 14:42
(30) cool.vlad4,
вот интересно interop у него есть какой-нибудь

Есть COMОбъекты, их в какой-то мере можно считать за Interop. В родном 1С примерно то же самое.
Ответили: (56) (73)
# Ответить
53. DexterMorgan777 01.06.2015 16:45
Спасибо за подробное описание. Буду пробовать написать скрипт для автоматического обновления иб из cfu файла. Пока не нашел таких примеров (мало искал). Может кто-нибудь посоветует или поделиться примером?
Ответили: (54)
# Ответить
54. Evil Beaver 02.06.2015 12:59
(53) DexterMorgan777, пример очень простой:
ЗапуститьПриложение(ПутьК1Cv8.exe DESIGNER /F"путь к каталогу ИБ" /N"Администратор" /UpdateCfg"ПутьКФайлуCFU")


Т.е. вам нужно только запустить конфигуратор с нужными ключами и собственно на этом все. А инфраструктурную обвязку напишите, уже какую вам надо.

Удобно будет воспользоваться библиотечным скриптом v8runner.os (https://github.com/EvilBeaver/oscript-library/blob/master/src/v8runner/v8runner.os)
Ответили: (55)
# Ответить
55. DexterMorgan777 05.06.2015 12:40
(54) Evil Beaver, спасибо. Я сначала написал просто бат файл, но он не стабильно работал. Пару раз обновление не прошло из-за того что не всех пользователей выгнало, а один раз обновило динамически (в обновлении только код был). Я примерно так и начал писать как вы указали (посмотрел другие ваши темы и поискал примеры). Но пока отложил на следующую неделю или чуть позже, подкинули задач. Как допишу может выложу сюда, может подскажете чего полезного или кому-то полезно окажется.
# Ответить
56. mikhailv 08.06.2015 17:18
(52) Evil Beaver,
Есть COMОбъекты, их в какой-то мере можно считать за Interop. В родном 1С примерно то же самое.

А как быть в linux? Например, мы в своё время не смогли подружить сервер 1С на linux и API OpenOffice. Пришлось этот кусок отдать python-у.
Ответили: (57)
# Ответить
57. Evil Beaver 08.06.2015 17:48
(56) mikhailv, ну поскольку 1Script - это язык 1С, а в языке 1С нет никакого Interop, кроме COM, то ответ - никак. Вернее, есть вариант написать как-бы "внешнюю компоненту" на C#
# Ответить
58. Чарик 09.06.2015 13:32
Классная статья! Иногда нужна "быстрая" отладка для консультаций, без запуска пофигуратора.!
Ответили: (59)
# Ответить
59. Evil Beaver 09.06.2015 16:43
(58) Чарик, спасибо за отзыв. Про консультации я вот не понял.. Вы что имели в виду?
Ответили: (60)
# Ответить
60. Чарик 17.06.2015 15:46
(59) иногда спрашивают как сделать то, как сделать это, и нужно посмотреть в конфигураторе как отрабатывает код, а тут без запуска конфигуратора - все под рукой)))
Ответили: (61)
# Ответить
61. Evil Beaver 17.06.2015 17:21
(60) Чарик, ну здесь поведение берется не из 1С, а реализуется внутри 1Script по аналогии с наблюдаемым поведением платформы. В общем случае, они могут различаться. Если 1Script ведет себя одним образом, то 1С может повести себя по-другому. У них не общая кодовая база.
# Ответить
62. kMidas 27.07.2015 14:34
Подскажите, пожалуйста, есть ли способ использовать существующие наработки кода (библиотека функций в нескольких общих модулях) ?
Ответили: (63)
# Ответить
63. Evil Beaver 27.07.2015 15:47
(62) kMidas, да, можно. Начиная с версии 1.0.10 поддерживается библиотека скриптов. Почитать про то, как это устроено можно вот здесь:

https://bitbucket.org/EvilBeaver/1script/wiki/externals
https://bitbucket.org/EvilBeaver/1script/wiki/package-loader

Кроме того, мы организовали стандартную библиотеку пакетов, которая будет со временем пополняться (https://github.com/EvilBeaver/oscript-library ). Дорабатывать и дополнять библиотеку может любой желающий.

Ну и кроме того, всегда можно спросить меня, если что-то в документации написано сумбурно.
# Ответить
64. logarifm 23.08.2015 10:48
Отлличная статья. Премного благодарен. Согласен насчет того, что ненужно вспоминать ничего никаких других языков и диалектов языка.
# Ответить
65. eugeniezheludkov 15.09.2015 02:26
хочу его на андроид с возможностью обработки событий андроида (подписка на события типа получения СМС, автозагрузка и тд ), написания виджетов, сервисов. существует ли возможность скомпилить oscript в .apk файл например с помощью XamarinStudio (доработав работу с событиями и intents)?
Ответили: (66)
# Ответить
66. Evil Beaver 19.09.2015 21:15
(65) eugeniezheludkov, вот прямо сейчас такой возможности нет. Если на андроиде можно выполнять код .NET, то можете попробовать адаптировать код oscript под это дело, но я в андроидах ни в зуб ногой, ничего конкретного сказать не могу.
Ответили: (67)
# Ответить
67. eugeniezheludkov 21.09.2015 03:47
(66) Evil Beaver, под андроид на шарпе разрабатывал в Unity3d, нормально выполняется .NET через mono. Ксамарин еще не пробовал, вроде как там должен быть выбор платформы и сборка apk с подписыванием сертификатов (как это сделано в Юнити). Если качать VS2015, в комплекте идет(опционально) Xamarin Studio правда при этом требуется скачивать 26 гиг. (пока не качал) на данный момент я скачал просто VS2015. у меня получилось скомпилировать по проектам отдельно ScriptEngine, ScriptEngine.HostedScript, TestApp и тд.
экспериментирую, по мере нахождения свободного времени, изучаю...
Ответили: (68)
# Ответить
68. Evil Beaver 21.09.2015 11:38
(67) eugeniezheludkov, тогда проще обсуждать не в каментах, а напрямую. Меня можно найти в google hangouts или в скайпе. Контакт отправил в личку.
# Ответить
69. vasbur 19.10.2015 09:50
На Инфостарте вы рассказывали, что есть возможность скачивать новые релизы помощью этого инструмента.
Можете по это рассказать подробнее?
Ответили: (72)
# Ответить
70. shmax 20.10.2015 10:17
Не смог воспользоваться вот этим: "Код наших скриптов также расположен в git, и любой 1С-ник компании может при желании что-то доработать. Язык знаком всем и не требует дополнительных навыков." Я впервые на Git хабе и потртив полчаса так и не нашёл примеров :-(
Ответили: (71)
# Ответить
71. Evil Beaver 20.10.2015 19:35
(70) shmax, не нашел примеров чего? Возможно мы плохо что-то положили, неявно, можно попробовать улучшить. В чем заключалась сложность поиска?
# Ответить
72. Evil Beaver 20.10.2015 19:38
(69) vasbur, у 1С есть сервер, где лежат новые версии. Типовые конфигурации скачивают оттуда свои обновления (см. подсистему автообновления в типовых). Можно скачивать обновления и другими средствами. Этот инструмент не "позволяет скачивать новые релизы", а позволяет написать код, который будет что-либо скачивать. Готового скрипта у меня нет, т.к. мне не нужно скачивать типовые, я это у себя не автоматизирую. Но алгоритм и адреса сервера есть в любой типовой конфигурации от 1С, а поскольку языки совместимы, то на скрипты это портируется копированием-вставкой.
# Ответить
73. cool.vlad4 07.11.2015 04:49
(49) Evil Beaver, вообще судя по постам, он и линух знает так себе (тем более сам написал, что давно его не видел) . а если и микрософт ему не люб, интересно на чем он вообще работает и что он делает в подобных темах. (назвать mono - эмулятором это круто. ксати для ненавистников микрософта - он уже кучу месяцев назад стал открывать исходники . и как сейчас там дела обстоят, я не знаю, но думаю в ближайшее время net будет полноценным конкурентом java)
(0) идея: для ленивых виндузятников можно сделать package (по сути powershell скрипт написать) для chocolatey и тогда можно будет одной командой ставить и на винде.
cinst oscript -y

(52) Evil Beaver, comобъекты это уже хорошо. но я не понимаю почему нет (или я не знаю) возможности подключения net assembly ? (как в IronPython например . как в powershell и т.д. кстати я не писал тогда выше, но забыл тогда упомянуть про другой скриптовый язык, который кстати для знакомых с C# ближе. это scriptcs . через choco также ставится одной строкой )
Ответили: (75) (78)
# Ответить
74. cool.vlad4 07.11.2015 04:55
(24) lustin,
Применительно к твоему примеру - что еще хуже, такой скриптинг завязан только на Windows.

мой метод завязан на dotnet, как и onescript. (ну и сравнивать f# и onescript, как-то несерьезно было с твоей стороны. у onescript только одно преимущество, которое преимущество среди 1С разработчиков. это синтаксис 1С. и все. типизация кстати в f# строгая, что по мне плюс. огромный такой плюс. )
# Ответить
75. cool.vlad4 07.11.2015 05:06
(73) cool.vlad4, + про p/invoke забыл добавить (комментарий не дает сайт редактировать)
# Ответить
76. cool.vlad4 07.11.2015 05:12
(45) jdo, вы несете , извините за грубость, несете ерунду. причем как по винде, так и по linux тематике.
вот исходники моно https://github.com/mono/mono
найдите мне где там зависимость от вайн?
для Windows Forms есть альтернативы типа gtk#
про ADO.NET, ASP.NET , какая-то ересь написана.
а ребята в https://github.com/Perspex/Perspex пилят как я понят WPF фрэймворк, который и на linux работает, и на яблоке.
см https://youtu.be/c_AB_XSILp0
# Ответить
77. cool.vlad4 07.11.2015 05:30
и еще вдогонку .
есть ли некий биндинг, скрипт eval для самой 1С? т.е. как msscript control , чтобы можно было выполнять код уже в самой 1С и получать результат, добавлять переменные и т.п.? или такой задачи не стояло?
# Ответить
78. Evil Beaver 08.11.2015 19:32
(73) cool.vlad4,
почему нет (или я не знаю) возможности подключения net assembly ? (как в IronPython например)

Такая возможность планируется. Все, как обычно, упирается в свободные ресурсы.
Ответили: (79)
# Ответить
79. cool.vlad4 15.11.2015 23:29
(78) Evil Beaver, понятно, ну это я не требую, это просто идеи вслух. например еще идеи для onescript, это сделать reflection для языка onescript и сделать некий анализатор этого языка на предмет ошибок. ...и потом использовать это для 1С языка) (для всяких предметно-ориентированных вещей можно гипотетически сгенерировать заглушки, моки и тогда можно будет и тестирование сделать и генерацию кода, но это так, чисто пока идеи, фантазии на тему)
# Ответить
80. andy23 16.11.2015 15:54
А как избавиться от такого сообщения:
Тип System.Int64 невозможно преобразовать в один из поддерживаемых типов ?
...
Sessions = ServerAgent.GetSessions(Cluster);
Для NubCon = 0 По (Sessions.Count()-1) Цикл
Соединение = Sessions[NubCon];
UserName = Соединение.UserName;
MemoryCurrent = Соединение.MemoryCurrent;
... тут и возникает это сообщение...
Ответили: (81)
# Ответить
81. Evil Beaver 16.11.2015 17:07
(80) andy23, надо зарегистрировать баг в issue-трекере проекта. Вот здесь:

https://bitbucket.org/EvilBeaver/1script/issues?status=new&status=open

Правильно ли я понял, что у вас сервер предприятия, к которому вы подключаетесь - 64-разрядный?
Ответили: (82)
# Ответить
82. andy23 16.11.2015 18:28
(81) Evil Beaver, Да, именно так.
На трекере ошибку зарегил.
Ответили: (83)
# Ответить
83. Evil Beaver 18.11.2015 22:29
(82) andy23, спасибо. Попробуйте скачать ночную сборку и проверить: http://oscript.io/downloads/night-build/zip
Ответили: (90)
# Ответить
84. comol 19.11.2015 10:26
А по скрипту gitsync не подскажешь?...
1) Он выгружает кучу хлама в виде обычных и упр форм, которые потом GitLab затягивает в себя и собственно "засоряет" эфир. Не делали чтобы выгружал чисто только код?
2) А не делали чтобы начальную выгрузку хранилища можно было ограничивать по номеру версии?... Сейчас оценил по времени сколько будет выгружаться всё хранилище - получил недели две... Хотя может стоит и всё выгрузить...
Ответили: (85) (88) (89) (91)
# Ответить
85. Evil Beaver 19.11.2015 11:12
(84) comol, привет. Выгрузка по номеру там есть, но забыл где. Возможно, @pumpaEO подскажет? Если не ошибаюсь, у тебя в git будет лежать спец. файл VERSION, который показывает, какая версия у тебя сейчас лежит в гите. Если поставить там тот номер, после которого хочешь синхронизировать, то оно как раз не все хранилище, а с этого номера будет обрабатывать.

Да, и по "чисто коду" - не делали, нам нужно как раз все, а не только код.
Ответили: (87)
# Ответить
86. dis_2015 19.11.2015 11:34
Здравствуйте. А возможно ли отправлять почту при помощи onescript? Доступен ли объект ИнтернетПочта ?
Ответили: (100)
# Ответить
87. comol 19.11.2015 11:37
(85) Evil Beaver, Спасибо. С файлом Version попробую. Так по-моему и работает... По коду тогда уже значит или Женя что-то подскажет или сам расковыряю...
# Ответить
88. artbear 19.11.2015 13:37
(84) Олег, тебе нужно смотреть именно файл Version.
В гит будет выкладываться конфигурация с номером, на единицу больше, чем в этом файле
# Ответить
89. artbear 19.11.2015 13:43
(84)
Он выгружает кучу хлама в виде обычных и упр форм, которые потом GitLab затягивает в себя и собственно "засоряет" эфир. Не делали чтобы выгружал чисто только код?

Можешь написать доп.скрипт, который будет удалять все файлы, кроме ObjectModule.*, module*.*, Форма.*, CommandModule.*, ManagerModule.* и тогда останется только код.

Но я не советую.
Например, ты лишишься интересной информации по изменения метаданных и их реквизитов, форм и т.п.
# Ответить
90. andy23 19.11.2015 14:30
(83) Evil Beaver, уже попробовал, все ок, спасибо!
# Ответить
91. JohnyDeath 19.11.2015 15:32
(84) comol, по второму вопросу отвечу.

Я разбивал разбор хранилища на куски и потом их гитом собирал в одну ветку.
Т.е. например у меня в хранилище 1с было 1000 помещений.
Я запустил 5 разборов параллельно: с 1 по 200; с 201 по 400 и т.д.
Получил 4 отдельных git-хранилища
И далее магическими командами git объединил всё в одно.

Рулил все файликом Version.
И это было еще в v83unpack. Здесь, думаю, будет тоже самое, т.к. этот скрипт и есть порт проекта v83unpack
Ответили: (92)
# Ответить
92. Evil Beaver 19.11.2015 16:16
(91) JohnyDeath, а магические команды гит - это какие? Ты давай, не хитри, а тащи всё в студию! :)
Ответили: (93)
# Ответить
93. JohnyDeath 19.11.2015 19:17
(92) Evil Beaver, это они для меня немного магические. Для гуру гита наверняка все просто.

Вот откопал видео, которое я делал года полтора назад для тех, кто хочет побыстрей переложить все хранилище 1С в гит.
Все операции проводил в SourceTree:
http://www.screencast.com/users/mevgeny/folders/Jing/media/e6e543f6-96ec-4b30-a51b-a286f4b2e16b
+ 2 [ theshadowco; artbear; ]
# Ответить
94. Lapitskiy 23.11.2015 08:33
ссылка на onescript.io не открывается что-то, работает только репозиторий на bitbucket, а хочется сразу инсталлятор :)
Ответили: (95)
# Ответить
95. JohnyDeath 23.11.2015 22:15
(94) Lapitskiy, да, есть такое. Уже дня три недоступен сайт. Андрей ака Evil Beaver в курсе, обещает скоро решить проблему
# Ответить
96. nipil 26.11.2015 03:24
Спасибо за статью. Жаль что только наткнулся. Буду тестировать
Желательно добавить в статью для быстрого старта.
Для корректной работы NppExec на windows 7 и выше нужно запускать Notepad++ от имени Администратора.
иначе
oscript C:\Shared\1cScript\Hello.os 
CreateProcess() failed with error code 2:
Не удается найти указанный файл.

Сообщить("Привет Мир!");
...Показать Скрыть

ну и конечно:
Сообщить("Привет Мир!");
Ответили: (97)
# Ответить
97. JohnyDeath 26.11.2015 09:05
(96) nipil,
Для корректной работы NppExec на windows 7 и выше нужно запускать Notepad++ от имени Администратора.

Не согласен. Без админских прав работает. Может это только при установки самого плагина и только в том случае, если каталог плагинов N++ находится в "Program Files"?
Ответили: (98)
# Ответить
98. nipil 27.11.2015 01:51
(97) JohnyDeath,
Именно так.
Автор описывает "Быстрый старт" включая Notepad++. Соответственно "установка по умолчанию" . (Program files (x86)\Notepad++\plugins)
Ответили: (99) (101)
# Ответить
99. Evil Beaver 27.11.2015 09:50
(98) nipil, у меня не просит админских прав, N++ установлен по умолчанию в Program Files, Windows 7,8,10 никаких доп. прав не выдавалось - работает из коробки. Я не готов поддерживать инструкцию по всем возможным вариантам настроек систем. Имеющий руки да настроит. Имхо, в 95% случаев статья описывает все что нужно для быстрого старта.
Ответили: (102)
+ 2 [ JohnyDeath; artbear; ]
# Ответить
100. Evil Beaver 27.11.2015 09:50
(86) dis_2015, ИнтернетПочты нет. Есть исходники, в которые вы можете добавить такой объект )
# Ответить
101. artbear 27.11.2015 10:29
(98) Я также ставлю Notepad++ по умолчанию и все работает. На 6 машинах ставил, проблем нет
Ответили: (102)
# Ответить
102. nipil 28.11.2015 15:55
(99) Evil Beaver, (101) artbear, Спасибо за ответы и статистику. Потестировал систему. При повторных установках OS не требовала повышения прав. Поведение не локализовал, поскольку на смог вспомнить ночную последовательность действий.

За OneScript ещё раз спасибо.
Ответили: (106)
# Ответить
103. Lapitskiy 29.11.2015 09:16
Да, сайт все так же недоступен...
Ответили: (104)
# Ответить
104. Evil Beaver 29.11.2015 21:45
(103) Lapitskiy, доступен. Какой IP у вас пигнуется?
Ответили: (105)
# Ответить
105. Lapitskiy 30.11.2015 13:57
(104) Evil Beaver, заработало! :)
# Ответить
106. nipil 30.11.2015 15:50
(102) nipil, Нашел! После работы инсталятора OneScript и до перезагрузки системы переменная среды Path имеет разные значения. При запуске cmd с повышением прав (от имени "Администратора") возвращает новое значение с установленным OneScript. При запуске cmd без повышения - остается старое. Проверенно на 2х системах Win7 Win8.
В статье описано - "нужно перезайти" я, в свою очередь, запустил cmd c повышением прав. Получив положительную реакцию на "oscript" запустил Notepad++ без повышения прав и соответственно получил указанную ошибку.
Таким образом все претензии к статье снимаются. Не бейте меня! Я мягкий и пушистый. Не нужно работать по ночам.
# Ответить
107. vec435 02.12.2015 12:44
когда увидит свет российская ОС - скрипты под нее уже есть
# Ответить
108. dis_2015 30.12.2015 17:04
Коллеги, подскажите как на onescript организовать взаимодействие с пользователем. Мне нужно при запуске скрипта спрашивать у пользователя путь к файлу.
Ответили: (109) (110) (111) (112)
# Ответить
110. Evil Beaver 31.12.2015 11:02
(108) dis_2015, в скриптинге так не принято. Обычно пользователя просят передать что-либо в качестве аргументов командной строки.

Т.е. нужно не выдавать пользователю запрос "введите путь", а описать в справке параметр "Путь" и при запуске требовать, чтобы его передавали.
+ 1 [ JohnyDeath; ]
# Ответить
111. ahyahy 12.01.2016 02:00
Очень заинтересовала данная публикация. Давно искал движок скрипта на русском языке. И нашел.
Спасибо! Предлагаю расширить возможности 1Script всё таки добавив к нему GUI. В том смысле что я
разработал возможность применения в скрипте библиотеки KiXforms Version 2.47, библиотека ведь
бесплатная.
Надеюсь пригодится, и для организации диалога с пользователем тоже. Перевел справку KiXforms,
повозился с нежеланием KiXforms работать для 1Script и вроде получилось. Предлагаю потестить.
Примеры из справки можно сохранять в "*.os" и запускать. Стоит ли двигаться в этом направлении?(108) dis_2015,

Прикрепленные файлы:

kixforms_v247-ru40.chm
# Ответить
112. ahyahy 12.01.2016 02:05
Да, на всякий случай, если kixforms_v247-ru40.chm не показывает разделы, в свойствах файла нажмите Разблокировать. (108) dis_2015,
Ответили: (113) (114)
# Ответить
113. Evil Beaver 12.01.2016 15:01
(112) ahyahy, справка нерабочая.
Сам по себе, я не сторонник GUI для скриптов, но если кто-то считает, что это будет полезно - я всеми руками ЗА. Если у Вас есть наработки по данной библиотеке (первый раз слышу про нее) - выкладывайтесь на гитхаб или еще куда. Там и мы все посмотрим, о чем речь, и помощники смогут подключиться, если сочтут нужным.

Иными словами, да, замечательно, что у вас есть интерес развивать GUI и участвовать в проекте. Я, со своей стороны, всегда готов помочь.
Ответили: (114) (115)
+ 1 [ JohnyDeath; ]
# Ответить
114. JohnyDeath 12.01.2016 20:40
(112), (113)
Далее появится "конвертер управляемых форм в KiXforms", параллельно ему допилят ODBC-обертку и вуаля, убийца 1С готова )))
Ответили: (116)
# Ответить
115. ahyahy 13.01.2016 02:17
(113) Evil Beaver, Исправил, на ресурсе bitbucket.org/ahyahy/gui-1script лежит русская справка KiXforms в html, dll и примеры "*.os". Справку и примеры буду дополнять, накопал недокументированные возможности.
Ответили: (117)
# Ответить
116. Evil Beaver 13.01.2016 23:05
(114) JohnyDeath,
вуаля, убийца 1С готова )))

Чур-меня, чур. Изыди, еретик! )))
# Ответить
117. JohnyDeath 13.01.2016 23:40
(115) ahyahy, я не совсем понимаю, для чего конкретно вы это делаете. Для каких задач?
Но если востребовано, то конечно пусть будет.

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

а сразу писать:
СписокЭлементов1.Очистить();
СписокЭлементов1.Колонки.Добавить("Цвет",120,0);
Ответили: (118)
# Ответить
118. ahyahy 14.01.2016 04:04
(117) JohnyDeath, О, для чего конкретно я и сам наверное четко не сформулирую, хотя можно попробовать. Начну с того, что просто
интересно кодировать и много свободного времени. Увидел скриптовый язык привычного синтаксиса и загорелось, не
потушишь. Просто болезнь какая то. Пока болею может что полезное сделаю. Мне-то точно, но может ещё и другим
пригодится. Идеи какие подкинет, на мысли хорошие наведёт. Идём дальше.
Ученые из ЦЕРНа (у меня нет там знакомых...) так прямо и отвечают - Ну не знаем мы, что нам этот бозон Хиггса даст,
но искать будем, только денег пожалуйста дайте. Ну не знаю я пока что из этого вырастет. Пусть растёт деревце,
если вырастет яблоня, яблоки будем кушать. Идём дальше.
Линус Торвальдс, когда писал свой эмулятор терминала, тоже бы четко не ответил. Ты чё парень, у нас же уже есть
UNIX, а он "заболел" и нате вам Linux. Идём дальше.
Да замечательно, теперь с 1Script мне автоматизировать легко и просто, ну легче и проще. Но привык я к GUI. Может
кто к другому привычнее, а я к GUI. Это не порок. Для пользователя опять же можно будет минипрограммки-подсказки
штамповать. Там и поля ввода можно отформатировать, чтобы лишнего не набили, и подсказок напридумывать.
Заботиться о пользователе надо. Кто кроме админа его пожалеет?
Можно этот GUI держать в стороне на полочке, и без него можно обойтись, а если понадобится так вот оно уже есть,
пользуйся, дополнительное лезвие в швейцарском ноже. И 1С по поводу лицензии к нам без претензий. Большие
программы конечно не напишешь, так ведь инструмент надо применять по назначению. Для админов самое то.
Будет востребовано или нет, мне и самому очень хочется знать, может я не один такой?
Да не хочу я 1С повалить. Там ребята молодцы, да и девчонки тоже, дело своё делают помаленьку. У них своё дело
, у нас своё. Думаю мы друг другу не мешаем.
Методы и свойства на русском тоже хочу, но не сразу Москва строилась! Я только недавно вплотную
KiXforms занимаюсь. Был ещё кандидат в виде WSO от Александра Веретенникова, но там всё очень громоздко
получилось и медленно. Да и подучить кое что надо. Ах, ах, у меня большие пробелы в знаниях. Осваиваю по мере
необходимости и интереса. Но в планах есть конечно. С самого начала было.
Надеюсь как-то ответил.
Насчет справки, после очередного теста нашел нестабильность формы, уже исправил, но новые версии справки и
примеров только собираюсь сформировать. Будет kf247ru50.
# Ответить
119. Darklight 20.01.2016 11:38
Скрипты это хорошо. Но для скриптов очень важно
а) Повторное использование кода (подключение библиотек)
б) Набор нативных возможностей, дающих доступ к тем или иным ресурсам локального/удалённого компьютерного оборудования, и к WEB-ресурсам
в) Шаблоны и макросы - позволяющие "управляемо" разворачивать алгоритмы в более сложные структуры, позволяющие получать массово клонируемые полиморфные стукрутыр алгоритмов на основе "простых" исходных образцов. Скрипты, генерирующие по паттернам скрипты и их исполняющие их.
Для эффективной реализации пунктов а) и б) нужны простые механизмы подключения уже созданных библиотек: скриптов + возможность подключать свои библиотеки (на той же dot NET) для расширения нативных библиотек.
А для последнего пункта нужен особый синтаксис для реализации макрошаблонов (в 1С 8 такого нет, но очень не хватает; но есть, например, dot NET языке Nemerle).
И тогда это будет мощный инструмент.

Да, и ещё вопрос. А как тут с поддержкой работы с базами данных (хотя бы через ADO SQL) и есть ли поддержка OLE Automation Clinet (хотя бы для подключения к 1С: Предприятие)?
Ответили: (120)
# Ответить
120. Evil Beaver 20.01.2016 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)
# Ответить
121. shalimski 25.01.2016 09:56
http://oscript.io/syntax/page/ИнформацияОСценарии
Подскажите что это, и как с этим работать?
Ответили: (122)
# Ответить
122. Evil Beaver 26.01.2016 12:46
(121) shalimski, Это класс, выдающий информацию о сценарии (скрипте). Существует два способа получения информации о скрипте:

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

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

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

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

ЭтотСкрипт = ТекущийСценарий();
Сообщить(СтрШаблон("Выполняется скрипт %1", ЭтотСкрипт.Источник));
+ 1 [ shalimski; ]
# Ответить
123. andy23 31.03.2016 17:32
(120) Evil Beaver, работа с FTP очень бы пригодилась
# Ответить
124. MishaD 31.03.2016 18:13
Ага, столкнулся с задачей качать по расписанию большой файл с фтп с докачкой. Поискал в гугле, спросил на мисте, нашел ncftp. Да качает с докачкой, но надо знать имя файла. А про файл известно только то, что он по дате последний на фтп лежит.
# Ответить
125. eugeniezheludkov 01.04.2016 08:18
Обнаружил первоапрельскую багу в разнице поведения с 1С:
кк=2;Для i = 0 По 1000000 Цикл 	кк = кк * Цел((i+2)/2) * 2 /(Цел((i+1)/2) * 2 + 1);	КонецЦикла;	Сообщить(кк);

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

Стоит ли говорить, что именно благодаря подобному синтаксису огромное количество портов программ из одного языка в другой и огромное сообщество кодеров, которое может помочь в составлении алгоритмов?
Ответили: (132)
# Ответить
132. Evil Beaver 25.04.2016 15:04
(131) PerlAmutor, вы не уловили иронии. Ну да бог, с ним... Язык не важен. Совсем. Добавление [choose a language] не изменит порог вхождения.
Ответили: (133)
# Ответить
133. PerlAmutor 30.04.2016 13:58
(132) Evil Beaver, синтаксис очень важен. Все это влияет на скорость разработки и ёмкость кода. Я писал макросы 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)
# Ответить
134. Evil Beaver 07.05.2016 23:45
(133) PerlAmutor,
экспортируй весь набор типов данных, классов, методов, процедур, функций и т.д. и т.п. из своей библиотеки и позволь выбрать любой язык программирования для работы с этим

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

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

Возьметесь сформулировать?
Ответили: (137)
# Ответить
137. PerlAmutor 20.05.2016 22:16
(136) Evil Beaver, определенно надо часть ядра переносить в OpenSource среду и позволить всем программистам вносить свою лепту. Если все идет в сторону HTML5 и JavaScript, то надо перестраиваться. WMF/EMF иконки выкинуть, сделать поддержку .svg/.svgz, webp/webm и т.д. Встроить Chrome движок в ядро, а не полагаться на InternetExplorer. Apple пошла этим путем, взяла все свободные разработки сделанные другими людьми бесплатно, сделали форки, чуток изменили и начали продавать как готовый собственный продукт. Исков не избежали. Но и продавать меньше не стали после этого. Надо соответствовать мировым стандартам и обратить "мозги" находящиеся зарубежом на пользу собственной стране не зацикливаясь на синтаксисе с русским языком.
Ответили: (138) (139) (141)
# Ответить
138. JohnyDeath 21.05.2016 09:29
139. cool.vlad4 22.05.2016 04:20
(137) PerlAmutor, осталось только понять, если вы знаете эти крутые банальностиистины, то почему не взяли как Apple и не подкрутили там, сям и не получили на выходе продукт? вы даже на гитхабе не смогли найти данную разработку, но уже беретесь о ней судить. C# скрипты не надо изобретать, они уже есть. http://scriptcs.net/
# Ответить
140. cool.vlad4 22.05.2016 04:26
(134) Evil Beaver, я бы лучше ему задал другой вопрос. написал ли он хоть один язык или хоть пытался. любой, - скриптовый или компилируемый, неважно. а то такие фразы
экспортируй весь набор типов данных, классов, методов, процедур, функций и т.д. и т.п. из своей библиотеки и позволь выбрать любой язык программирования для работы с этим

выдают, что месье теоретик в кубе. есть такой проект Nitra (https://github.com/JetBrains/Nitra), который начат JetBrains, взяв под крыло мэйтейнеров Nemerle, вот уже пару лет пытаются допилить. и чего-то как-то до сих пор. а тут энтузиасты на вольных хлебах в свободное от работы время замутят. всего лишь возьмут разработку опенсурс и все само собой накодится.
# Ответить
141. cool.vlad4 22.05.2016 04:31
(137) PerlAmutor,
сделали форки, чуток изменили
и нифига они не чуток изменили. там дохрена человекочасов потрачено. а автор скриптового языка 1С сделал его не чтобы
соответствовать мировым стандартам и обратить "мозги" находящиеся зарубежом на пользу собственной стране не зацикливаясь на синтаксисе с русским языком.

об этом хорошо на кухне говорить. а чтобы был скриптовый язык, совместимый до некоторой степени с языком 1С. как я писал выше, мне он не нужен вообще. но другим вполне может быть полезным. это не велосипед ни разу, поскольку нет ни одного совместимого скриптового языка с языком 1С(на уровне копипейста. это может быть даже покрывает некоторые кейсы при программировании на самой 1С, - например проще тестировать некоторые куски кода). все остальные замечания по поводу отставания (с которыми я ксатит могу быть согласным) , надо писать на почту 1С, а не сюда.
ps в 1С можно и на английском кодить. че-то я не заметил , чтобы мировые мозги зациклились на 1С. на сегодняшний день, 1С, это чисто российский продукт, рассчитанный на постсоветское пространство, где польуется популярностью для учета программа 1С. не надо строить иллюзий.
Ответили: (142)
# Ответить
142. Evil Beaver 24.05.2016 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.
# Ответить
143. Drak0n 01.07.2016 09:46
При попытке свернуть комментарий перед процедурой/функцией - вылет.
Ответили: (144)
# Ответить
144. Evil Beaver 03.07.2016 22:06
(143) Drak0n, в каком редакторе?
Ответили: (145)
# Ответить
145. Drak0n 04.07.2016 16:59
(144) Evil Beaver, OneScript\bin\TestApp.exe
# Ответить
146. Evil Beaver 04.07.2016 18:15
Спасибо. на всякий случай, напомню, что TestApp используется нами для отладки движка и не является полноценным редактором кода.

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

И общепринятой практикой является сообщать об ошибках непосредственно в багтрекере проекта (https://github.com/EvilBeaver/OneScript/issues ). Так сообщение быстрее попадет к авторам.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016