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

19.05.22

Интеграция - Облачные сервисы, хостинг

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Пример для сборки образа Docker
.zip 1,90Mb
1 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Данная публикация является логическим продолжением статей других авторов:

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions 

Знакомимся с HTTP-сервисами в OneScript

И новости:

OneScript для «облачных функций» вызвал интерес у 1С-разработчиков

Мой взгляд на это всё)

В ИТ есть тренды, которые придется так или иначе принять. Одним из них являются serverless вычисления, когда вы загружаете свой код в облако и он отрабатывает по определенному событию (расписание, http-вызов и другие события, которые поддерживает конкретный провайдер)

Одна из ссылок выше  - это статья Олега Филиппова по теме. В комментариях были разные отзывы: отписались наши "штатные" негативщики, но основная масса поддержала, в том числе, запрос на добавление языка в поддержку Cloud Functions. Причем поддержали так, что общим количеством подавили другие предложения, отправив тему на первое место.

На самом деле, Яндекс функции не включают ряд других языков, и для решения этой проблемы в облако "выкатили" Serverless Containers. Это, по сути, аналог Cloud Functions, только вы используете не готовое окружение, а собираете все, что требуется сами.

Примечание

Все, что касается Yandex Cloud, Docker, Реестры с образами - все берется из документации облака и из интернета. Статей много, повторяться смысла нет.

Есть курс "Инженер облачных сервисов" на Яндекс.Практикуме. Он бесплатный. 

Информацию о HTTP в OneScript берем из документации на сайте разработчиков .

Платформа 1С здесь не используется

Теперь к делу

Будем выполнять вот такой код для примера

script.os

Функция ОбработкаВызоваHTTPСервиса(Запрос) Экспорт
	Ответ= Новый HTTPСервисОтвет(200);
	Ответ.УстановитьТелоИзСтроки("OK");
	Возврат Ответ;	
КонецФункции

Создадим папку и накидаем в нее файлов:

 

 

  • script.os - наш код, который должен выполняться
  • web.config - параметры приложения
  • dockerfile - алгоритм сборки образа
  • Bin - бинарники OneScript из аналогичной папки дистрибутива (*.deb)

web.config

<configuration>   
   <system.web>
      <httpHandlers>
       <add verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" />
      </httpHandlers>
      <customErrors mode="Off"/>
   </system.web>
    <system.webServer>
        <handlers>
		 <add name="OneScript" verb="*" path="*.os" type="OneScript.ASPNETHandler.ASPNETHandler" />
        </handlers>
    </system.webServer>
<appSettings>
	<add key="CachingEnabled" value="false"/>
</appSettings>
</configuration>

dockerfile

FROM ubuntu:16.04
RUN apt-get update -y
RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata
RUN mkdir /project
WORKDIR /project
COPY web.config ./
COPY script.os ./
WORKDIR /project/Bin
COPY Bin ./
WORKDIR /project
RUN apt-get install mono-complete -y
RUN apt-get install mono-xsp4 -y
ENTRYPOINT xsp4 --port ${PORT} --nonstop

 

Выполняем сборку и отправляем образ в реестр:

docker build .  -t cr.yandex/<Идентификатор реестра>/ubuntu-os:latest

docker push cr.yandex/<Идентификатор реестра>/ubuntu-os:latest

Образ появится в облаке

 

 

Можно использовать другой реестр, при желании.

 

Запускаем код в работу:

Для этого просто выберем образ при создании Serverless Container

 

 

Сделаем контейнер публичным, и можно проверять в браузере

 

 

Немного цифр

Первый запуск функции превышает секунду. Тарифицируется 1200 мс. В этой части решение уступает, например, функции на .NET Core (400 мс)

Но последующие вызовы близки по времени выполнения и затратам: 5-6 мс (тарифицируется 100 мс - такие условия). Если контейнер не вызывается некоторое время, то опять потребуется "прогрев".

Зачем оно вообще

Я уже больше года использую Cloud Functions на .NET для решения некоторых задач. Пока все укладывается во "Фри тир", поэтому в финансовом плане это дело не обременяет совсем. Мне нравится.

А так... Боты, Алиса, и все, что держали в голове 400+ проголосовавших за фичу, теперь может быть запущено в облаке.

Вступайте в нашу телеграмм-группу Инфостарт

OneScript Serverless Yandex Cloud Яндекс Облако Docker

См. также

Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Облачные сервисы, хостинг Программист Пользователь 1С v8.3 Управляемые формы 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Данная система предназначена всем, кому нужно выгружать данные в SPOT 2D или в ОРИМИ. Позволяет гибко настроить получение данных для каждого поля файла и файла выгрузки в целом. Имеет отборы по организации, складу, и папкам номенклатуры. Есть возможность выгружать данные как вручную, с выбором конкретного файла, за конкретный период, так и в автоматическом режиме в указанное вами время. Выгрузка может выполняться в файл или через http напрямую. Имеется подробная справка по настройке, а также примеры запросов для приведенных в примерах файлов выгрузки. Может работать в составе любой конфигурации!

18000 руб.

19.10.2018    29804    8    1    

10

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

Представляю кроссплатформенную библиотеку для разработки приложений с текстовым пользовательским интерфейсом (TUI) для сценарного языка OneScript. Она использует модель программирования, похожую на классические Desktop GUI (например, WinForms или WPF), но целиком работает в текстовом режиме. Возможно это ностальгия по DOS временам, но в наше время это так же и повышенная скорость отрисовки интерфейса, и легкость в написании скрипта. Создавайте интуитивно понятные окна, кнопки, поля ввода и выпадающие списки. Благодаря OneScript инструмент будет доступен даже новичкам без долгого обучения.

вчера в 15:00    213    ahyahy    3    

11

Облачные сервисы, хостинг Программист 1С v8.3 1C v8.2 Абонемент ($m)

Универсальная выгрузка отчетов 1С в облако (Яндекс.Диск, Mail.ru) по расписанию. Любые отчеты на СКД и обычные. Вычисляемые параметры, макросы имен, 5 форматов, полная история. Обычные формы 8.2+. Тестировалась на платформе 8.3.25.1394 в режиме совместимости 8.3.12.

2 стартмани

20.10.2025    397    4    daka    2    

5

Облачные сервисы, хостинг Бесплатно (free)

Работа с системами 1С в облаке открывает новые горизонты для эффективного управления компанией. Цель данного обзора — проанализировать доступные на рынке облачные сервисы и помочь выбрать решение, которое наилучшим образом соответствует задачам и потребностям вашего бизнеса.

16.10.2025    606    osa1C    1    

1

OneScript Мессенджеры и боты Программист Бесплатно (free)

Создаём Telegram-бота для декомпиляции 1С файлов на OneScript и фреймворке Осень. Разберём архитектуру MVC для Telegram-бота. Научимся работать с фреймворком Осень: внедрение зависимостей, аннотации, логирование. Реализуем разбор бинарных файлов (EPF, ERT, CF, CFE.). Упакуем бота в Docker-контейнер

21.08.2025    2890    untru    15    

27

DevOps и автоматизация разработки OneScript Программист Бесплатно (free)

Когда в компании используется более 500 внешних обработок для 20 различных баз, процесс их параллельной разработки превращается в борьбу. Расскажем о тернистом пути от ручных скриптов к масштабируемой DevOps-системе, позволяющей централизованно управлять внешними обработками, автоматизировать сборки, интегрироваться с таск-трекером, запускать автотесты и разворачивать окружение в пару кликов.

12.08.2025    6405    untru    13    

25

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

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

16.06.2025    7046    Evil Beaver    43    

58

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

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

11.06.2025    5233    AlexF1    4    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AntoShiK86 37 07.01.23 15:49 Сейчас в теме
Здравствуйте. Какие функции вы крутите в таком доступе? Просто 200 Ок. Это академический подход. Накиньте пожалуйста примеры, где это может быть актуально.
2. papami 55 07.01.23 20:48 Сейчас в теме
(1) В облаке я пишу на .NET. Но, в свое время, был запрос от коллег по цеху 1С, на поддержку языка в Yandex Cloud. Ее не реализовали на уровне функций в YC, но были добавлены контейнеры, в которых можно развернуть поддержку любого языка - я просто сделал пример ("рыбу").
У меня в Serverless работают боты Телеграм, навык Алисы, мониторинг (результаты) обменов 1С по разным клиентам. Обычные http-сервисы, по сути.
Для отправки сообщения требуется регистрация/авторизация