Мы построили OneScript. 10 лет локомотиву DevOps в 1С

16.06.25

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

В 2024 году главному инструменту DevOps в 1С исполнилось 10 лет. Расскажем о том, что представляет собой экосистема 1Script в 2024 году и почему её важно включить в свой рабочий процесс.

Меня зовут Андрей Овсянкин. Я автор и мейнтейнер проекта OneScript. Возможно, вы встречали меня на YouTube в видео на канале «Веселый 1С», читали мои статьи на Хабре или Инфостарте, или пересекались со мной в Телеграме.

Сегодня мы собрались не просто так, а по поводу. И этот повод – десятилетие проекта OneScript.

Как-то так получилось, что самый частый вопрос, которые мне задают в кулуарах конференции Инфостарта – это вопрос про предысторию появления OneScript: «Как ты вообще додумался до идеи этого проекта? Почему вообще решил его реализовать?»

Но так как объяснить всю предысторию возникновения проекта на бегу сложно, раз уж есть повод – десятилетие, я готов рассказать про это уже обстоятельно, вспомнив все детали. И ответить на этот самый часто задаваемый вопрос уже на широкую аудиторию.

 

Как появился OneScript. И почему именно сейчас ему 10 лет

 

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

Работа очень простая, но при этом кропотливая, нудная и ответственная. Выпустить релиз со старой версией или неактуальной датой в документации – недопустимо.

И что самое противное, все это было завязано на меня. Никто из коллег не хотел этим заниматься – именно потому, что работа нудная и ответственная. И если я уходил в отпуск, релизы не выпускались. Поэтому моей задачей было каким-то образом спихнуть эту работу на коллег.

 

 

А желание спихнуть свою работу на кого-то другого – это, как вы понимаете, довольно мощная мотивация.

Но для того, чтобы делегировать эту задачу, мне нужно было сделать процесс выпуска максимально простым.

 

 

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

Я подумал: что может быть проще одной кнопки? Должна быть одна кнопка, один портируемый файл, который будет выпускать релиз – подменять даты, модифицировать тексты, упаковывать и публиковать файлы.

  • Первое, что приходит в голову, как сделать такое решение одной кнопкой – это сделать батник. Но батник мне не подходил, потому что батники очень ограничены в своих алгоритмических возможностях – с помощью батника подправить текст внутри файлика я бы не смог. И в целом возможностей батника мне не хватало.

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

  • Поэтому мой выбор пал на VBScript – полноценный язык программирования, встроенный в Windows еще с 98-й версии. Скрипты на VBScript запускаются везде и всегда и возможностей у них гораздо больше, чем у батников, а распространять среди коллег их можно просто копированием файла с места на место.

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

 

 

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

«Это сложно»

Оказалось, что даже один-единственный файл, на который нужно просто два раза кликнуть – это все равно слишком сложно.

 

 

И все потому, что для критерия: «Нельзя отмазаться, что не понятно» я упустил один фактор: если надо делать чужую работу, отмазываться будут всегда – даже от одной кнопки.

Например, я услышал такие «отмазки»:

  • «Чтобы этим пользоваться, нужно знать Visual Basic».

  • «Если я захочу доработать, я не понимаю, что оно делает».

  • «Вот если бы это было на 1С, тогда бы…»

 

 

Я очень хорошо помню этот момент, когда мой коллега обронил эту фразу: «Вот если бы это было на 1С…» И эта фраза засела в моей голове.

Помните фильм «Начало», где в мозг человека подселяли навязчивую идею, которая впоследствии руководила его поступками? То же самое произошло и со мной.

 

 

Почему-то идея сделать Visual Basic Script на 1С не показалась мне в тот момент безумной. Я просто хотел облегчить себе жизнь и выбрал для этого самый «очевидный» способ – написать свой интерпретатор 1С. Это ведь простой и легкий путь для выкладки файликов на сайт, не так ли?

Тем не менее эта идея поселилась у меня в мозгу и начала зреть. Идея консольного приложения, которое можно просто отдать 1С-нику: запускаешь двойным щелчком – и получаешь какую-то околорелизную автоматизацию.

И вот уже 10 лет, как я выращиваю это деревце под названием OneScript, и надеюсь, что оно приносит пользу многим людям в нашей профессии.

 

 

Хочется отметить, что 10 лет – это вроде бы большой срок, но пролетел он незаметно. И вообще кажется, что проект молодой, хотя и прошло уже 10 лет.

Но перед тем, как объявить это десятилетие, мне пришлось погрузиться в свои старые архивы и переписки и попытаться понять, с какой даты все-таки начинать этот отчет, и когда именно OneScript отмечает 10 лет:

  • Первая более-менее работоспособная версия была выложена в публичный доступ в мае 2014 года – я тогда собрал все свои закрытые наработки, сделал их наконец-то худо-бедно работающими, выложил в open source и пошел об этом рассказывать на Хабре.
    23 мая 2014 года я опубликовал статью с рассказом об этом движке. Эту статью увидел Алексей Лустин – думаю, вы знаете, кто это. Оказалось, что у него та же самая проблема – 1С-ники, с которыми он тогда работал, не хотели девопсить. И что самое интересное, у них были те же самые отмазки: «Это сложно. Мы не понимаем. А вот если бы на 1С…» Мы с Алексеем списались, обсудили наши боли, и по времени так совпало, что как раз в этот период я искал новое место работы. Поэтому он в итоге позвал меня работать в Связной. Положа руку на сердце, это было лучшее место работы в моей карьере. Лучшие коллеги, лучшее время. Связного уже больше нет, но все, с кем мне довелось там работать – невероятно крутые. Связной – это знак качества. Если к вам кто-то приходит наниматься из Связного, можно смело брать – скорее всего, не пожалеете.

  • В августе 2014 года я пришел в Связной, и с этого момента движок OneScript стал немного обрастать «мясом». Изначально в нем не было даже доступа к файлам, не было массивов – я же копировал Visual Basic, а там доступ к файлам организован через COM-объекты. Я считал, что этого, в общем-то, и достаточно. Вот COM-классы VB, они хорошие, их много, просто синтаксис языка другой. Но Артур Аюханов, с которым мы вместе работали в Связном, доказал мне, что так не пойдет – нужно реализовать возможности, аналогичные стандартной библиотеке 1С. Поэтому совместно с Артуром и другими коллегами мы начали стабилизировать движок OneScript – в нем появилась стандартная библиотека 1С, нормальный доступ к файлам, совместимое с 1С чтение XML и так далее – этот экспериментальный проект превратился уже в продукт, который стало не стыдно показать людям.

  • 31 октября 2014 года я презентовал проект OneScript широкой аудитории 1С-ников – с большой сцены Infostart Event. И именно конференцию Инфостарта и октябрь 2014 года я и решил считать той точкой отсчета для дня рождения, когда OneScript начал свою настоящую жизнь – не как сырая непонятная поделка, а как продукт, который можно запустить для реальных задач автоматизации.

  • И сегодня – октябрь 2024 года (прим. ред.: доклад от 10 октября 2024 года), я снова на сцене конференции Инфостарта и снова докладываю про OneScript. Но на этот раз вы услышите про него не только от меня, но и от других людей, которым он помогает в работе. И мне, как автору, это, конечно же, очень приятно.

 

Экосистема 1Script. Решаемые задачи и полезные продукты

 

 

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

Основную пользу для жизни приносит то, что написано на движке OneScript – для этих продуктов существует понятие «экосистема OneScript». Сюда относится набор готовых инструментов, решений, библиотек и компонентов, которые можно повторно использовать для своей работы.

  • В центре экосистемы находится хаб пакетов. Это облачный сервис с открытым кодом, аналог которого вы можете развернуть у себя на предприятии, чтобы публиковать туда уже свои закрытые пакеты. Но основной хаб пакетов, поддерживаемый сообществом – это открытый сайт в интернете, где складываются все пакеты, которые мы разрабатываем.

  • Решения, которые публикуются в хаб пакетов, обязаны быть открытыми – их код должен быть опубликован на GitHub.

  • И есть консольная утилита OPM – OneScript Package Manager – с помощью которой вы скачиваете и устанавливаете себе из хаба эти готовые инструменты.

  • Авторы публикуют свои решения на GitHub, выкладывают их в хаб пакетов, а пользователи через OPM подключают их к себе – все это вместе формирует экосистему OneScript.

Когда я выбирал, о чем из этой экосистемы стоит рассказать, я решил не уходить в космические гиковские штуки. Хотелось сделать доклад не для тех, кому интересны «шашечки», а для тех, кому «ехать надо» – тех, кто работает руками, решает прикладные задачи и хочет уехать с конференции с чем-то реально полезным.

 

 

И первый инструмент, о котором хочется упомянуть – наш «старичок» и флагман Gitsync.

Это инструмент, который позволяет перенести ваше хранилище 1С в GIT.

Все эти 10 лет на каждой конференции Инфостарта по 2-3 доклада рассказывают о том, как использовать GitSync. И надо, наверное, уже просто закрыть эту тему и сказать открыто – исходники 1С должны лежать в GIT, потому что только так вы получаете доступ ко всему пулу мировых инструментов для работы с исходным кодом: SonarQube, Jira, все что угодно.

Поэтому – все в GIT. Обязательно пользуйтесь.

 

 

Еще один «старичок», который, тем не менее, борозды не портит – это Vanessa Runner.

По названию понятно: «Runner» – это запускалка. Она запускает заранее настроенные типовые действия, которые нужны всем, кто работает с базами 1С. Обновить базу? Пожалуйста. Прогнать тесты? Легко. Выгрузить или загрузить исходники, развернуть базу на сервере, проверить корректность обновления – все это Vanessa Runner делает в несколько строк.

Это универсальный комбайн, там есть все. Причем с ним не нужно вспоминать синтаксис командной строки конфигуратора – все уже упаковано в готовые сценарии: просто четыре строчки пишешь, и у тебя выполняются те или иные DevOps-действия.

 

 

И именно Vanessa Runner выступает в роли «движка» для следующего инструмента, о котором я хочу рассказать. Это библиотека для сервера Jenkins – Jenkins Lib под авторством Никиты Федькина.

Я бы сказал, что это квинтэссенция всего накопленного сообществом опыта в части выпуска релизов 1С. Все наработки по тестированию, проверкам, сборке релизов и прочему – заботливо собраны и упакованы в удобную для использования библиотеку. Это не просто набор скриптов из GitHub, а настоящий продуктовый подход с заботой о пользователе, что очень классно.

С Jenkins Lib ваш релизный цикл начнет выглядеть так, как на картинке: хотите прогнать тесты сначала одним фреймворком, а потом другим – без проблем, хотите загрузить или выгрузить расширение – просто отмечаете галочками нужные действия, и все начинает работать.

Это шикарнейшая библиотека, и начать ее применять очень легко.

 

 

Конечно, про весь хаб пакетов я рассказать физически сейчас не успею, но еще у нас есть:

  • Автоматическая скачивалка релизов yard – вам не нужно больше заходить на сайт 1С и вбивать там пароль для скачивания типового релиза. Как только выходит новый релиз, она его вам скачает и аккуратно положит в правильную папку.

  • Автогенератор документации autodoc-gen.

  • ORM-фреймворк для баз данных entity.

  • Компонентный фреймворк ОСень (autumn framework) для написания сложных компонентных приложений. У него классная, и местами очень веселая документация – хотя бы ради нее вам стоит ознакомиться с этим фреймворком.

  • Веб-фреймворки – winow и OneScript.Web.

  • Телеграм-боты.

  • Средства тестирования и т.д. – чего у нас только нет…

Поэтому приобщайтесь, пожалуйста, к экосистеме OneScript.

 

 

В конце октября 2024 года я планирую выпустить релиз-кандидат 5 версии OneScript 2.0 – будущее OneScript.

Что это за версия и почему на нее стоит перейти:

  • В OneScript 2.0 используется современная платформа .NET – она более быстрая и более безопасная.

  • У OneScript 2.0 самодостаточный пакет поставки – вам не надо ставить отдельно на сервер правильную версию .NET, выяснять какая же правильная. Вы просто скачивайте, и все работает из коробки – .NET уже включен внутрь.

  • Там есть режим компиляции Native – это экспериментальный режим, который позволяет компилировать код 1С в байткод машины .NET. Это значит, что код на 1С начинает выполняться со скоростью C# – очень быстро. Не весь код 1С портируется в такой режим, но если уметь, можно так делать.

  • И версия 1.x после выхода 2.0 будет поддерживаться только для исправления ошибок – я планирую, что сообщество будет переходить на версию 2.0.

 

Люди, которые сделали 1Script. Те, без кого бы не получилось

 

Теперь я хотел бы уделить несколько минут людям, которые позволили OneScript состояться – без них он бы так и остался никому не нужной подделкой на Хабре.

 

 

Первый человек, которого я хочу поблагодарить – это Сергей Батанов.

Именно благодаря Сергею я не забросил проект в самом начале, когда он был еще скорее поделкой. Потому что он пришел и принес пуллреквест с реализацией таблицы значений по аналогии с 1С. А это не самый маленький класс – это полновесная доработка не такого уж простого механизма. Именно этот пуллреквест вдохновил меня на продолжение работы над проектом.

Потом мы с ним много чего еще совместно доделывали. Поэтому Сергей – полноценный и полноправный соавтор движка.

 

 

Следующий человек, которого я хочу поблагодарить, пожалуй, не нуждается в представлении – это Алексей Лустин, демиург опенсорса и девопса в 1С, человек, который продвигал все эти девопс-фишечки в 1С и очень многому меня научил.

Алексей активно продвигал OneScript, активно его рекламировал, ездил с ним, рассказывал, показывал, убеждал. Без его харизмы и пробивной силы, наверное, тоже ничего бы этого не было.

 

 

Возвращаясь к экосистеме OneScript, стоит отметить, что значительная ее часть – пожалуй, больше половины – написана еще одним человеком, которого вы наверняка знаете. Это Никита Федькин.

Практически все, что касается экосистемы – это творение рук Никиты. Он реализовал пакетный менеджер, утилиту установки версий OVM и обвязку всего того «атома», который я показывал до этого.

Я устану перечислять, сколько всего написал Никита в библиотеку OneScript Library. Все самые драйвовые и кайфовые инструменты – типа фреймворка работы с базами данных и ОСени – все это выросло на плечах Никиты.

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

 

 

И еще один человек, которого я хочу поблагодарить – это Артур Аюханов.

Когда я пришел в Связной, HR, которая проводила начальное собеседование, с гордостью сказала: «А еще у нас работает Артур Аюханов». И это было сказано с блеском в глазах – настолько сильно имя Артура ассоциировалось с качеством, экспертизой и авторитетом.

Артур – это имя, это бренд. А еще, Артур – очень хороший друг. В Связном он сделал систему тестирования движка OneScript, которая живет до сих пор. Именно она обеспечивает стабильность движка, которому теперь не страшны ни горе, ни беда. Он надежен как скала, и все благодаря Артуру.

 

Итоги 10 лет

 

 

Подведу юбилейные итоги – каких результатов мы достигли за 10 лет развития OneScript и сообщества вокруг него.

  • Первое, чему я особенно горд – это то, что мы создали отрасль DevOps внутри сообщества 1С. OneScript – это уже не просто эксперимент или игрушка энтузиастов. Это – сформировавшаяся подотрасль, которая признана в сообществе. Она состоялась. Это данность, это факт.

  • Второй приятный итог и важное достижение – то, что OneScript используется крупным бизнесом федерального уровня. Нашим движком пользуются топовые банки (из топ-5), большой ритейл, маркетплейсы, и это подтверждает его надежность и правильность его применения у себя на работе.

  • OneScript стабильно упоминается в вакансиях для 1С-ников, и его знание для DevOps в 1С является преимуществом при трудоустройстве. Это немаловажный повод изучить этот механизм.

  • И главное, что мы достигли – у нас живое и активное комьюнити. И оно не затухает со временем. Мы уже 10 лет бурлим, спорим, рассказываем, доказываем. Постоянно появляются новые инструменты. Недавно появился клевый и веселый веб-фреймворк Winow. Появилась ОСень. У нас классная движуха, и это тоже повод вливаться. Вливайтесь, пожалуйста!

 

Вопросы и ответы

 

У OneScript под капотом C# и .NET. Но многие создатели языков вначале пишут, например, компилятор на C, а потом делают компилятор на самом языке. Не было ли у вас планов сделать компилятор OneScript на OneScript?

Я хоть и выгляжу как энтузиаст, но я все-таки из тех, кто не любит работу ради работы. Я все-таки про пользу. Конечно же, можно это сделать. Вопрос зачем? Я что, должен сейчас сесть и всю кодовую базу, которая делалась 10 лет, переписать на другой язык? Просто чтобы кайфануть? Нет, я от этого не кайфану, я устану.

Но тогда у 1С-специалистов появится возможность пушить в ядро OneScript'а на 1С.

Это абсолютно ложное утверждение. Стандартная библиотека C# – практически то же самое, что и 1С. Там все классы очень похожи на 1С, только называются по-английски.

Это самообман, что что 1С-ник не способен выучить C# и что не-1С-ные языки – это сложно. Учите, это несложный, легкий и приятный язык.

Вы упомянули, что тенденция к применению DevOps сейчас в целом растет. И хотя в 1С это пока скорее новшество, для всего остального мира разработки DevOps уже давно норма и единственный возможный путь развития. Так вот вопрос. Крупные компании, особенно с госучастием, сейчас активно переходят на импортозамещение. И, например, из-за зарубежного происхождения Git сейчас многие отказываются от классических DevOps-подходов, используя это как аргумент. Считаете ли вы, что эта проблема актуальна?

Во-первых, DevOps в 1С – это не новшество. Только OneScript занимается автоматизацией DevOps в 1С 10 лет. А средства автоматизации сборки релизов существовали гораздо раньше. На каждой конференции Инфостарта про это рассказывают. Кто еще не начал это применять, тот лузер. У того работать скучно. От него уйдут все топовые разработчики и будут правы.

По поводу Git. Во-первых, это не западный продукт как таковой, это open source – общечеловеческий продукт. Это не проприетарное принадлежащее некой корпорации решение, которая может в один момент дернуть рубильник и госкомпания встанет. Git – это открытая история. Но для того, чтобы его можно было использовать в госкорпорации, наверное, какие-то есть юридические тонкости. Возможно, нужно сделать форк Git, назвать его как-нибудь по-русски и сертифицировать. Я сейчас не силен в юридических тонкостях. Но это точно не препятствие.

Вопрос по версии 2.0. Скорее всего, эта версия принесет что-то новое. Но будут ли на ней работать уже написанные для 1.х скрипты, либо будут какие-то ограничения и необходимость конвертации?

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

И если вдруг что-то будет ломать обратную совместимость, это будет какая-то специальная переключалка или что-то в этом духе.

Но неосознанный слом, наверное, может происходить – когда из-за какого-то бага в коде то, что работало на 1.х, не заработает на 2.0. Но это просто баг, который нужно будет исправить.

Я был одним из первых, кто еще в 2014-м году загорелся идеей использования OneScript. Но тогда же я столкнулся с проблемой – случайно забыл прописать параметр пути в команду, и это каким-то образом снесло на терминальном сервере заголовок файловой системы. В итоге мы все восстановили, но меня эта ситуация настолько потрясла, что я до сих пор эту идею забросил. «Стреляли ли вы себе в ногу» своим же продуктом в процессе его разработки или использования? Как вы тестируете свой продукт на безопасность? Были ли у вас с этим какие-то проблемы? Потому что DevOps-система автоматизации работы, в том числе, должна быть безопасной.

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

Тестирование у нас ведется – как юнит-тестами, так и интеграционными тестами, которые делал Артур. Они гоняются на публичном CI-сервере. Тестов там больше тысячи штук. Но, конечно же, нет предела совершенству.

Тестирование на безопасность и на невзламываемость – пентесты и DevSecOps – не ведется. Если вы хотите это привнести, то приходите, привносите. Но OneScript – это и не сервер, который торчит в интернет. Это скриптовый движок. Что там нужно тестировать на безопасность – не очень понятно. Но если вы знаете что, приходите с идеями и делитесь.

А так юнит-тесты гоняются постоянно – на каждый коммит, на каждую ветку. Если что-то падает, это сразу видно.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

См. также

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

В данной публикации рассматривается пример реализации скрипта, который автоматизирует получение ветки из GIT репозитория и обновление конфигурации, если разработка проекта ведется в EDT.

11.06.2025    1046    AlexF1    3    

6

WEB-интеграция OneScript Программист Стажер Бесплатно (free)

Библиотека для работы с базами MySQL на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

08.04.2025    3540    bayselonarrend    27    

49

Внешние источники данных OneScript Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Библиотека для работы с базами PostgreSQL на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

20.02.2025    4780    bayselonarrend    25    

46

Работа с интерфейсом OneScript Программист Платформа 1С v8.3 Россия Бесплатно (free)

Графический интерфейс с применением веб-технологий в коллекцию инструментария сценарного языка OneScript. Библиотека создает десктопное приложение имеющее декларативный пользовательский интерфейс (GUI), построенный веб-браузером. Возможности веб-технологий по представлению информации огромны. Эти возможности соответственно добавляются и к сценариям OneScript.

23.01.2025    1087    0    ahyahy    15    

10

OneScript Программист Бесплатно (free)

Вместе создадим библиотеку на Oscript с нуля, шаг за шагом: от базовой структуры проекта до перевода на ОСень. Разберем структуру проекта, работу с файлом конфигурации, логирование, уведомления, консольный интерфейс и многое другое. Освоим весь цикл разработки и сделаем первый шаг к созданию собственных инструментов на Oscript!

13.01.2025    3699    leobrn    16    

59

OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Если вы, так же как и я, давно хотели попробовать сделать что-то свое на OneScript, но никак не могли к нему подступиться, то, возможно, эта статья пригодится вам в качестве некоего вводного материала.

10.01.2025    3360    KamranV21    13    

40

OneScript Программист Бесплатно (free)

В мире OneScript давно существуют библиотеки для облегчения работы с каким-либо классом программного обеспечения, например v8runner - помощник выполнения команд конфигуратора или gitrunner - программная обертка для запуска команд git. Есть библиотека и для работы с автономным сервером 1с. Однако библиотеке ibcmdrunner уже три года, а про нее нет ни одной публикации на инфостарте. Исправляю эту несправедливость.

09.01.2025    2404    ardn    3    

24

OneScript Программист Бесплатно (free)

Отгремел Infostart Tech Event 2024, топовое событие в мире 1С-разработки, традиционно проходящее в Санкт-Петербурге. Ваш покорный слуга в этот раз отмечал там 10-летний юбилей проекта OneScript. Отмечание проводилось в форме игры-соревнования по забегу роботов в лабиринте. Участники пытались написать алгоритм движения робота на языке 1С и сделать это быстрее других. О том, как это было – под катом.

28.10.2024    2377    Evil Beaver    11    

26
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. johnnyshut23 75 16.06.25 11:04 Сейчас в теме
2. Evil Beaver 8347 16.06.25 11:04 Сейчас в теме
(1) Мы думаем над этим, пока планы озвучить не готовы (С)
Berckk; johnnyshut23; JohnyDeath; +3 Ответить
3. ixijixi 2030 16.06.25 11:27 Сейчас в теме
С юбилеем, Андрей! Дальнейшего развития проекту!
Evil Beaver; +1 Ответить
4. starik-2005 3180 16.06.25 15:34 Сейчас в теме
Вот попробовал я автоген и понял, что с кодом ЕДТ оно не работает. Ладно, мы не ищем легких путей - фигачим прям в исходниках так, чтобы оно все-таки нашло это configuration.mdo. Ждем минут 20 - валится на каких-то ошибках. Черт с ним, лезем опять в исходники, прям по живому режем - опять ждем овер дофига времени и опять все валится. Я так и не смог заставить это нечто заработать. Это нечто даже подсистемы не может нужные мне по фильтру выдрать, а весь код мне и нафиг не сдался.

В итоге написал свою конфу, которая парсит любой вариант исходников - хоть в xml, хоть в формате ЕДТ. При том делает это за условные минуты, а не за часы.

Вот как-то так я отношусь к всем этим ванскриптам.
NeLenin; DoReMi; Tantor; +3 2 Ответить
5. Evil Beaver 8347 16.06.25 15:35 Сейчас в теме
(4) Хозяин - барин. А можно написать автору и спросить, почему не работает. Как правило, он быстро исправит или подскажет.

Ну и все-таки надо разделять движок и утилиты на нем написанные. А то это звучит как "ваша 1С не работает", а конфигурация при этом какая-то самописка, написанная неизвестно кем и когда.
NeLenin; SerVer1C; +2 Ответить
6. starik-2005 3180 16.06.25 15:38 Сейчас в теме
(5)
А можно написать автору и спросить, почему не работает. Как правило, он быстро исправит или подскажет.
Ну не так быстро, как напишется своя подсистема. Я тут попытался найти код, который markdown в HTML бы перерисовал на базовом каком-нить уровне, но все оно на JS даже в 1С юзается - ленятся все. В итоге дипсик мне написал конвертор за день. Да, на 1С-е. Так что я не вижу смысла особо авторам докучать - опенсорс хорош, конечно, но поддержка в любом случае не быстрая.
7. Evil Beaver 8347 16.06.25 15:39 Сейчас в теме
(6) с дипсиками этими мы все скоро на панель пойдем и даже спасибо никто не скажет, что мы эти дипсики своими руками на своем же опенсорсе обучили :(
Shmell; NeLenin; Viktor_Ermakov; N_K_S; ShootNICK; Somebody1; +6 Ответить
8. starik-2005 3180 16.06.25 15:58 Сейчас в теме
(7)
с дипсиками этими мы все скоро на панель пойдем
Скорее наоборот. Дипсик помогает быстрее получить результат, но оно не работает на уровне копипасты - нужно немного напильником шлифануть, иногда попросить переписать. Постоянно функции придумываются новые им - те самые глюки, фактически перевод функций других языков в 1С-ную действительность. Так вот уверен на 100%, что дипсик джунам вреден, т.к. не дает нужный код сразу, а ума дописать еще нет, да и не появится при таком раскладе.

Но да, это все развивается достаточно быстро, эффективность растет, скорость. Обязательно этими инструментами нужно учиться пользоваться, но неплохо было бы алгоритмы раскурить и структуры данных, чтобы код работал более менее быстро.

Вот тот же автоген, будь он неладен, использует ванскриптовский парсер конфигурации, который выдает уже все, что надо. Но работает это просто пипец как медленно. Серьезно. Вот мне нужно пять своих подсистем для генерации документации - у меня на них KPI, я хочу содержать документацию в актуальном состоянии, но это нечто парсит всю конфу, и никак нельзя сейчас заставить это без полного перебора выделить объекты по одной конкретной подсистеме. Хотя они что в XML, что в EDT являются отдельными объектами внутри XML и ссылаются на определенный список исходников. Но все-равно этот механизм крутит всю конфу, строя свое дерево предельно медленно (блин, у меня на 1С через XDTO это летает - я пробовал всю конфу ERP с блоком строительства загрузить). Для автоматизации может быть и норм, что это будет полночи по коду шуршать, но у меня это вызывает только негодование. Просто прочитать эти все файлы в XDTO занимает минуты.
9. Somebody1 69 16.06.25 16:10 Сейчас в теме
10. starik-2005 3180 16.06.25 16:26 Сейчас в теме
(9)
судебные иски
Это как в простоквашине: "корова государственная, а молоко и телята, которых она дает, наши..."
Так и с изображениями. Нейросеть генерит их, но она не использует их, она передает эти изображения тому, кто составил промпт. И отвечать должен тот, кто составил этот промпт. Ведь если художник сам это наприсует своей рукой, то это будет таким же нарушением, но только тогда, когда он попытается это изображение использовать в коммерческих целях. Ведь если я куплю фигурку Микки Мауса и поставлю куда-то, где его увижу не только лишь я, то может мне Дисней впаять 150к баксоф штрафа? Нет. Так что в лес.
11. rambomax 22 17.06.25 09:19 Сейчас в теме
(10)
Абсолютно неверные выводы, сделанные из не верных предположений.
Взыщут "упущенную выгоду".
Изучайте "налог Михалкова".
12. Evil Beaver 8347 17.06.25 09:21 Сейчас в теме
(10)
Ведь если я куплю фигурку Микки Мауса и поставлю куда-то, где его увижу не только лишь я, то может мне Дисней впаять 150к баксоф штрафа? Нет.


А вот и да. Например за публичное прослушивание музыки из мультиков диснея точно может, почему не расширить это на визуальные образы
14. starik-2005 3180 17.06.25 10:44 Сейчас в теме
(12)
Например за публичное прослушивание музыки из мультиков
А что такое "публичное прослушивание"? Прослушивание на публике или воспроизведение для публики? Вот у меня друган как-то рассказывал, что в какой-то региональной кофейне сделали торт со смешариками, кто-то увидел и сфоткал, выложил в своей соцсети, и кому был в итоге иск? Правильно, кофейне за использование в коммерческих целях, а не тому, который фотку этого тортика разместил. Правда и сумма сто тыщ всего, т.к. это та сумма, которую региональная кофейня может себе позволить заплатить и досудебно урегулировать.
ЗЫ: на своей страничке вполне себе можно размещать фото в общем-то чего угодно, ну кроме там секретных объектов, которые нельзя типа фоткать.
15. Somebody1 69 18.06.25 06:39 Сейчас в теме
(14)
А что такое "публичное прослушивание"?

А это суд решит! Самый гуманный и справедливый.
16. Evil Beaver 8347 18.06.25 06:40 Сейчас в теме
(15) ну я не знаю, погуглите что-ли прецеденты наказаний за публичное прослушивание. Практикуется во всем мире
25. starik-2005 3180 18.06.25 11:18 Сейчас в теме
(16)
публичное прослушивание
Ну вот что на это поясняет гугл и его ИИ:
Публичное прослушивание медиафайлов, защищенных авторским правом, без разрешения правообладателя является нарушением закона. Это относится к любой форме публичного исполнения, включая трансляцию в кафе, барах, магазинах и других общественных местах.

Объяснение:
Авторское право предоставляет авторам исключительные права на использование и распространение своих произведений. Это означает, что без разрешения автора или правообладателя нельзя публично воспроизводить, распространять или исполнять защищенные авторским правом медиафайлы.

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

Исключения:
Существуют некоторые исключения, когда использование защищенных авторским правом материалов может быть допустимо:

Личные и некоммерческие цели:
Вы можете прослушивать музыку и смотреть видео в личных целях, например, дома или в кругу семьи, без разрешения автора.

Цитирование:
В научных, полемических, критических, информационных или учебных целях допускается цитирование произведений с обязательным указанием автора и источника. Объем цитирования должен быть оправдан его целью.
Показать
18. allegrosoft 52 18.06.25 09:39 Сейчас в теме
(4) Интересно, нужно публиковать решение на инфостарте
13. kolya_tlt 90 17.06.25 10:09 Сейчас в теме
17. Ks_83 261 18.06.25 09:07 Сейчас в теме
Что думаете про 1С:Исполнитель для девопс задач? Почему ванскрипт лучше? Если мне, например, не нужен гитсинк, враннер, а вместо дженкинса - гитлаб ? Самодостаточный пакет поставки у "исполнителя" изначально шел и работа с кластером там из коробки есть.
19. Evil Beaver 8347 18.06.25 09:47 Сейчас в теме
(17) так вперед, разве кто-то говорит, что одно надо использовать вместо другого?
Viktor_Ermakov; +1 Ответить
22. Ks_83 261 18.06.25 10:03 Сейчас в теме
(19) Ну так использовать мне надо что-то одно, чтобы не плодить зоопарк. Я стою перед выбором. Вот есть опенсорсный ванскрипт, есть "исполнитель" от вендора, который судя по всему будет активно развиваться, т.к. он в новой экосистеме 1с с шиной и элементом. Какая у ванскрипта есть киллер-фича?
23. Evil Beaver 8347 18.06.25 10:08 Сейчас в теме
(22) выбирайте исходя из задачи. Если вам нужно то, что есть в Исполнителе, берите его.
24. Ks_83 261 18.06.25 10:42 Сейчас в теме
27. starik-2005 3180 18.06.25 11:34 Сейчас в теме
(22)
Я стою перед выбором.
Выбирайте то, что заставит вас меньше прилагать усилий. Если у ванскрипта и инструментов есть какой-то корпоративный пакет, который условно одним кликом все ставит и запускает пайплайн или имеет какой-нить докер-контейнер с предустановленной средой, то юзайте его, если же нет, то юзайте то, что уже есть для этого. У ансиблов и прочего такие контейнеры есть. Могут ли они там все это сразу на уровне прописывания путей к конфе и темпам сразу запустить - самый важный вопрос. Даже единственный.
28. Evil Beaver 8347 18.06.25 11:49 Сейчас в теме
(24)
(27) берете jenkins-lib для 1С и там все это есть
29. Ks_83 261 18.06.25 12:30 Сейчас в теме
(28) сначала для этого нужно взять jenkins, который многим не подходит по ряду причин.
30. Evil Beaver 8347 18.06.25 12:34 Сейчас в теме
(29) ну тогда надо взять и сделать себе то, что хочется и оно будет самое лучшее
starik-2005; +1 Ответить
31. starik-2005 3180 18.06.25 13:40 Сейчас в теме
(30)
сделать себе то, что хочется и оно будет самое лучшее
Вот она - суть всего! Хочешь сделать что-то хорошо - сделай это сам. Ну и это будет очень хорошо для тебя (спорно, т.к. ты это делал и точно знаешь, где там говнокод, если, конечно же, можешь это понять), а для других это будет так, как у них получилось этим воспользоваться.

Ну и да, ленивые и тупые еще есть. Они просто копипастят по мануалу.
20. Viktor_Ermakov 376 18.06.25 09:50 Сейчас в теме
Ребята, это просто суперский инструмент, Вы большие молодцы все. Инструмент будет жить я думаю вечно, чего и Вам желаю))
Не обращайте внимание на занудство стариков всяких, продолжайте свое великое дело.
21. Evil Beaver 8347 18.06.25 09:53 Сейчас в теме
(20) спасибо! Но мы и сами не то, чтоб молодежь :))
26. starik-2005 3180 18.06.25 11:26 Сейчас в теме
(21)
молодежь
Молодежь как раз ИИ пользуется, им ванскрипт нафиг не сдался, ибо на питоне любой ИИ напишет без ошибок с первого взгляда, а на 1С он примитивные штукуевины не может, а молодежь сама думать не особо любит, тем более при таком вот раскладе.

Так что ванскрипт - да, это для стариков как раз )))

ЗЫ: но, поверьте, я не против ванскрипта. Вы же сами говорите, что это для совсем тупых, которые "вот было бы на 1С - мы бы блаблабла". Сейчас тупые делают это с помощью ИИ, а он делает это на питоне куда лучше, чем на 1С. Ну ладно, не для тупых - для ленивых. Вон Виктор, видимо, из них как раз нарисовался тут с минусом мне )))
Оставьте свое сообщение