Как Gitlab-CI и OneScript могут отсортировать массив (Часть 1)

Публикация № 1552117 18.11.21

Инструментарий разработчика - DevOps - CI/CD

Gitlab Gitlab-CI devops CI/CD

С приходом в 1С EDT мы получили git. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который все сделает сам. Надо только правильно его попросить...

В этом году я первый раз был на Infostart Event 2021 и сразу докладчиком. Презентация у меня была про Gitlab-CI, но больше обзорная про то, что "в Gitlab можно сделать вот это вот все, а как это сделать можно узнать в документации". Чтобы рассказать про все настройки, 30 минут было бы мало. К счастью, в формате статьи время у меня не ограничено. Сразу скажу: это учебный (и в некотором смысле даже шуточный) пример, он сделан не для того, чтобы дать готовые скрипты, а чтобы, повторив эти шаги, вы поняли, какие инструменты нам дает Gitlab-CI. И это на примере, для которого даже не нужно будет ставить платформу.

И должен сказать пару слов на тему "зачем нам CI": сейчас, с приходом в 1С EDT, мы получили git. Использовать его удобно, намного лучше, чем хранилище. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который возьмет ваш проект EDT из gitlab и сам протестирует и зальет его на прод. Надо только правильно его попросить...

 

Часть 1: Наш первый проект

Предварительно нам надо будет установить то, с чем мы будем работать:

Git (для версионирования) – https://git-scm.com/

Тут стоит после установки указать некоторые настройки. Для этого откроем Git Bash (или CMD) и выполним три команды:

 

 

Первыми двумя мы устанавливаем имя и почту, которые отображаются в коммитах, третий — снимает ограничение на длину путей для git в windows (по умолчанию 260 символов, но git поддерживает до 4096).

OneScript (для выполнения скриптов) – https://oscript.io/

После установки надо в консоли выполнить "opm install --all" - данная команда установит все пакеты (ну или можете по потребности устанавливать что вам нужно).

VSCode (для написания скриптов) - https://code.visualstudio.com/

После установки необходимо перейти в плагины и скачать Language 1C (BSL)

 

 

Теперь перейдем на https://gitlab.com/ , далее нажимаем Login в верхнем правом углу и, если аккаунта еще нет, то нажимаем "Register now"

 

 

После входа под своим пользователем мы переходим на https://gitlab.com/dashboard/projects и нажимаем "New project" → "Create blank project". Заполняем все поля по образцу. Здесь я указал Visibility level как "Public" чтобы при чтении статьи можно было сверяться с моим репозиторием, но для себя можете указать "Private"

 

 

И нажимаем "Create project". После этого Gitlab нам дает шаблоны того, что нам стоит сделать, открыв консоль:

 

 

"Git global setup" мы выполнили еще при установке Git, а вот "Create a new repository" нам как раз и нужен, ведь у нас еще нет какого-то кода. В папке, где будет лежать наш проект, через контекстное меню в проводнике выбираем "Git Bash Here" и пока вводим только первую строку, в моем случае это "git clone https://gitlab.com/ffSaschaGff/possum_app.git", после этого у нас появится папка, в которой, если у вас отображаются скрытые папки, вы увидите подпапку .git

Давайте теперь откроем наш проект в VS Code – в папке с ".git" в контекстном меню выбрать "Открыть с помощью Code" и создадим файл .gitlab-ci.yml

 

 

Именно в этом файле мы будем указывать, что, когда и где должен делать наш CI. Описание структуры файла можно найти https://docs.gitlab.com/ee/ci/yaml/ , но мы пока не будем спешить. Итак, какие stages (этапы сборки) будут у нашего проекта? Ну давайте начнем с тестирования и сборки:

stages:

  - test

  - build

И определим для каждого Stage свою работу (Job), в каждой из которых будет вызываться свой скрипт:

test:

  stage: test

  script: oscript ./ci/scripts/test.os

build:

  stage: build

  script: oscript ./ci/scripts/build.os

В итоге получим такой файл (отступы важны - они определяют структуру):

 

 

Осталось создать файлы ci/scripts/test.os и ci/scripts/build.os, пока что пусть они просто выводят сообщения о том, что было бы сделано:

 

 

Что же, давайте отправим наши изменения в удаленный репозиторий! Переходим на "Source control" → нажимаем "Stage All Changes" → вводим сообщение первого коммита → жмем на галку, чтобы создать коммит:

 

 

Теперь осталось отправить коммит в удаленный репозиторий: нажимаем на меню (…) и выбираем Push

 

 

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

 

 

И мы видим, что он завершился с ошибкой:

 

 

Давайте нажмем на первый красный круг в столбце Stages и откроем Job "test". Мы увидим, что ошибка в том, что не была найдена команда oscript, а сама работа была исполнена на каком-то Runner: #44028 (fa6cab46) shared-runners-manager-3.gitlab.com.

 

 

Скрипты, которые мы пишем для CI, выполняются не где-то там на сервере Gitlab, а на раннерах — удаленных компьютерах, где запущен gitlab-runner. Давайте перейдем в настройки → CI/CD

 

 

Здесь нам надо дойти до раздела "Runners" и нажать "Expand", после чего отключить "Shared runner", которые нам дает gitlab, а дальше развернем и зарегистрируем свой:

 

 

В папке рядом с проектом создадим еще одну и назовем "runner", дальше с https://docs.gitlab.com/runner/install/windows.html качаем из п.2 файл нужной разрядности и сохраняем в папку назвав "gitlab-runner.exe". Далее открываем консоль как администратор и переходим в папку c раннером "cd ваш_путь_к_папке", и выполняем команду "gitlab-runner.exe register". После этого он попросить сначала ввести:

Адрес сервера Gitlab — https://gitlab.com/

Токен — был на странице с настройками на предыдущем скриншоте

Имя раннера — у меня lockal-runner

Теги через запятую – пока нажмем Enter, к ним мы вернемся позже

И исполнительshell

Если все сделано правильно, то мы увидим сообщение, что раннер был зарегистрирован:

 

 

Запускать скрипты мы будем с использованием powershell, так что теперь откроем папку (консоль не закрываем, она еще понадобится) с раннером и видим в ней файл config.toml. Откроем его любым редактором и заменим shell = "pwsh" на shell = "powershell"

Теперь запустим его как службу, выполнив в консоли (вы же ее не зарыли?"gitlab-runner.exe install" и "gitlab-runner.exe start". После этого, если мы снова вернемся в настройки CI/CD на Gitlab, то мы увидим наш раннер в списке:

 

 

Давайте перейдем список сборок (Pipelines) и перезапустим тот, который до этого завершился с ошибкой:

 

 

И, если все было сделано правильно, то вы увидите, что pipeline завершился успешно и и в каждой из работ вывелось сообщение в консоль:

 

 

Хмммм, но мы же не это вводили. Видимо проблемы с кодировкой. Надо всего лишь перед каждым скриптом выполнять 2 команды:

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
[Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")

Но дописывать их в каждый Job руками не очень хорошо. Вот бы была у нас возможность указать какое-то поведение по умолчанию? Да, мы можем так сделать. В секции default мы можем определить то, что будет добавляться к каждому Job-у, если это в нем не переопределено. Если мы туда добавим команды в секцию before_script, то они будут выполнятся перед каждой Job. Остается только закоммитить изменения и сделать push:

 

 

Перейдем в Gitlab и посмотрим пайплайны. Когда новый появится и выполнится, то мы увидим, что текст в Job-ах стал читаем:

 

 

Сообщения — это конечно хорошо, но давайте что-то соберем. Только что именно? Ну значит пришло время написать наше приложение. Создадим в корне проекта папку src. В ней создадим файл possum.os, а так же папку src/Модули с файлом Сортировка.os

 

 

Как вы уже поняли, наше приложение-опоссум будет что-то сортировать. Для начала в possum.os напишем:

#Использовать cmdline
#Использовать "Модули/.."

Процедура Инициализировать()
    Параметры = ПолучитьПараметры();
    Если Параметры["Команда"] = "sort" Тогда
        МассивЧисел = ПолучитьМассивЧисел(Параметры["Значение"]);       
        Результат = Сортировка.Отсортировать(МассивЧисел);
        Сообщить(Результат);
    Иначе
        ВызватьИсключение "хссссс";
    КонецЕсли;      
КонецПроцедуры

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

Функция ПолучитьПараметры()
    Парсер = Новый ПарсерАргументовКоманднойСтроки();
    Парсер.ДобавитьПараметр("Команда");
    Парсер.ДобавитьПараметр("Значение");
    
    Параметры = Парсер.Разобрать(АргументыКоманднойСтроки);
    Возврат Параметры;
КонецФункции    

Инициализировать();

А в Сортировка.os реализуем опоссумовую сортировку: на каждом шаге мы даем нашему пушистому зверьку переставить 2 элемента массива. Если после этого массив отсортирован, то значит опоссум справился. Если же нет, то он просто пока не закончил и надо еще немного подождать.

Функция Отсортировать(СортируемыйМассив) Экспорт
    ГСЧ = Новый ГенераторСлучайныхЧисел(42);
    Пока Не МассивОтсортирован(СортируемыйМассив) Цикл
        Позиция1 = ГСЧ.СлучайноеЧисло(0, СортируемыйМассив.Количество());
        Позиция2 = ГСЧ.СлучайноеЧисло(0, СортируемыйМассив.Количество());
        Буфер = СортируемыйМассив[Позиция1];
        СортируемыйМассив[Позиция1] = СортируемыйМассив[Позиция2];
        СортируемыйМассив[Позиция2] = Буфер;
    КонецЦикла;
    Возврат СортируемыйМассив;  
КонецФункции

Функция МассивОтсортирован(ПроверяемыйМассив)
    Для Н = 0 По ПроверяемыйМассив.Количество() - 2 Цикл
        Если ПроверяемыйМассив[Н] > ПроверяемыйМассив[Н + 1] Тогда
            Возврат Ложь;
        КонецЕсли;  
    КонецЦикла; 

    Возврат Истина;
КонецФункции

Попробуем запустить, чтобы проверить, что сортировка замечательно работает: Terminal → New Terminal и выполним скрипт

 

 

Теперь давайте изменим скрипт build.os:

#Использовать 1commands

Команда = Новый Команда;

Команда.УстановитьСтрокуЗапуска("oscript -make ./src/possum.os ./possum.exe");
Команда.Исполнить();

Сообщить("Я собрался!");

А в .gitlab-ci.yml в Job build:

build:
  stage: build
  script: oscript ./ci/scripts/build.os
  artifacts:
    paths:
      - ./possum.exe
    expire_in: 1 week

Что значит этот artifacts? Мы говорим, что в корне репозитория может быть файл possum.exe и если он есть, то мы его сохраняем, он будет доступен для скачивания из pipeline и в последующих Job-ах. Так же мы должны указать сколько он будет храниться — 1 неделю. Давайте закоммитим изменения и отправим их в удаленный репозиторий:

 

 

Давайте откроем Gitlab и посмотрим последний pipeline:

 

 

Если мы все сделали правильно, то мы сможем скачать архив с собранным possum.exe

Если вдруг что-то не вышло, то вы можете скопировать себе версию проекта в состоянии на конец этой статьи, выполнив 2 команды в какой-либо пустой папке:

git clone https://gitlab.com/ffSaschaGff/possum_app.git .
git checkout ca1712c711c0626df5079ae80939325d05b158ff

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

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lunjio 64 18.11.21 13:45 Сейчас в теме
С приходом в 1С EDT мы получили git. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который все сделает сам. Надо только правильно его попросить...

Git самый удобный контроль версий, спору нет. CI - continuos integrtion, сам протестирует, главное попросить ? звучит заманчиво конечно ) В целом спасибо за статью, но вот автоматическое тестирование и заливание средствами непрерывной интергации в 1С, для меня до сих пор что-то как Hyper Loop, теоретически все круто вроде, но до сих пор не ясно как сделать так, чтобы люди в лепешку не смялись когда торможение будет происходить на такой скорости экстренное )
2. SaschaG 129 18.11.21 13:51 Сейчас в теме
(1) Спасибо. Ну начинать не спеша. Главное запустить, преодолеть порог вхождения, а там добавишь сборку, добавишь тесты и уже втянулся и хочешь еще больше автоматизировать свою работу.
Iscarimet; pavlov_dv; artbear; +3 Ответить
3. lunjio 64 18.11.21 13:58 Сейчас в теме
(2) Да, но вот как допустим подготовить тесты под изменение формы документа, где нужно протестировать под разными пользователями, с разными правами и т.п ? Для меня есть другие языки программировани, на которых очень понятные и расширенные инструменты тестирования. Касательно 1С можно тестами процедуры проверить, а вот касательно интерфейса, для меня тут кажется из двух зол меньшее надо выбирать, руками тестировать. Почему ? Да потому что нет нормальных инструментов для написания тестов, либо запись мышкой предлагают, в то время как в Xamarin у каждого элемента есть AutomationID где ты из кода можешь какой угодно сценарий прописать.
4. SaschaG 129 18.11.21 14:02 Сейчас в теме
(3) ну мы сценарные тесты через ванессу делаем - справляется отлично. Да, нужен человек с компетенциями и я сталкивался, когда на этом все глохло, но выигрыш от автотестов чувствуется. Ну невозможно руками перед каждым релизом все прокливать. А так смотришь только упавшие сценарии и отправляешь или QA тесты править, или разработчику чинить
5. lunjio 64 18.11.21 14:06 Сейчас в теме
(4) А вы считали затраты по тестам и ручного тестирования относительно времени ? Может гораздо выгоднее руками протестировать после того как доработал, чем писать тесты, еще под каждую доработку и тесты подгонять.
8. SaschaG 129 18.11.21 17:48 Сейчас в теме
(5) тестами имеет покрывать как минимум основные бизнес-процессы и сценарии пользователей. Никогда не знаешь где всплывет "это маленькое изменение". Приемочное тестирование при сдаче задачи мы проводим руками, но если при поломке этого функционала пользователи работать не смогут, то имеет смысл покрыть его тестами, чтобы случайно не сломать через 2-3-4 релиза, когда все все забудут. Да, на поддержание тестов тоже нужно тратить время, но тут вопрос в какую сумму компания оценивает час простоя.
buganov; pavlov_dv; +2 Ответить
6. aximo 1811 18.11.21 14:30 Сейчас в теме
Вот у меня появилась такое предположение сейчас, что EDT создавался для того (в том числе), чтобы перетянуть в отрасль 1с программистов С, С++, PHP-шников и прочих.

Вот наняли как-то мы "чистых" программистов на написание бизнес приложения - а они мне и готовят спустя некоторое время - мы не можем найти ставку 6% (налог на прибыль) в ставках НДС на товары. В результате имеем, что имеем.
9. dhurricane 18.11.21 17:50 Сейчас в теме
(6)
Вот у меня появилась такое предположение сейчас, что EDT создавался для того (в том числе), чтобы перетянуть в отрасль 1с программистов С, С++, PHP-шников и прочих.
Точно нет. :-)

Вот наняли как-то мы "чистых" программистов на написание бизнес приложения - а они мне и готовят спустя некоторое время - мы не можем найти ставку 6% (налог на прибыль) в ставках НДС на товары. В результате имеем, что имеем.
Собственно, а зачем Вы нанимали "чистых" программистов не под "чисто-программистские" задачи?
7. aximo 1811 18.11.21 14:37 Сейчас в теме
но из-за уважения к труду вложенного в написание статьи - плюс
Оставьте свое сообщение

См. также

Swagger для 1С. Описание сложной структуры входящих и исходящих данных

WEB OneScript Россия Бесплатно (free)

Анонс нового функционала 1Script пакета swagger версии 0.5.0.

04.10.2021    2134    kuleshov.x    7    

Как начать разработку проекта 1С, чтобы легко перейти к DevOps-практикам

DevOps CI/CD v8 1cv8.cf Бесплатно (free)

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

22.06.2021    5081    artbear    2    

Микросервисы на Golang. Часть 6. Докеризация, Начальная оркестрация, CD\CI

Интеграция с оборудованием и сервисами CI/CD docker 1cv8.cf Бесплатно (free)

Создадим микросервис, поместим его в докер, проведем его масштабирование на нескольких виртуальных машинах с помощью оркестрации Docker Swarm, выполним также CD\CD микросервиса с помощью GitHub Action (Микросервис взят с прода, обрезан лишний функционал) будет показан пример его взаимодействия с 1С клиентом.

21.06.2021    1383    dmitry-irk38    1    

Мастер-класс: Реализация цикла CI/CD на практическом примере с использованием системы Тестер

CI/CD Git (GitHub, GitLab, BitBucket) Сценарное тестирование v8 Бесплатно (free)

На онлайн-митапе Инфостарта «DevOps в 1С» выступил Дмитрий Решитко – руководитель отдела разработки в компании C.T. Consultants Inc. Дмитрий провел мастер-класс, в котором продемонстрировал, как создавать новую функциональность в конфигурации с одновременным использованием инструмента тестирования и реализовать автоматизированное тестирование конфигурации при помещении кода в репозиторий на GitLab.

31.05.2021    1490    grumagargler    0    

Мониторинг свободного места на диске с помощью OneScript

Администрирование ИТ-инфраструктуры OneScript Бесплатно (free)

Скрипт, который проверяет объем свободного места на каждом диске и оповещает на почту о нехватке места.

30.05.2021    1925    info1i    10    

reperr - автоматическая регистрация ошибок для 8.3.17+

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

Представляю вашему вниманию приложение для автоматической регистрации и обработки ошибок, которые возникают при работе в информационных базах на платформе 1С:Предприятие 8.3.17+

04.02.2021    6087    ovcharenko.di    6    

Смена паролей всем локальным пользователям Windows с помощью OneScript

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

Скрипт, который меняет пароли всем локальным пользователям Windows и сохраняет их в файле. Есть функция генерации пароля, можно задать длину пароля.

18.08.2020    1151    info1i    7    

Мастер-класс "Ведение проектов в типовых конфигурациях 1С"

Методология CI/CD БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

При адаптации типовой конфигурации под особенности учета в компании важно обеспечить возможность легкого обновления поставки. Как организовать архитектуру решения и продумать процесс быстрой и эффективной разработки без ущерба типовой функциональности, на конференции Infostart Event 2019 Inception рассказал ведущий программист компании BIA-Teсhnologies Алексей Князьков.

05.06.2020    5084    AKnyazkov    4    

Пайплайны Jenkins - программирование и настройка. Загружаемые модули. Цикл "Многопоточный CI для 1С", часть 5

CI/CD Jenkins Бесплатно (free)

Рассмотрим создание пайплайнов Jenkins и библиотек собственных методов, язык Groovy, подходы к хранению настроек и обработке ошибок.

17.03.2020    21004    Vladimir Litvinenko    16    

Jenkins: конфигурируем сервер и подключаем к нему виртуальные машины. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 4

DevOps CI/CD Jenkins v8 Бесплатно (free)

Выполним основные настройки Jenkins как CI-сервера. Подключим к нему развёрнутые через Vagrant виртуальные машины в качестве сборочных узлов.

13.03.2020    16844    Vladimir Litvinenko    8    

Разворачиваем узлы CI через Vagrant, строим сеть из виртуальных машин. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 3

DevOps CI/CD Linux Бесплатно (free)

Разворачиваем инфраструктуру для CI из образов виртуальных машин.

04.03.2020    6912    Vladimir Litvinenko    14    

Собираем образ виртуальной машины с PostgreSQL и платформой 1С. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 2

DevOps CI/CD Linux Бесплатно (free)

Автоматизируем установку и конфигурирование Linux, PostgreSQL, 1C, Apache, Java с возможностью выбора версий дистрибутивов. Упаковываем результат в образ виртуальной машины.

28.02.2020    11121    Vladimir Litvinenko    11    

Технология разветвлённой разработки, использующая git, ci/cd

CI/CD Git (GitHub, GitLab, BitBucket) Методология управления разработкой EDT 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Адаптация и расширение требований к разветвлённой разработке с использованием git и ci/cd, основанное на стандартах 1С

24.02.2020    7793    check2    10    

CI/CD для 1С проектов, унифицировано, с кастомизацией

CI/CD Инструментарий разработчика Бесплатно (free)

Тема CI/CD в связке с 1С не нова, но многих пугает сложность использования и поддержки, необходимость обучения команды. Про то, как унифицировать и упростить поддержку сборочных конвейеров для большого количества решений, в своем докладе на конференции Infostart Event 2019 Inception рассказал начальник отдела компании BIA-Technologies Валерий Максимов.

20.02.2020    8294    theshadowco    13    

Swagger для 1С.

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

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    17828    botokash    49    

Автоматическое сравнение-объединение баз данных с мини-конфигурацией

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

Представляю вашему вниманию скрипт на OneScript для автоматического сравнения-объединения по правилам ("мержевания") конфигураций нескольких баз с мини-конфигурацией.

14.10.2019    3516    artkor    2    

АИТП. Подсистема взаимодействия с рабочими серверами OneScript

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

В статье описан механизм взаимодействия конфигурации АИТП с рабочими серверами OneScript.

22.05.2019    5800    blackhole321    33    

1Script.Web. Интернет-приложения на языке 1С

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

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

20.05.2019    22455    Evil Beaver    33    

Создание высокодоступной фермы рабочих серверов OneScript в ОС Centos 7

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

В статье описана методика создания высокодоступной фермы рабочих серверов OneScript, для конфигурации АИТП.

14.05.2019    5128    blackhole321    0    

Разворачиваем рабочий сервер OneScript для конфигурации АИТП

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

В статье описана методика развертывания рабочего сервера OneScript для конфигурации АИТП, на ОС CentOS 7.

09.05.2019    6710    blackhole321    0    

Хостим OneScript.Web приложение (heroku)

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

Развертывание oscript.web в heroku.

19.12.2018    7007    pallid    6    

Хостим OneScript.Web приложение

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

Удобная возможность для размещения своего OneScript.Web приложение, это завернуть его в docker. Остается вопрос: где разместить контейнер, сделать это можно на vscale или DO, но хочется упростить и не делать установку самого docker на хосте. Один из вариантов - это сервис now https://zeit.co/.

04.07.2018    8094    pallid    3    

Добавляем онлайн-чат в web-приложение OneScript

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

В статье рассмотрено подключение онлайн-чата к web-приложению на основе http-сервисов OneScript

24.06.2018    7942    blackhole321    1    

Сказ про то, как я DevOps-ом занимался (OneScript, Deployka, Jenkins)

OneScript DevOps Jenkins v8 1cv8.cf ИТ-компания Бесплатно (free)

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

17.06.2018    25494    stas_ganiev    37    

Макеты в http-сервисах OneScript

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

В статье описана библиотека, реализующая механизм макетов в http-сервисах OneScript, аналогично платформе 1С:Предприятие.

03.06.2018    8775    blackhole321    1    

Перечисления в http-сервисах OneScript

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

В статье описывается библиотека, реализующая механизм перечислений в http-сервиах OneScript, аналогичный механизму платформы 1С:Предприятие

03.06.2018    8238    blackhole321    13    

Обработки в http-сервисах OneScript

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

В статье описана библиотека, реализующая механизм обработок в http-сервисах OneScript.

25.05.2018    7874    blackhole321    0    

Расширенные методы загрузки внешних библиотек в http-сервисах OneScript

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

В статье описаны расширенные методы загрузки внешних библиотек в http-сервисах OneScript на примере механизма фоновых заданий.

25.05.2018    7821    blackhole321    0    

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci

OneScript v8 1cv8.cf Бесплатно (free)

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci на примере портирования на onescript функции daСклонение.

14.05.2018    13953    pallid    7    

OneScript в облаке или Развертываем http-сервис OneScript на хостинге

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

В статье описан процесс развертывания web-приложения, созданного на базе http-сервисов OneScript на бесплатном хостинге.

05.05.2018    10045    blackhole321    0    

TMSSQL - работа с базами данных MS SQL Server в скриптах на OneScript и из командной строки

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

Представляю вашему вниманию библиотеку TMSQL для работы с базами данных на MS SQL Server. Библиотека подключается в качестве модуля или класса в скрипты, написанные на OneScript, а также может работать как независимое консольное приложение.

26.04.2018    15737    Tavalik    22    

Развертывание http-сервиса OneScript на Raspberry Pi

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

В статье описан процесс настройки, а также процесс развертывания http-сервиса (web-приложения) OneScript на Raspbian (Raspberry Pi 2).

23.04.2018    11639    blackhole321    10    

Создаем свою библиотеку для OneScript

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

Как упаковать свою библиотеку в пакет? Что такое загрузчик и зачем он нужен? Как вообще создать свою библиотеку? Разбираемся на примере.

06.03.2018    24391    nixel    36    

Развертывание http-сервиса (web-приложения) OneScript на Ubuntu Server 16.04

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

В статье описан процесс настройки сервера, а также процесс развертывания http-сервиса (web-приложения) OneScript на Ubuntu Server 16.04

04.03.2018    16438    blackhole321    14    

Обзор имеющихся библиотек OneScript

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

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

14.11.2017    51102    nixel    88    

Начало работы с OneScript

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

Краткая инструкция по установке и начале работы с OneScript. Пишу потому что сам много шишек набил, пока нашел все инструменты. В статье рассмотрены: 1) Установка OneScript. 2) Установка редактора кода. 3) Настройка редактора кода под OneScript. 4) Запуск скриптов из редактора кода 5) Полезные ссылки

18.10.2017    53943    DmitrySinichnikov    54    

С чего начать разработку скриптов на OneScript? Первые шаги

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

После моего доклада на INFOSTART 2017 EVENT COMMUNITY ко мне многие обращались с таким вопросом: с чего начать разработку скриптов на OneScript? В этой статье привожу набор ссылок и некий порядок действий (как его вижу я) для людей, не знакомым с этим инструментом.

11.10.2017    27171    Tavalik    15    

Вебинтерфейс для OneScript и 1С

OneScript v8 Россия Бесплатно (free)

Пример создания вебинтерфейса для OneScript с использованием библиотеки UfaScript.osb

30.06.2017    14318    andreosh    7    

OneScript и Ajax. POST-запрос и мои дальнейшие планы с фантазиями о будущем

OneScript v8 Россия Бесплатно (free)

Моя библиотека для OneScript (версия 3.0 от 09.06.2017 см.GitHab UfaScript) https://github.com/andreosh/UfaScript теперь позволяет посылать POST-запросы на сервер без использования сторонних библиотек типа jquery.

09.06.2017    18256    andreosh    3