Веб-разработка на 1С (1Script)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Что это?
Сразу же хочу сказать, что этот проект нацелен на полноценную веб-разработку и не является экспериментом вида «во, глядите, вот так тоже можно». Мы настроены достаточно серьезно. Однако, на данном этапе развития - это очень маленькая ознакомительная версия, которая призвана заинтересовать энтузиастов от мира 1С, а также рассказать сообществу о предполагаемой модели веб-разработки для 1С.
Зачем?
Собственно, затем же, зачем был создан 1Script. Мне, как 1С-нику не нравятся никакие языки кроме 1С. (первая любовь C++ не забывается, конечно, но все проходит…)
В современном мире довольно часто нужно писать или сайты или веб-службы, которые должны жить в Сети и что-то отдавать человечеству в качестве результатов жизнедеятельности. Сейчас набросать что-то такое очень быстро можно на node.js и/или Python. Однако, есть проблема – я не умею. И мне гораздо приятнее сделать это на 1С.
Критерий успеха – любой 1С-ник двумя-тремя командами в консоли должен получить на диске «скелет» будущего веб-приложения, а затем одной-двумя командами разместить его в сети.
К делу!
Мне довольно сильно импонирует паттерн разработки веб-приложений в стиле MVC. Я знаю, что есть другие паттерны, есть случаи, когда он недостаточно хорош, тем не менее, я считаю, что по сочетанию «гибкость-простота-эффективность» - он один из лучших, предлагаемых для веб в данный момент.
В качестве «платформы», на которой построен веб-движок выступает ASP.NET Core MVC фирмы Microsoft. Это современная мощная штука с открытым исходным кодом и разрешительной лицензией. Платформа хороша сама по себе, а поскольку 1Script также разработан на стеке .NET, то выбор в сторону этой платформы является очевидным.
Проект веб-движка еще не имеет официального названия. Рабочий вариант – OSP.NET, который расшифровывается, как «OneScript Server Pages» и по звучанию отсылает к своему происхождению.
Пока проект развивается, я планирую периодически выпускать обучающие статьи, посвященные веб-разработке в 1Script. Статьи будут выходить по мере появления в движке той или иной функциональности. Одновременно статьи будут рассказывать про обобщенные штуки типа HTTP, MVC, Docker и прочее. Надеюсь, что получится что-то вроде книжки-пособия по 1Script.Web
Архитектура MVC
Название MVC расшифровывается, как model-view-controller и формирует все составные части и компоненты веб-движка. Архитектура mvc определяет все то, как движок устроен и как функционирует. Поэтому, для понимания устройства требуется для начала понять, что такое MVC в принципе.
Важно различать архитектурный паттерн MVC и его реализацию внутри ASP/OSP. Сам архитектурный паттерн не нов, его первые летописные упоминания исследователи относят к 1970 годам прошлого столетия. Однако, особую популярность он набрал с развитием веба в XXI веке н.э.
Ключевым в данном паттерне является четкое разграничение ответственностей компонентов. Я не буду подробно рассказывать о самом паттерне, а в особенности, рисовать тупую схему из трех квадратиков и стрелочек между ними, которых и так полно в сети. Материалов, поясняющих паттерн MVC предостаточно, и большинство из них – полный отстой. Не хотелось бы пополнять этот список своей статьей.
HTTP объясняет все
Почему MVC стал популярен с приходом веб? На мой взгляд, он очень хорошо отражает принципы взаимодействия по протоколу HTTP, которым живет Интернет. Протокол HTTP работает по схеме запрос-ответ и не хранит никакого состояния между двумя вызовами. Клиент спросил – сервер ответил. Все.
У HTTP-запроса есть 3 части: запрашиваемый ресурс, заголовки и тело запроса. У HTTP ответа также есть 3 части: статус ответа, заголовки и тело. Все, чем занимаются приложения, общающиеся по HTTP – это отсылают друг другу текстовые файлы вида:
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
И получают в ответ файлы вида:
HTTP/1.1 404 Not Found
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
Connection: Closed
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
<h1>Not Found</h1>
<p>The requested URL /t.html was not found on this server.</p>
</body>
</html>
Первой строкой запроса/ответа идет ресурс/статус соответственно. Далее, идет коллекция заголовков, каждый из которых представляет собой строку вида «Заголовок: Значение» Т.е. это обычное 1С-Соответствие, где ключ и значение отделены двоеточием, а элементы коллекции разделены переводом строк.
После заголовков следует одна пустая строка. Это знак, что заголовки кончились и дальше идет тело. Тело представляет собой ДвоичныеДанные, интерпретация которых зависит от самих приложений и того, как они написаны.
Таким образом, любое веб-приложение получает на вход вот такой вот файл, а дальше читает его, понимает и делает какие-то действия. После чего – отправляет клиенту файл с ответом. При чем тут MVC? При том, что в MVC-подходе очень удобно разделяются компоненты, которые отвечают за разбор входящего запроса и «понимание» что делать дальше, и компоненты отвечающие за то – что нужно отправить в качестве ответа. Между ними сидит «Модель», она же «бизнес-логика», она же «Конфигурация 1С».
Если еще проще, то веб-сервер, который получил запрос, отправляет его в «Контроллер», который понимает, как его обработать. Контроллер понимает, какое именно «Представление» должно сформировать ответ и вызывает это «представление». Полученный результат – отправляет клиенту.
Контроллер выполняет роль «точки входа» в запрос и выполняет диспетчеризацию вызова в нужную часть бизнес-логики. С появлением «контроллера» вся низкоуровневая байда по чтению и интерпретации http-запроса остается (инкапсулируется) внутри него и не затрагивает остальное приложение.
Формирование ответа
В качестве ответа мы можем отдавать любое двоичное содержимое. Чаще всего это html или (если это веб-сервис) – json, либо xml.
Ответ формируется внутри «действия» контроллера и возвращается клиенту.
Маршрутизация
Применительно к ASP, помимо контроллеров, представлений и моделей, система использует «Маршруты» (Routes). Маршрут – это правило, по которому принимается решение о том, как обрабатывать тот или иной запрос. Маршрут – это часть URL, находящаяся после имени сервера. Например, если в браузере вы запрашиваете страницу «http://mysite.com/users/list», то система будет использовать маршрут /users/list, в качестве правила диспетчеризации запроса.
Маршрут состоит из сегментов, разделенных символами косой черты “/”. В данном случае, у нас 2 сегмента – users и list. Наиболее распространённым способом маршрутизации является схема «controller/action/index?», в которой первому сегменту URL соответствует имя контроллера, второму – имя действия (команды) внутри контроллера, а третий необязательный параметр определяет параметр действия. Разумеется, возможны и другие схемы маршрутизации, это просто пример наиболее популярной схемы.
Структура приложения
Приложение состоит из 4 основных частей:
- Статическое содержимое (картинки, скрипты js, стили, и т.п.)
- Модуль приложения
- Контроллеры
- Представления

Статическое содержимое находится в каталоге wwwroot и на нем останавливаться не будем, это просто файлики, как есть.
Модуль приложения располагается в файле main.os. В нем выполняется вся необходимая инициализация и настройки маршрутов.
В папке controllers лежат, собственно, контроллеры, каждый из которых представлен модулем 1script. В папке views, как несложно догадаться, лежат представления (они же – шаблоны страниц), которые на данный момент не имеют каких-либо «облегчающих жизнь 1С-ника» плюшек. Это в чистом виде шаблоны Razor от фирмы Microsoft. В дальнейшем планируются исследования на эту тему, но пока имеем, что имеем. Шаблоны Razor довольно мощные, просто их писать надо не на 1С. С другой стороны, за счет разделения ответственностей в архитектуре MVC, в шаблонах и не требуется какой-то особенной логики.
Развертывание и запуск
Поскольку на дворе XXI век, то приложения поставляются и устанавливаются сразу вместе со своей операционной системой. Называется все это контейнером и гуглится по словам «docker», «красноглазие», «linux» и «у меня ничего не работает».
Нужно скачать архив из данной статьи, распаковать его куда-нибудь, затем зайти в консоль, перейти в каталог, в который распаковали и выполнить «docker build –t demoapp .» Точку в конце не забываем.
Чуть не забыл. Если у вас на машине нету докера, то вам нужно его себе поставить. Сразу на винду или внутрь виртуальной машины. Поскольку впереди долгие праздники и вам наверняка нужно будет чем-то себя занять, то я не сейчас буду расписывать как это делать. Скажу только, что это не очень сложно, а на инфостарте есть даже подробнейшая инструкция от @pumbaEO.
К сожалению, теперь нельзя положить в статью бесплатный файл, поэтому, если кому совсем лень поддержать автора - тот же самый архив можно скачать с github в моем аккаунте.
В результате, у вас должен будет получиться вот такой вот веб-сайт:

На этом, вводная статья в веб-разработку на языке 1С заканчивается. Когда отгремят каникулы, я уже более вдумчиво и серьезно расскажу по порядку как все устроено, как настроить среду разработки, виртуалки-шмиртуалки и прочее. Мы сделаем полноценный сайт, а по мере развития движка будем его усложнять и усложнять.
С наступающим Новым Годом, друзья!
Вступайте в нашу телеграмм-группу Инфостарт
См. также
WEB-интеграция Рабочее место Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)
Программный продукт "Управление доставками в 1С" позволяет обмениваться с личным кабинетом Boxberry, СДЭК, Энергия, Почта России, DPD, ПЭК, Grastin, Деловые Линии, КСЕ, Dalli, ЯндексДоставка. Упрощает создание заявок и резервирование заказов прямо в интерфейсе 1С
24400 руб.
10.03.2016 76129 321 100
WEB-интеграция Разработчик Аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)
Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.
17568 руб.
20.12.2024 7766 35 4
Сайты и интернет-магазины WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)
Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.
42700 руб.
03.08.2020 25836 42 26
WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)
Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStars разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.
20740 руб.
13.05.2025 3084 6 0
WEB-интеграция Оптовая торговля Розничная торговля Разработчик 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)
Модуль интеграции 1С с OpenCart 2.x, 3x позволяет обмениваться данными между OpenCart (самая популярная бесплатная cms для интернет-магазинов) и 1С:Предприятие 8.
6914 руб.
17.11.2015 135260 477 143
WEB-интеграция Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Управленческий учет Платные (руб)
Хорошая основа вашего решения импорта данных статистики Яндекс.Метрики в информационную базу 1С. Получение счетчиков, запрос статистики, получение данных - все в одной обработке.
5094 руб.
21.06.2022 11419 12 0
WEB-интеграция Загрузка и выгрузка в Excel Разработчик Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)
Расширение освободит вас от необходимости вручную обновлять информацию о товарах в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически формирует файлы yml для дальнейшей загрузки в группы в ВК. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.
12200 руб.
29.08.2025 3761 7 8
WEB-интеграция Аналитик Бухгалтер Пользователь 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения Россия Платные (руб)
Доступ в виде подписки к сервисам 1СПАРК Риски и 1С:Контрагент в «старых», но широко используемых конфигурациях.
6100 руб.
30.01.2019 28926 104 6
Охотно верим. А движок на С# стало быть не вы написали ?)
Что именно прочитал? Там не помню чтобы было написано что-то серьезное про производительность. Предполагаемая производительность - на уровне прочих скриптовых языков. (Не считая компилируемого в машинный код варианта исполнения)
Думаю это достаточно точно дает понять, что вопрос производительности не поднимается совсем. В общем то целевой аудитории это, скорее всего, не важно. Я больше "для галочки" спросил.
И все-таки ваш довод по производительности чем-то подтвержден или это только предположение?
P.S. Не стоит сравнивать язык и фрэймворк (PHP / Django).
Полная. Докерфайл не нужен, готовый образ уже лежит в хабе докера. Т.е. FROM evilbeaver/oscript-web:dev вполне себе вытягивает нужный образ-основу автоматически.
А этот контейнер - это движок. Он тоже опенсорсный и все на гитхабе есть. Внутри контейнера сейчас ASP.NET Core, выполняемый под mono, но в ближайшее время будет вместо mono - родной netcore.
сразу оговорюсь, я неделю воздерживался от комментариев, чтобы не накидывать "на вентилятор", однако предлагаю вам взглянуть на весь тред самим и посмотреть что же в итоге получается
(2) Про производительность
ну во первых - пытливый ум увидел бы что docker здесь не просто так, я всем советую изучить не сам docker, а нечто под названием docker-swarm,а также в качестве примера вот такую статью
во вторых - коллеги, мы тут не второй Гугл строим, а всего лишь Web приложения, и как всегда многие забывают, что бывают не только внешние Web приложения, но и внутренние для предприятия, где пользователей скажем не мильоны тысяч, а всего-лишь <КоличествоСотрудниковВЗУП> (хотя правильней было бы сказать количество физических лиц в ЗУП, так как сотрудник в ЗУП это трудовой контракт, коих может быть несколько на одного человека)
в третьих - вопрос производительности понятен и закладывается, но как выше я уже сказал, лично я смотрю в сторону горизонтального масштабирования и применения всяких интересных штук типа Varnish, haproxy, Zookeeper, RMQ и Kafka, в этом смысле меня больше интересует применение вот такого для наших целей, нежели чем борьба за скорость выполнения одной строчки на OScript. Хотя опять же может кто-то не в курсе, но насколько я знаю мысли в сторону очередной оптимизации OScript как такового у некоторых "абстрактных Сергеев" наличествуют
(19) насчёт "не надо"
ну во первых, всё начинается с проблем... Подход "У вас нет проблемы, расслабтесь и получайте удовольствие" он конечно классный, но для психотерапевтов.
прошу всех еще раз посмотреть вокруг себя - у вас точно не возникало задачи создавать микросайты под задачу ?, вот вам в качестве пример проблематика:
у OScript есть основной лендинг и внезапно появился Хаб пакетов - так как проект публичный оные лендинги и хаб выставлены во всемирную сеть, за последние 3 года стал понятен жизненный цикл этих сайтов, что там можно автоматизировать чтобы сократить рутину по поддержке. Понятное дело, что формально уже на самих сайтах OScript возникает некая бизнес-логика, которую бы хотелось автоматизировать. А теперь вопрос на чём её делать ? На RoR, на PHP, на Node.JS, может на GoLang - но тут я напомню тезис про тайландских программистов
Полностью фраза звучит так "Я тайландский программист, решаю проблему тайландского бизнесмена совместно с командой тайландских программистов... Почему я должен писать код на английском ? Какого рожна ?"
То есть оказывается не одни 1С специалисты такие. Скорость разработки под бизнес-требования сформулированных на русском, будет быстрей на русском языке. Английский язык тут только помеха и дополнительные затраты.
то есть на самом деле очень даже надо. Это я еще вам не напомнил про микросервисность и всякую слабую связанность.
(21) Про аналог 1С
Уже тысячу раз говорено - "НЕТ", такой цели нет, мало того есть ровно обратная цель 1С+Oscript, то есть помочь платформе делать то, чего она пока не умеет или делает странно. Некоторые из участников сообщества так или иначе участвовали в проектах типа Ананас,.2С, 2l и jOneS и видели чем подобное заканчивалось. Холиварами и выгоранием. Потому что - делать аналог 1С глупо. С денежной-ресурсной и с методической стороны. Это тоже самое что писать ERP на PHP (такую попытку я уже видел).
Если вам прям интересно необходимо делать учетные системы забесплатно - можете посмотреть на следующие проекты и подумать почему они загнулись
ну и в частности лучше посмотреть вот сюда и немного поплеваться ;-)
(22) про бесперспективность
решение на которое вы указываете похоже в том числе на последние решения UMI.CMS типа кнопки "Создать сайт из УНФ" - но как показывает практика совокупная стоимость владения такими решениями растёт экспотенциально (опечатка сознательная), "вначале мало потом дофига", в случае же с нашим подходом мы хотим чтобы совокупная стоимость владения росла даже не линейно, а "ниже линии", то есть с каждой новой логикой должно становится проще запускать новую функциональность.
(33) про планы
Евгений - планов громадъё в том числе и по UI интерфейсу, могу поделиться при встрече более подробно, публично могу сказать следующее
* типизированные параметры сеанса, как и авторизация и SSO - делаются уже готовыми сервисами и компонентами, логика конечно же на OScript
* настройки табличных частей и вообще UI в перспективе должны выглядеть как в (55) описано
но как и указал Андрей в (39) решается это всё через биндинги... например уже сейчас в отдельноq ветке идет работа по портированию работы с "Регламетными заданиями" - это то что на C# называется Quartz, на Ruby on Rails - sidekiq, а на Python - Celery.
Если речь про интранет и учетные задачи, то достаточно простой публикации 1с-баз без гемора с веб-разработкой.
Если речь о более специальных задачах и более специальном интерфейсе, то целесообразность уклона в 1С-style сомнительна.
"Заточка" на редких одинэсников-многостаночников, ограничения по функциональности и производительности, завязка на специфические библиотеки с мутным будущим. Эти минусы имеют минимальный вес только в отдельных компаниях с большими командами разработчиков с уклоном в 1С и развитой внутренней культурой. Там да - это может стать частью технологического стека с максимумом профита.
А при более простых раскладах выгоднее держаться более стандартного технологического стека, ИМХО. Одинэсник, который сможет этим пользоваться, вполне осилит и "классические" варианты. Пусть это будет более затратно, зато более гибко, функционально и с меньшим количеством wtf у приемников.
Вот здесь смотрите в корень. Во всем этом безобразии (не только по теме статьи, а и вообще git,TDD, CI и прочее) есть одна фундаментальная причина: убрать стереотип о "тупом 1С-нике", повысить общий уровень инженерной культуры в 1С-сообществе.
Не знаю, как вам, а мне кажется, что в последние годы ситуация начала исправляться. На проф.тусовках к ребятам задвигающим про 1С уже стали относиться с заметным уважением. Хочется верить, что немного и благодаря в.п.с тоже.
Идея безусловно классная, но вот с применением ее для разработки реальных веб-приложений есть ряд вопросов. Буду следить за темой, интересно послушать детали реализации. Пока не совсем понятно, как будет решаться вопрос с дополнительными пакетами, которых под тот asp .net core написано предостаточно.
Хотя безусловно работа интересная.
Вот я, например, понимаю суть вещей, но мне не проще вспоминать ПХП или изучать с нуля ноду.жс
Они может и замечательные, но мне НЕ ПРОЩЕ, чем написать движок под разработку на 1С. Бонусом развлечение от процесса.
Уточню: мне интересно развитие проекта, и я не пытаюсь отговорить или обхаить :)
Не, такое как раз не планировалось. Теоретически наверное возможно, но я не планирую ничего делать в этом направлении. Все-таки, все разработки делаются в том числе и для себя. У меня нет таких задач. Исходники открыты - так что велком, в принципе.
- типизированные параметры сеанса и параметры пользователя с миграцией между устройствами
- авторизация и регулируемые права доступа к объектам метаданных и их реквизитам
- публичные + приватные настройки компоновки табличных частей, отчетов, динамических списков и прочих элементов форм
- подключаемые sql и nosql адаптеры данных, в том числе, indexeddb браузера или sqlite мобильного устройства для автономного режима работы
- динамическая подгрузка модулей, в том числе - модификаторы метаданных
- расширяемые методы и подписки на события объектов и менеджеров данных
- эффективный ui-фреймворк для рендеринга интерфейса
Вы планируете реализовывать всё это своими силами или позиционируете решение, как аналог PHP с синтаксисом 1С?
Только не совсем своими силами, а создавая биндинги к тому, что уже написано. И в расчете на помощь сообщества
Step 2/2 : COPY hello /var/osp.net/
COPY failed: stat /mnt/sda1/var/lib/docker/tmp/docker-builder732977973/hello: no such file or directory
Правильно ли я понимаю, что докер должен быть на линукс установлен? С докером не работал, сори за тупые вопросы
начал настраивать по мануалу без докера, уперся в такую ошибку:
Ошибка HTTP 403.14 - Forbidden
Веб-сервер настроен таким образом, чтобы не формировать списка содержимого каталога
Если добавляю в документ по умолчанию main.os, получаю такое:
{Модуль <string> / Ошибка в строке: 5 / Неизвестный символ: ИспользоватьСтатическиеФайлы}
ИспользоватьМаршруты();
не понятно какой файл должен быть стартовым, и как-то структура каталогов и файлов не видна приложению..
Подскажите куда копать
Инструкция:
1. Поднимаем докер (в винде или вагранте или как угодно). Для вин7 только в вагранте/виртуалке, как я понял.
1.1 если совсем коротко, то в корне репо с веб-движком лежит Vagrantfile, который сразу даст вам готовую линукс-машину с докером на борту одной командой.
2. Качаем этот архив, переходим в консоли в каталог, куда он был распакован. Там лежит Dockerfile.
3. docker build -t demo .
3.1 - точка в конце нужна (это "текущий каталог")
4. docker run -d -p 5000:5000 demo
5. заходим на localhost:5000 и все работает
веб-сервер уже есть внутри контейнера и его не надо поднимать и настраивать отдельно.
А вообще, если делать все по инструкции (т.е. вместо Toolbox поставить vagrant и поднять готовую машину по шаблону) - то все работает, в т.ч. п. 5
1.1 если совсем коротко, то в корне репо с веб-движком лежит Vagrantfile, который сразу даст вам готовую линукс-машину с докером на борту одной командой.
При всем огромном уважении, извините, это фигня. Я не хочу иметь какое-то ненужное ПО на моем компе. Здоровенную дуру, которая не нужна ни для чего, кроме как посмотреть на любопытный казус - веб-разработку на 1Script. Можно как-то без этого ?
Однозначный плюс, Андрей!
Продолжай, слушай всезнающих скептиков и выноси из этого лучшее для развития инструмента. Сам 1Script давно юзаю в повседневных задачах и очень нравится.
пока есть наброски в части объектной модели и жизненного цикла.
уже сейчас понятно следующее, что это будет именно компилируемая модель, для которой должно применяться что-то типа
* Трубопровода
* Элементы интерфейса - которые будут явно определять своё маленькое поведение (типа React.Elements)
* Скрипты связи и замыкания - явно напрашивается история с fluent, текучие алгоритмы "Когда().НажатаКнопка().ОткрытьСтраницу('Профиль')"
На данный момент не хватает для такого 2-ух вещей
* трансляции этого всего в чистый JS, да еще и с тестами
* объектной модели для CSS - там же также нужно сформировать объектную-русскоязычную обертку над поведением стилей, и опять же с компиляцией в нативный CSS
P.S. У Яндекса пару лет нажат выходил CSS на русском - в виде шутки на первое апреля, но некоторые это как шутку не восприняли
Это конечно хорошо, но я, как человек старомодный, очень настороженно отношусь к запуску внутри своей инфраструктуры чужих контейнеров и прочих "черных ящиков". Хотелось бы увидеть системные требования данного движка, зависимости и т.д., чтобы можно было развернуть сервер для него самостоятельно.
Исследований на минимально необходимую конфигурацию не проводилось за ненадобностью.
Поставьте в контейнере 32Мб ОЗУ и 500Мгц процессора (мой первый комп 2001г) и понаблюдайте. Расскажите потом нам - будет вклад в проект.
Зависимости: mono 5.4, aspnetcore, onescript. Сам onescript кроме как от mono/.net ни от чего не зависит. Полностью весь код и определения контейнеров находятся в опенсорсе.
Как-то я там не особо нашел. Чтобы было понятно чего я хочу:
Все расписано, минимальная и рекомендуемая версии, необходимые модули, базовые зависимости. Опять таки, какие веб-сервера поддерживает, какие платформы.
Потому как сейчас особо не понятно какой конфигурации мне надо поднимать сервер, чтобы все взлетело, а рыться внутри контейнеров нет никакого желания, кроме того, это же не единственный вариант рабочей среды.
обозначу:
Сейчас: mono 5.4, aspnet core 1.3, onescript 1.0.19
В дальнейшем: переход на netcore2.0 и соответственно aspnet core 2. С выходом "Аннотаций" в 1script - апгрейд до 1.0.20
Все, больше зависимостей на данный момент нет. Бинарники кроме как в контейнере нигде не выложены. Можно собрать из исходников
Скажем так - религия не позволяет, а из сорцов собрать - нет проблем.
(66)
Сейчас: mono 5.4, aspnet core 1.3, onescript 1.0.19
Меня интересует также несколько иное: поддержка веб серверов, ОС и т.д. Скажем под WinSrv + IIS взлетит? А под Nginx?
Вроде бы, есть еще и бесшовная интеграция с IIS мимо Kestrel, но я этот вариант не пробовал, т.к. нацеливался на Линукс.
Операционные системы - Win, MacOS, Linux - все где работает net/mono
Это несерьезно, городить такой огород из компонент. Чем больше элементов в схеме - тем больше точек отказа, тем более, если верить этому: , то ASP.NET Core поддерживает IIS, Apache и Nginx.
(77)
Вы путаете веб-сервер и сервер приложений. Задача веб-сервера - отдать HTML, не более и не менее. Динамика создается сервером приложений, который может быть модулем веб-сервера (Apache - яркий пример) или взаимодействовать с ним по CGI/FastCGI и т.п.
Почитал немного матчасть, Kestrel (как и Tomcat) - это не веб-сервер, это сервер приложений с функциями веб-сервера, его задача - собирать и отдавать динамическое содержимое. Хотя, если быть точным, то Kestrel - прокладка между HTTP и Asp.net. Выставлять это наружу я бы не рисковал. Наиболее правильное решение повесить Kestrel на UNIX-сокет, а перед ним поставить NGINX.
На Windows работу веб-сервера логично повесить на IIS, а Kestrel также спрятать внутри.
В общем контейнер не нужен, достаточно собрать приложение и соединить его с любым веб-сервером. А ему обрубить все сетевое общение, кроме как с localhost.
Для работы контейнер не нужен, можно собрать и запустить EXE, ну об этом я уже писал выше, повторяться не стоит.
Однако, отмечу, что 1С уже довольно давно внедрила HTTP-сервисы и активно допиливает инструменты для работы с данными на уровне платформы (JSON, XML, Двоичные данные). И также, довольно давно уже есть публикация "".
В качестве "движка" - используется всеми нами любимая 1С в связке с Web-вервером (аппач или IIS), причём, можно развернуть как для файлового варианта, так и для серверного. Разрабатывать сложно (нужно погружаться в HTML/CSS/JS и т.п.), но развёртывание сервисов - занимает совсем немного времени.
Андрей сделал отличную штуку, нет что бы порадоваться, поддержать и засучить рукава, так начинается нытье, производительность подкачала.... где подкачала? Сначала сделайте что-то из предложенного варианта, а потом скажете, что вот у меня тут производительности не хватает...
Прошу простить за эмоции...
Мои маленькие вебсервисы/сайты, у клиентов, сделанные в дополнение к базам 1С уже десятилетиями работают, многие еще на простом ASP... пережили без изменений смену платформ и конфигураций 1С, так что не все надо на 1с делать... что-то может быть автономным... а на 1Скрипте это будет приятней делать, чем на других языках...
//Вычисления с рекурсией для числа 20, 1000 циклов
//Компилируемый язык 0,054 сек.
//1С 273,000 сек.
//OneScript 11,792 сек.
//Вычисления без рекурсии для числа 20, 1000000 циклов
//Компилируемый язык 0,052 сек.
//1С 184,000 сек.
//OneScript 17,503 сек.
Кому производительности OneScript не хватает? Этот тест, конечно, не общую производительность оценивает, а только циклы, условия, работу с переменными и сложение... но все же движок OneScript очень достойный!
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 722160
Создание 28.12.17 13:06
Обновление 28.12.17 13:06
Просмотры 41952
Загрузки 25
Рейтинг
153
Комментарии 82
Код открыт Да
Рубрики WEB-интеграция
Кому Разработчик
Тип файла Архив с данными
Платформа Не имеет значения
Конфигурация Универсальные
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)