Веб-разработка на 1С (1Script)

Публикация № 722160

Разработка - Практика программирования

Веб 1script onescript сайт

140
Дорогие коллеги, под новый год хочется сделать небольшой сюрприз. Я уже два года обещаю сделать движок веб-разработки для 1С-ников, и вот, наконец, есть что показать. Этим новогодним постом я открываю сериал "Веб-разработка для 1С-ников". Все, кто знаком с проектом OneScript – добро пожаловать! Остальные, тоже не стесняйтесь!

Что это?

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

С наступающим Новым Годом, друзья!

140

Скачать файлы

Наименование Файл Версия Размер
Веб-разработка на 1С (1Script):
.zip 8,01Kb
28.12.17
21
.zip 8,01Kb 21 Скачать

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

Лучшие комментарии
31. Evil Beaver 6294 28.12.17 18:50 Сейчас в теме
(29) Мне, как фанату Металлики, сложно спорить с человеком, у которого такой ник ))
creatermc; link_l; kibibyte; myjob1c; 02RUSlan; cleaner_it; ArchLord42; baton_pk; +8 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. amon_ra 3 28.12.17 14:08 Сейчас в теме
ух-ё, Андрей, такими темпами ты скоро сделаешь свою 1с с блэкджеками и всем остальным))) Круто!
adhocprog; DrAku1a; AlexGroovy; 1cWin; TreeDogNight; +5 Ответить
2. Infactum 282 28.12.17 14:09 Сейчас в теме
Без dockerfile для evilbeaver/oscript-web информация по развертыванию не полная.

И как с производительностью всего этого безобразия? Прочитал на гитхабе.

Мне, как 1С-нику не нравятся никакие языки кроме 1С.

Охотно верим. А движок на С# стало быть не вы написали ?)
Soloist; Solovyeff; biz-intel; blackhole321; sandybaev; +5 Ответить
3. Evil Beaver 6294 28.12.17 14:14 Сейчас в теме
(2)
И как с производительностью всего этого безобразия? Прочитал на гитхабе.

Что именно прочитал? Там не помню чтобы было написано что-то серьезное про производительность. Предполагаемая производительность - на уровне прочих скриптовых языков. (Не считая компилируемого в машинный код варианта исполнения)
4. Infactum 282 28.12.17 14:18 Сейчас в теме
(3)
Не стоит ждать способности создания highload-сайтов.

Думаю это достаточно точно дает понять, что вопрос производительности не поднимается совсем. В общем то целевой аудитории это, скорее всего, не важно. Я больше "для галочки" спросил.
5. Evil Beaver 6294 28.12.17 14:36 Сейчас в теме
(4) Наверное, у нас с вами разное представление о highload-сайте. Я имел в виду гитхаб, фейсбук, озон/амазон и подобное. Любой инет-магазин средней руки будет держать не хуже, чем PHP/Джанго.
10. Infactum 282 28.12.17 15:04 Сейчас в теме
(5) Для меня highload это когда проект не может работать на "типовых" решениях. Перечисленные вами сервисы конечно входят в эту категорию.
И все-таки ваш довод по производительности чем-то подтвержден или это только предположение?

P.S. Не стоит сравнивать язык и фрэймворк (PHP / Django).
38. Evil Beaver 6294 29.12.17 09:12 Сейчас в теме
(10) я не сравниваю, я намеренно мешаю их в одну кучу
6. sandybaev 136 28.12.17 14:46 Сейчас в теме
(2) Я вот думаю, мне зачем нужен 1Script?
я понимаю вы автор, продвигаете ее, все понимаю, но для меня это сложно. Да и зачем это 1С-нику.
или может я что-то не "вкуриваю", сори...
7. Evil Beaver 6294 28.12.17 14:53 Сейчас в теме
(6) Да нет никаких проблем. Обычно этими разработками начинают пользоваться, когда уже понимают зачем. Пока понимание не пришло - можно не заморачиваться.
ZhdanovR; kote; +2 Ответить
20. blackhole321 1040 28.12.17 17:08 Сейчас в теме
(6)Ну если применительно к web - он может быть полезен в тех случаях, где создаваемый сервис, является частью информационной системы на платформе 1С:Предприятие, а использование 1С по каким либо причинам не очень удобно, в связи с лицензионной нагрузкой или особенностями размещения инфраструктуры. К примеру, создание форм ввода, с передачей данных в 1С, личных кабинетов, небольших сервисов, типа ботов телеграм etc.
8. Evil Beaver 6294 28.12.17 14:55 Сейчас в теме
(2)
Без dockerfile для evilbeaver/oscript-web информация по развертыванию не полная.


Полная. Докерфайл не нужен, готовый образ уже лежит в хабе докера. Т.е. FROM evilbeaver/oscript-web:dev вполне себе вытягивает нужный образ-основу автоматически.
9. Infactum 282 28.12.17 14:59 Сейчас в теме
(8) Это для hello world норм.
Внутри контейнера что? Asp.Net core? Mono?
Исходники же "движка" вы выложили. А этот компонент почему оставили в виде черного ящика?
11. ArchLord42 68 28.12.17 15:05 Сейчас в теме
(9) вчера открывал сорцы onescript'а, видел там в солюшене проджект для веба, думаю это он)
13. Evil Beaver 6294 28.12.17 15:14 Сейчас в теме
(11) Нет, это не он. Это другой веб-обработчик. Немного не про то, хотя и перекликаются.
28. blackhole321 1040 28.12.17 18:05 Сейчас в теме
(11) Это немного другое, аналог HTTP сервисов 1С. Почитать можно здесь: https://github.com/EvilBeaver/oscriptiocontent/blob/master/markdown/docs/ht­tp.md
12. Evil Beaver 6294 28.12.17 15:13 Сейчас в теме
(9) никаких черных ящиков, все выложено. Просто в архиве на инфостарте - 1С-ная часть. То, что пишет автор сайта.

А этот контейнер - это движок. Он тоже опенсорсный и все на гитхабе есть. Внутри контейнера сейчас ASP.NET Core, выполняемый под mono, но в ближайшее время будет вместо mono - родной netcore.
14. Infactum 282 28.12.17 15:16 Сейчас в теме
(12) Так дайте ссылку, пожалуйста. Потому что я не нашел. Ожидал увидеть тут.
15. Evil Beaver 6294 28.12.17 15:21 Сейчас в теме
(14) На что ссылку? Про производительность и highload где было написано? Там оно и лежит.
16. Infactum 282 28.12.17 15:23 Сейчас в теме
(15) Это был ответ на комментарий относительно контейнера.
Вроде infostart их прекрасно в виде дерева показывает.
17. Evil Beaver 6294 28.12.17 15:41 Сейчас в теме
(16) докерфайл для сборки движка лежит там же. Про инфостарт не понял... что он в виде дерева показывает? Докер-контейнеры?
56. lustin 01.01.18 20:36 Сейчас в теме
Я так понимаю вау-эффекта не произвело и никто не увидел самого главного тезиса

этот проект нацелен на полноценную веб-разработку и не является экспериментом


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

(2) Про производительность

ну во первых - пытливый ум увидел бы что docker здесь не просто так, я всем советую изучить не сам docker, а нечто под названием docker-swarm,а также в качестве примера вот такую статью https://www.codementor.io/jholub/amazon-ecs-auto-scale-docker-containers-6keydo24n

во вторых - коллеги, мы тут не второй Гугл строим, а всего лишь Web приложения, и как всегда многие забывают, что бывают не только внешние Web приложения, но и внутренние для предприятия, где пользователей скажем не мильоны тысяч, а всего-лишь <КоличествоСотрудниковВЗУП> (хотя правильней было бы сказать количество физических лиц в ЗУП, так как сотрудник в ЗУП это трудовой контракт, коих может быть несколько на одного человека)

в третьих - вопрос производительности понятен и закладывается, но как выше я уже сказал, лично я смотрю в сторону горизонтального масштабирования и применения всяких интересных штук типа Varnish, haproxy, Zookeeper, RMQ и Kafka, в этом смысле меня больше интересует применение вот такого https://github.com/docker/infrakit для наших целей, нежели чем борьба за скорость выполнения одной строчки на OScript. Хотя опять же может кто-то не в курсе, но насколько я знаю мысли в сторону очередной оптимизации OScript как такового у некоторых "абстрактных Сергеев" наличествуют

(19) насчёт "не надо"

ну во первых, всё начинается с проблем... Подход "У вас нет проблемы, расслабтесь и получайте удовольствие" он конечно классный, но для психотерапевтов.

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

у OScript есть основной лендинг и внезапно появился Хаб пакетов - так как проект публичный оные лендинги и хаб выставлены во всемирную сеть, за последние 3 года стал понятен жизненный цикл этих сайтов, что там можно автоматизировать чтобы сократить рутину по поддержке. Понятное дело, что формально уже на самих сайтах OScript возникает некая бизнес-логика, которую бы хотелось автоматизировать. А теперь вопрос на чём её делать ? На RoR, на PHP, на Node.JS, может на GoLang - но тут я напомню тезис про тайландских программистов


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

То есть оказывается не одни 1С специалисты такие. Скорость разработки под бизнес-требования сформулированных на русском, будет быстрей на русском языке. Английский язык тут только помеха и дополнительные затраты.


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

(21) Про аналог 1С

Уже тысячу раз говорено - "НЕТ", такой цели нет, мало того есть ровно обратная цель 1С+Oscript, то есть помочь платформе делать то, чего она пока не умеет или делает странно. Некоторые из участников сообщества так или иначе участвовали в проектах типа Ананас,.2С, 2l и jOneS и видели чем подобное заканчивалось. Холиварами и выгоранием. Потому что - делать аналог 1С глупо. С денежной-ресурсной и с методической стороны. Это тоже самое что писать ERP на PHP (такую попытку я уже видел).

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

http://plazma.sourceforge.net/frameaction.php?lng=ru&page=index
http://www.m-g.ru/

ну и в частности лучше посмотреть вот сюда https://www.odoo.com/ и немного поплеваться ;-)

(22) про бесперспективность

решение на которое вы указываете похоже в том числе на последние решения UMI.CMS типа кнопки "Создать сайт из УНФ" - но как показывает практика совокупная стоимость владения такими решениями растёт экспотенциально (опечатка сознательная), "вначале мало потом дофига", в случае же с нашим подходом мы хотим чтобы совокупная стоимость владения росла даже не линейно, а "ниже линии", то есть с каждой новой логикой должно становится проще запускать новую функциональность.

(33) про планы

Евгений - планов громадъё в том числе и по UI интерфейсу, могу поделиться при встрече более подробно, публично могу сказать следующее
* типизированные параметры сеанса, как и авторизация и SSO - делаются уже готовыми сервисами и компонентами, логика конечно же на OScript
* настройки табличных частей и вообще UI в перспективе должны выглядеть как в (55) описано

но как и указал Андрей в (39) решается это всё через биндинги... например уже сейчас в отдельноq ветке идет работа по портированию работы с "Регламетными заданиями" - это то что на C# называется Quartz, на Ruby on Rails - sidekiq, а на Python - Celery.
creatermc; FilatovRA; z86; cleaner_it; JohnyDeath; +5 Ответить
58. herfis 283 03.01.18 12:42 Сейчас в теме
(56) А что, ожидался вау-эффект в части практических перспектив?
Если речь про интранет и учетные задачи, то достаточно простой публикации 1с-баз без гемора с веб-разработкой.
Если речь о более специальных задачах и более специальном интерфейсе, то целесообразность уклона в 1С-style сомнительна.
"Заточка" на редких одинэсников-многостаночников, ограничения по функциональности и производительности, завязка на специфические библиотеки с мутным будущим. Эти минусы имеют минимальный вес только в отдельных компаниях с большими командами разработчиков с уклоном в 1С и развитой внутренней культурой. Там да - это может стать частью технологического стека с максимумом профита.
А при более простых раскладах выгоднее держаться более стандартного технологического стека, ИМХО. Одинэсник, который сможет этим пользоваться, вполне осилит и "классические" варианты. Пусть это будет более затратно, зато более гибко, функционально и с меньшим количеством wtf у приемников.
61. Evil Beaver 6294 03.01.18 13:26 Сейчас в теме
(58) Такая точка зрения тоже имеет право на жизнь. Однако, "ограничений по производительности" тут нет. Не больше чем в питоне/руби по сравнению с c++. Не ясно, откуда сделан вывод про ограничения производительности?

"Заточка" на редких одинэсников-многостаночников

Вот здесь смотрите в корень. Во всем этом безобразии (не только по теме статьи, а и вообще git,TDD, CI и прочее) есть одна фундаментальная причина: убрать стереотип о "тупом 1С-нике", повысить общий уровень инженерной культуры в 1С-сообществе.

Не знаю, как вам, а мне кажется, что в последние годы ситуация начала исправляться. На проф.тусовках к ребятам задвигающим про 1С уже стали относиться с заметным уважением. Хочется верить, что немного и благодаря в.п.с тоже.
18. dalgaso2010 243 28.12.17 16:45 Сейчас в теме
Однозначно +.

Идея безусловно классная, но вот с применением ее для разработки реальных веб-приложений есть ряд вопросов. Буду следить за темой, интересно послушать детали реализации. Пока не совсем понятно, как будет решаться вопрос с дополнительными пакетами, которых под тот asp .net core написано предостаточно.
27. Evil Beaver 6294 28.12.17 17:54 Сейчас в теме
(18) А никак. Считайте, что внутри нет никакого core, считайте что там голый ассемблер, чорный-пречорный ящик. И только язык 1С в вашем распоряжении и библиотека oscript-library.
36. dalgaso2010 243 29.12.17 03:12 Сейчас в теме
(27) Я это понимаю, просто тогда весь накопленный опыт для asp .net core в виде репозитория пакетов придется по факту выбросить (или адаптировать) и все делать заново. Не подумайте, я не критикую, просто смотрю с позиции web-разработчика. С другой стороны, предложенный вариант уже крут, т.к. для использования его в качестве http сервисов этого более, чем достаточно. Front отдельно написать можно на соответствующем стеке. За развитие OneScript одназный плюс. Очень нравится ваш проект и стараюсь о нем рассказывать, где могу. Например, написал статью в Сис. админ.
artbear; Evil Beaver; +2 Ответить
19. sanjakaiser 28.12.17 16:55 Сейчас в теме
Всем привет! Это мой первый коммент за всю историю бытия на инфостарте. Андрюх, ты молодец, но может лучше не лезть 1С-ом в веб-разработку? Ну не перекликаются эти области никак меж собой, в этом болезнь всех современных решений, ну нельзя впихнуть невпихуемое
44. Evil Beaver 6294 29.12.17 10:03 Сейчас в теме
(19) почему не надо? Выйдет сотона и зохаваит фсех?
adhocprog; sorb; +2 Ответить
21. Boris_1c 39 28.12.17 17:25 Сейчас в теме
Это мега круто!! Так мы скоро увидим аналог 1с для простых проектов. Автору огромное спасибо.
26. Evil Beaver 6294 28.12.17 17:52 Сейчас в теме
(21) это вряд ли. Нет цели делать аналог 1С.
22. Lars Ulrich 511 28.12.17 17:25 Сейчас в теме
Веб разработка на 1С, имхо, бесперспективна. Человеку, который понимает суть вещей, проще сделать без надстроек. И такое решение (не сочтите за дерзость) будет иметь большее отношение к 1С.
Хотя безусловно работа интересная.
25. Evil Beaver 6294 28.12.17 17:51 Сейчас в теме
(22)
Человеку, который понимает суть вещей, проще сделать без надстроек.

Вот я, например, понимаю суть вещей, но мне не проще вспоминать ПХП или изучать с нуля ноду.жс

Они может и замечательные, но мне НЕ ПРОЩЕ, чем написать движок под разработку на 1С. Бонусом развлечение от процесса.
adhocprog; 1cWin; zqzq; Alligator84; artbear; +5 Ответить
29. Lars Ulrich 511 28.12.17 18:28 Сейчас в теме
(25) пока здесь ключевое именно "развлечение от процесса", и если целить в то, чтобы поднять всю инфраструктуру на 1С, то идеологически верно.
Уточню: мне интересно развитие проекта, и я не пытаюсь отговорить или обхаить :)
Evil Beaver; Soloist; +2 Ответить
31. Evil Beaver 6294 28.12.17 18:50 Сейчас в теме
(29) Мне, как фанату Металлики, сложно спорить с человеком, у которого такой ник ))
creatermc; link_l; kibibyte; myjob1c; 02RUSlan; cleaner_it; ArchLord42; baton_pk; +8 Ответить
32. Lars Ulrich 511 28.12.17 18:56 Сейчас в теме
(31) На то и расчет ))))
Evil Beaver; +1 Ответить
23. alexey.karmanov 184 28.12.17 17:34 Сейчас в теме
Андрей, я же правильно понимаю, что при помощи описанной тобой технологии можно будет делать веб-интерфейс для десктопных приложений на OneScript? На мой взгляд отсутствие интерфейса для скриптов на OneScript является сдерживающим фактором от того, чтобы писать на нём приложения для конечного пользователя. Если это так, то я вижу главную силу встроенного веб-сервера именно в этой части, так как сейчас многие кроссплатформенные приложения (на том же .net) организуют интерфейс для пользователя именно этим путём, запуская свой веб-сервер и общаясь с пользователем через браузер.
24. Evil Beaver 6294 28.12.17 17:50 Сейчас в теме
(23)
веб-интерфейс для десктопных приложений на OneScript?

Не, такое как раз не планировалось. Теоретически наверное возможно, но я не планирую ничего делать в этом направлении. Все-таки, все разработки делаются в том числе и для себя. У меня нет таких задач. Исходники открыты - так что велком, в принципе.
50. nixel 796 30.12.17 01:51 Сейчас в теме
(23) интерфейс есть. Посмотрите библиотеку gui, есть статья на ИС
Vladimir Litvinenko; artbear; Evil Beaver; alexey.karmanov; +4 Ответить
30. herfis 283 28.12.17 18:36 Сейчас в теме
Плюс поставил, ибо есть за что.
Но будущего у проекта не вижу.
33. unpete 537 28.12.17 20:36 Сейчас в теме
imho, веб-приложению нужны:
- типизированные параметры сеанса и параметры пользователя с миграцией между устройствами
- авторизация и регулируемые права доступа к объектам метаданных и их реквизитам
- публичные + приватные настройки компоновки табличных частей, отчетов, динамических списков и прочих элементов форм
- подключаемые sql и nosql адаптеры данных, в том числе, indexeddb браузера или sqlite мобильного устройства для автономного режима работы
- динамическая подгрузка модулей, в том числе - модификаторы метаданных
- расширяемые методы и подписки на события объектов и менеджеров данных
- эффективный ui-фреймворк для рендеринга интерфейса

Вы планируете реализовывать всё это своими силами или позиционируете решение, как аналог PHP с синтаксисом 1С?
34. baton_pk 392 28.12.17 21:35 Сейчас в теме
(33)
как аналог PHP с синтаксисом 1С

У односкрипта есть свой набор библиотек, своё сообщество. Так что вряд ли у них есть что-то общее с PHP кроме слова Web. Скорее эдакий ASP.NET с синтаксисом 1С.
Evil Beaver; +1 Ответить
39. Evil Beaver 6294 29.12.17 09:15 Сейчас в теме
(33) большую часть упомянутого планирую. Кроме, пожалуй ui. Расчет больше на сервер-сайд, ui меньшим приоритетом.

Только не совсем своими силами, а создавая биндинги к тому, что уже написано. И в расчете на помощь сообщества
35. Boris_1c 39 28.12.17 23:40 Сейчас в теме
при установке в docker toolbox для windows 7

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

Правильно ли я понимаю, что докер должен быть на линукс установлен? С докером не работал, сори за тупые вопросы
40. Evil Beaver 6294 29.12.17 09:17 Сейчас в теме
(35) по-моему, современный правльный докер - это docker for windows. Не toolbox.
48. Boris_1c 39 29.12.17 23:26 Сейчас в теме
(40)Ткните носом в докер для windows 7..

начал настраивать по мануалу без докера, уперся в такую ошибку:
Ошибка HTTP 403.14 - Forbidden
Веб-сервер настроен таким образом, чтобы не формировать списка содержимого каталога

Если добавляю в документ по умолчанию main.os, получаю такое:
{Модуль <string> / Ошибка в строке: 5 / Неизвестный символ: ИспользоватьСтатическиеФайлы}
ИспользоватьМаршруты();

не понятно какой файл должен быть стартовым, и как-то структура каталогов и файлов не видна приложению..
Подскажите куда копать
51. Evil Beaver 6294 30.12.17 10:15 Сейчас в теме
(48) не надо настраивать веб-сервер и прописывать "Документ-по-умолчанию".

Инструкция:

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 и все работает

веб-сервер уже есть внутри контейнера и его не надо поднимать и настраивать отдельно.
binex; Boris_1c; +2 Ответить
53. Boris_1c 39 30.12.17 11:28 Сейчас в теме
(51) спасибо, многое прояснилось
69. MishaD 12 04.01.18 10:34 Сейчас в теме
(51) Вчера весь день возился. Не получилось. Не работает основное - 5-й пункт.
5. заходим на localhost:5000 и
страница не найдена. Windows 7, поэтому ставил Docker через DockerToolbox. Может это связано с тем, что Docker через виртуальную машину работает ?
71. Evil Beaver 6294 04.01.18 11:21 Сейчас в теме
(69) Тут сложно что-то сказать. Я не зря написал - праздники впереди длинные. Виртуалки не видят друг друга - причин может быть десяток. Анализируйте, где обрыв.

А вообще, если делать все по инструкции (т.е. вместо Toolbox поставить vagrant и поднять готовую машину по шаблону) - то все работает, в т.ч. п. 5
80. bulpi 157 09.03.18 22:19 Сейчас в теме
(51)
1. Поднимаем докер (в винде или вагранте или как угодно). Для вин7 только в вагранте/виртуалке, как я понял.
1.1 если совсем коротко, то в корне репо с веб-движком лежит Vagrantfile, который сразу даст вам готовую линукс-машину с докером на борту одной командой.


При всем огромном уважении, извините, это фигня. Я не хочу иметь какое-то ненужное ПО на моем компе. Здоровенную дуру, которая не нужна ни для чего, кроме как посмотреть на любопытный казус - веб-разработку на 1Script. Можно как-то без этого ?
81. bulpi 157 09.03.18 22:30 Сейчас в теме
(80)
Все, вопрос снимаю. Уже есть первая глава. Просто у меня привычка читать все по порядку и по порядку разбираться. А на самом деле эту статью стоило пропустить.
37. Alligator84 64 29.12.17 06:59 Сейчас в теме
...Однако, есть проблема – я не умею. И мне гораздо приятнее сделать это на 1С.

Однозначный плюс, Андрей!
Продолжай, слушай всезнающих скептиков и выноси из этого лучшее для развития инструмента. Сам 1Script давно юзаю в повседневных задачах и очень нравится.
41. 08pmmdu1 29.12.17 09:26 Сейчас в теме
месье знает толк в извращениях
42. Evil Beaver 6294 29.12.17 09:27 Сейчас в теме
43. avgyr77 29.12.17 09:44 Сейчас в теме
Приветствую что такое движок для веб разработки 1с ников?
45. zarucheisky 29.12.17 10:33 Сейчас в теме
(0) В web-клиенте 1С посмотри есть js-интерпретатор языка 1С, правда пройден обфускатором :(
46. Evil Beaver 6294 29.12.17 10:38 Сейчас в теме
(45) насколько я знаю, там интерпретатор готового байт-кода, а не языка.
47. nextkmv 118 29.12.17 16:27 Сейчас в теме
(46) Андрей, а у вас нет планов по реализации такого интерпретатора onescript-js? Что бы можно было и клиентскую часть писать на onescript.
52. Evil Beaver 6294 30.12.17 10:17 Сейчас в теме
(47) Нет. Так-то он нужен, но сил на это в себе не планирую находить. Вот кто бы взял да и сделал...
54. baton_pk 392 30.12.17 18:48 Сейчас в теме
(47) года два уже как есть в планах. Но всё руки не доходят.
55. lustin 01.01.18 19:29 Сейчас в теме
(47) это прям мечта и скорее всего реальная. Архитектурно это будет скорее компонентная модель типа vue.js, angular.js или react.js с компиляцией аля typescript2javascript

пока есть наброски в части объектной модели и жизненного цикла.

уже сейчас понятно следующее, что это будет именно компилируемая модель, для которой должно применяться что-то типа

* Трубопровода http://rusrails.ru/asset-pipeline
* Элементы интерфейса - которые будут явно определять своё маленькое поведение (типа React.Elements)
* Скрипты связи и замыкания - явно напрашивается история с fluent, текучие алгоритмы "Когда().НажатаКнопка().ОткрытьСтраницу('Профиль')"

На данный момент не хватает для такого 2-ух вещей

* трансляции этого всего в чистый JS, да еще и с тестами
* объектной модели для CSS - там же также нужно сформировать объектную-русскоязычную обертку над поведением стилей, и опять же с компиляцией в нативный CSS

P.S. У Яндекса пару лет нажат выходил CSS на русском - в виде шутки на первое апреля, но некоторые это как шутку не восприняли
49. as 30.12.17 00:32 Сейчас в теме
(45) До 8.3.5 не было обфускации.
57. Tavalik 2101 03.01.18 12:29 Сейчас в теме
Звучит многообещающе. Надеюсь, сообщество подхватит идею и все это со временем из "посмотрите, я сайтик на 1С написал" разовьется до реальных бизнес-приложения в вебе. Желаю удачи и будем следить за публикациями.
59. oldcopy 122 03.01.18 12:49 Сейчас в теме
Поскольку на дворе XXI век, то приложения поставляются и устанавливаются сразу вместе со своей операционной системой. Называется все это контейнером


Это конечно хорошо, но я, как человек старомодный, очень настороженно отношусь к запуску внутри своей инфраструктуры чужих контейнеров и прочих "черных ящиков". Хотелось бы увидеть системные требования данного движка, зависимости и т.д., чтобы можно было развернуть сервер для него самостоятельно.
60. Evil Beaver 6294 03.01.18 13:17 Сейчас в теме
(59) Дык, на гитхабе же всё. Системные требования... хм... скажем так, как и любое приличное приложение - оно потребляет все имеющиеся ресурсы, которые даст ему операционная система.

Исследований на минимально необходимую конфигурацию не проводилось за ненадобностью.

Поставьте в контейнере 32Мб ОЗУ и 500Мгц процессора (мой первый комп 2001г) и понаблюдайте. Расскажите потом нам - будет вклад в проект.

Зависимости: mono 5.4, aspnetcore, onescript. Сам onescript кроме как от mono/.net ни от чего не зависит. Полностью весь код и определения контейнеров находятся в опенсорсе.
62. oldcopy 122 03.01.18 13:44 Сейчас в теме
Дык, на гитхабе же всё.


Как-то я там не особо нашел. Чтобы было понятно чего я хочу: https://downloads.joomla.org/ru/technical-requirements-ru

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

Потому как сейчас особо не понятно какой конфигурации мне надо поднимать сервер, чтобы все взлетело, а рыться внутри контейнеров нет никакого желания, кроме того, это же не единственный вариант рабочей среды.
63. Evil Beaver 6294 03.01.18 13:59 Сейчас в теме
Да, это все, конечно же будет. Когда повесим шильдик хотя бы pre-release. Пока что это ранний анонс.
65. oldcopy 122 04.01.18 00:19 Сейчас в теме
(63)
Да, это все, конечно же будет. Когда повесим шильдик хотя бы pre-release. Пока что это ранний анонс.


Ну так хоть как обозначьте, есть желание потестить, но тянуть контейнер нет никакого желания.
66. Evil Beaver 6294 04.01.18 01:56 Сейчас в теме
(65) Ну если без контейнера, то только из исходников собирать на данный момент. А чем контейнер не угодил?

обозначу:

Сейчас: mono 5.4, aspnet core 1.3, onescript 1.0.19

В дальнейшем: переход на netcore2.0 и соответственно aspnet core 2. С выходом "Аннотаций" в 1script - апгрейд до 1.0.20

Все, больше зависимостей на данный момент нет. Бинарники кроме как в контейнере нигде не выложены. Можно собрать из исходников
68. oldcopy 122 04.01.18 02:08 Сейчас в теме
(66)
то только из исходников собирать на данный момент. А чем контейнер не угодил?


Скажем так - религия не позволяет, а из сорцов собрать - нет проблем.


(66)
обозначу:

Сейчас: mono 5.4, aspnet core 1.3, onescript 1.0.19


Меня интересует также несколько иное: поддержка веб серверов, ОС и т.д. Скажем под WinSrv + IIS взлетит? А под Nginx?
70. Evil Beaver 6294 04.01.18 11:18 Сейчас в теме
(68) Большинство приложений aspnet core используют собственный встроенный веб-сервер Kestrel. Т.е. по сути, само собранное из исходников приложение - это мини веб-сервер, слушающий порт. Далее вы можете его проксировать куда угодно, в IIS, Apache и т.п.

Вроде бы, есть еще и бесшовная интеграция с IIS мимо Kestrel, но я этот вариант не пробовал, т.к. нацеливался на Линукс.

Операционные системы - Win, MacOS, Linux - все где работает net/mono
75. oldcopy 122 04.01.18 18:25 Сейчас в теме
(70)
Большинство приложений aspnet core используют собственный встроенный веб-сервер Kestrel. Т.е. по сути, само собранное из исходников приложение - это мини веб-сервер, слушающий порт. Далее вы можете его проксировать куда угодно, в IIS, Apache и т.п.


Это несерьезно, городить такой огород из компонент. Чем больше элементов в схеме - тем больше точек отказа, тем более, если верить этому: https://docs.microsoft.com/ru-ru/aspnet/core/, то ASP.NET Core поддерживает IIS, Apache и Nginx.
77. Evil Beaver 6294 05.01.18 11:43 Сейчас в теме
(75) это не огород, а один из вариантов развертывания. Tomcat для Java вас же не смущает? Чем kestrel отличается? Внутри контейнера - удобен свой легковесный сервер, перед ним - nginx. Можете заменить kestrel Апачем или IIS, дело вкуса. Я может отстал от жизни, в моей картине мира nginx не умеет отдавать динамику и требует более тяжелый сервер а-ля апач /tomcat позади себя, не?
78. oldcopy 122 05.01.18 22:30 Сейчас в теме
(77) Меня не устраивает любое усложнение системы. Контейнеры хороши для разработки и тестирования, в продакшене часто это лишнее. Есть хороший принцип Бритвы Оккама: "Не стоит множить сущности без необходимости". Если в инфраструктуре есть рабочий веб-сервер, то почему-бы не озадачить его?

(77)
Я может отстал от жизни, в моей картине мира nginx не умеет отдавать динамику и требует более тяжелый сервер а-ля апач /tomcat позади себя, не?


Вы путаете веб-сервер и сервер приложений. Задача веб-сервера - отдать HTML, не более и не менее. Динамика создается сервером приложений, который может быть модулем веб-сервера (Apache - яркий пример) или взаимодействовать с ним по CGI/FastCGI и т.п.

Почитал немного матчасть, Kestrel (как и Tomcat) - это не веб-сервер, это сервер приложений с функциями веб-сервера, его задача - собирать и отдавать динамическое содержимое. Хотя, если быть точным, то Kestrel - прокладка между HTTP и Asp.net. Выставлять это наружу я бы не рисковал. Наиболее правильное решение повесить Kestrel на UNIX-сокет, а перед ним поставить NGINX.

На Windows работу веб-сервера логично повесить на IIS, а Kestrel также спрятать внутри.

В общем контейнер не нужен, достаточно собрать приложение и соединить его с любым веб-сервером. А ему обрубить все сетевое общение, кроме как с localhost.
79. Evil Beaver 6294 06.01.18 01:32 Сейчас в теме
(78) да, именно так. Просто я под словом "веб-сервер" понимал именно http-приложение. Его, конечно же не стоит выставлять в интернет напрямую.

Для работы контейнер не нужен, можно собрать и запустить EXE, ну об этом я уже писал выше, повторяться не стоит.
64. DrAku1a 1301 03.01.18 17:54 Сейчас в теме
Вообще, тема интересная и нужная! Не всё ж на 1С бухгалтерии да зарплаты считать.

Однако, отмечу, что 1С уже довольно давно внедрила HTTP-сервисы и активно допиливает инструменты для работы с данными на уровне платформы (JSON, XML, Двоичные данные). И также, довольно давно уже есть публикация "Мини-сайт на http-сервисах".
В качестве "движка" - используется всеми нами любимая 1С в связке с Web-вервером (аппач или IIS), причём, можно развернуть как для файлового варианта, так и для серверного. Разрабатывать сложно (нужно погружаться в HTML/CSS/JS и т.п.), но развёртывание сервисов - занимает совсем немного времени.
67. Evil Beaver 6294 04.01.18 01:58 Сейчас в теме
(64) ну как бы да. И что с того? Для сервиса вам надо поставить апач, 1С, настроить связку, прикрутить лицензии, написать код. В движке 1script вам надо только создать 1 файл с логикой сервиса на языке 1С и сделать docker up.
72. Perfolenta 04.01.18 12:44 Сейчас в теме
Я вот не понимаю, откуда в наших людях такое неверие в собственные силы? Когда-то вот такие же люди приняли решение копировать серию ЕС ЭВМ, вместо развития своих решений... все у них на западе трава зеленее... а она там и зеленее потому, что тамошние мужики берут и развивают новинки сделанные своими коллегами...
Андрей сделал отличную штуку, нет что бы порадоваться, поддержать и засучить рукава, так начинается нытье, производительность подкачала.... где подкачала? Сначала сделайте что-то из предложенного варианта, а потом скажете, что вот у меня тут производительности не хватает...
Прошу простить за эмоции...
Мои маленькие вебсервисы/сайты, у клиентов, сделанные в дополнение к базам 1С уже десятилетиями работают, многие еще на простом ASP... пережили без изменений смену платформ и конфигураций 1С, так что не все надо на 1с делать... что-то может быть автономным... а на 1Скрипте это будет приятней делать, чем на других языках...
shalimski; Evil Beaver; z86; JohnyDeath; +4 Ответить
73. Perfolenta 04.01.18 12:57 Сейчас в теме
Кстати, на счет производительности... недавно протестировал вычисление чисел Фибоначчи на 1с 8.3.11 и на 1Скрипте.. код один и тот же, вот что получилось:
//Вычисления с рекурсией для числа 20, 1000 циклов
//Компилируемый язык 0,054 сек.
//1С 273,000 сек.
//OneScript 11,792 сек.

//Вычисления без рекурсии для числа 20, 1000000 циклов
//Компилируемый язык 0,052 сек.
//1С 184,000 сек.
//OneScript 17,503 сек.

Кому производительности OneScript не хватает? Этот тест, конечно, не общую производительность оценивает, а только циклы, условия, работу с переменными и сложение... но все же движок OneScript очень достойный!
Evil Beaver; +1 Ответить
74. Evil Beaver 6294 04.01.18 13:57 Сейчас в теме
(73) Спасибо! Мы тоже крутили разные тесты, в т.ч. парсинг текстов. Скорость 1Script на уровне "взрослых" скриптовых языков, и часто существенно опережает интерпретатор 1С.
76. Perfolenta 05.01.18 02:26 Сейчас в теме
(74) Да, жалобы на производительность явно мимо кассы... Думаю, что на парсинге текстов и полноценный компилятор покажет сравнимую производительность, т.к. большую часть времени сожрут библиотечные строковые функции и накладные расходы скриптовой машины будут не слишком высоки... интересно было бы сравнить на одном и том же коде и тех же данных... если у вас есть такой тест парсинга и не жалко, киньте в личку...
Оставьте свое сообщение

См. также

Распаковка хранилища значений средствами MS SQL Server 15

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) MS SQL Абонемент ($m) Практика программирования

Способ извлечения данных из 1С-ного "ХранилищеЗначений" в MS SQL Server с помощью самописной скалярной функции (без использования платформы 1С).

1 стартмани

23.09.2019    2276    SerVer1C    11       

Расширяем возможности MS SQL Server с помощью хранимых процедур CLR 8

Инструменты и обработки Программист Архив с данными MS SQL Абонемент ($m) Практика программирования Разработка

Не хватает какого-то функционала на скуле для обработки данных? Тогда он (новый функционал) идет к вам.

1 стартмани

02.09.2019    2920    SerVer1C    9       

Упражнения на Перфоленте. Парсим технологический журнал 1С 20

Статья Системный администратор Программист Архив с данными Windows Абонемент ($m) Сервисные утилиты Инструментарий разработчика Практика программирования Разработка

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

1 стартмани

31.07.2019    3088    Perfolenta    62       

В 1000 раз быстрее 12

Статья Программист Архив с данными ИТ-компания Windows Абонемент ($m) Практика программирования Разработка

Реализация алгоритма трассировки лучей на новом языке программирования "Перфолента"

1 стартмани

24.07.2019    2325    vasvl123    6       

Перфолента, первое знакомство. Новый язык программирования 128

Инструменты и обработки Программист Приложение (exe) Windows Абонемент ($m) Практика программирования Инструментарий разработчика Разработка

Первое знакомство с новым языком программирования Перфолента. В статье описано назначение языка, причины его появления, основные характеристики и возможные варианты использования.

22.07.2019    13752    86    Perfolenta    154       

Вам нравятся запросы в 1С? 13

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    9208    1    m-rv    73       

Безопасная работа с транзакциями во встроенном языке 184

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Разработка

Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку "В данной транзакции уже происходили ошибки". Учимся защищаться от них.

1 стартмани

25.03.2019    13446    7    tormozit    35       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 513

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    25378    244    bonv    108       

Настраиваемое мобильное приложение для сканирования штрихкодов 10

Инструменты и обработки Программист Приложение (apk) Android Абонемент ($m) Практика программирования Сканер штрих-кода Мобильная разработка

Обзор приложения для сканирования штрихкодов с возможностью обработки результата сканирования произвольным кодом для совместного использования с Android приложениями через Intent и взаимодействие с 1С конфигурациями через web-сервис.

1 стартмани

14.01.2019    3638    2    inord777    5       

Разработка внешних компонент на ассемблере goAsm 128

Статья Программист Архив с данными Windows Абонемент ($m) Практика программирования

Создание внешней компоненты по технологии Com "с нуля", используя ассемблер goAsm.

1 стартмани

26.11.2018    7347    6    chessman    40       

Работа с публикациями "Инфостарт" 13

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    8278    10    RocKeR_13    12       

Создаем объекты для модуля Bootstarp на Русском Фоксе 3

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Практика программирования

Создавайте свой модуль с объектами для модуля Bootstrap, пакуйте их fxp-файлы и создавайте сайты из этих кубиков. Разберем, как это делать. Все гениальное должно быть простым, как теория относительности.

1 стартмани

19.08.2018    3642    andreosh    2       

РусскийФокс и BootStrap 3

Инструменты и обработки Программист Архив с данными Россия Абонемент ($m) Практика программирования

РусскийФокс вносит новый технологический подход в сайтостроение. Теперь вы можете ограничиться знанием Русского Фокса и не иметь знаний по HTML, CSS, JavaScript, PHP, чтоб создавать сайты.

1 стартмани

16.08.2018    3946    2    andreosh    18       

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 63

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    14825    23    informa1555    26       

РусскийФокс. Изменение DBF-файла и назначение командных клавиш 1

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Практика программирования Файловые протоколы обмена, FTP

- Шарапов, ты Русского Фокса знаешь ? - Конечно, Глеб. Я же программирую на Русском Фоксе. РусскийФокс (1C-подобный язык программирования) создает DBF-файлы и выгружает данные из DBF в XML.

1 стартмани

01.08.2018    3846    andreosh    2       

РусскийФокс. Создание DBF-файла, выгрузка в XML. 3

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Практика программирования

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . РусскийФокс создает DBF-файлы и выгружает данные из DBF в XML. Голосуйте за доклад о РусскийФокс на Инфостарт.

1 стартмани

28.07.2018    3497    2    andreosh    0       

РусскийФокс и ClickerMann заносят данные в 1С 5

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Сервисные утилиты Практика программирования

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . РусскийФокс создает сценарии для Clickermann. Сценарий заполняет справочник в 1С.

1 стартмани

21.07.2018    6271    1    andreosh    20       

Работа с данными выбора 38

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    19987    13    kalyaka    15       

РусскийФокс и OpenOffice, а также исследование объектов 5

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Практика программирования

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . Взаимодействие с OpenOffice. GitHub https://github.com/UfaScript/RusFox

1 стартмани

12.07.2018    3826    1    andreosh    2       

РусскийФокс. Настройка NotePad++, 1C-подобные функции и операторы и создание объектов 11

Статья Программист Архив с данными Россия Windows Абонемент ($m) Практика программирования Математика и алгоритмы

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. Создание объектов и настройка NotePad++. GitHub https://github.com/UfaScript/RusFox

1 стартмани

06.07.2018    7360    1    andreosh    12       

РусскийФокс — 1С-подобный язык программирования 8

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Практика программирования Математика и алгоритмы

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. Знакомство.

1 стартмани

03.07.2018    6210    1    andreosh    50       

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") 105

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    19110    86    m-rv    57       

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному 236

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования БСП (Библиотека стандартных подсистем)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    26405    24    dsdred    34       

Как выполнить отчет на СКД через COM и получить данные отчета? 86

Статья Программист Архив с данными v8 УПП1 Россия Windows Абонемент ($m) Практика программирования

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

2 стартмани

08.05.2018    17310    10    wowik    3       

Работа со схемой запроса 171

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

Стандартом взаимодействия с реляционной базой данных стал язык SQL. Приемником SQL в 1С является язык запросов. Язык запросов, также как и SQL, является структурированным. Составляющие структуры запроса отвечают на разные вопросы о том, какие данные требуется получить и какие манипуляции с множествами данных необходимо произвести при получении. В простых случаях текст запроса можно написать вручную, однако в сложных случаях, а также при программном формировании, - лучше воспользоваться объектной моделью запроса и использовать объект "Схема запроса". В статье дается описание объектной модели и особенностей работы с ней, а также приводится решение, упрощающее взаимодействие с объектом "Схема запроса".

1 стартмани

24.04.2018    27326    72    kalyaka    34       

Длинная арифметика (Bignum arithmetic) c COM-интерфейсом (ActiveX) на библиотеках MPIR 4

Инструменты и обработки Программист Архив с данными Россия Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Расчеты любой точности в вашем программном продукте, поддерживающем стандарт COM. Размер/точность длинного числа зависит только от вашей оперативной памяти. Проект основан на исходниках библиотеки MPIR, Edition 3.0.0. Полностью написан на С/С++ (COM.DLL).

1 стартмани

12.04.2018    3672    1    bedvit    4       

Веб-разработка на 1Script. Глава 1 250

Статья Программист Нет файла Бесплатно (free) Практика программирования

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

12.02.2018    25602    Evil Beaver    97       

Заполняем по шаблону (по умолчанию) 68

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

Простой в подключении, универсальный и достаточно удобный механизм заполнения реквизитов произвольных документов/справочников значениями по умолчанию. Реализован в расширении, но может быть и непосредственно включен практически в любую конфигурацию на управляемых формах простым копированием одной формы и двух команд. Весь код в статье.

1 стартмани

08.02.2018    17482    20    mvxyz    17       

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов 122

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    24355    61    rpgshnik    46       

Программное создание динамического списка на управляемой форме. (Динамическое создание динамического списка). Готовая процедура + обработка - демонстрационный пример 269

Статья Программист Внешняя обработка (ert,epf) v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

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

1 стартмани

19.01.2018    37975    55    rpgshnik    26       

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула 8

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Практика программирования Универсальные функции

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    21529    21    agent00mouse    0       

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП 26

Инструменты и обработки Программист Расширение (cfe) v8 БП3.0 Абонемент ($m) Практика программирования Универсальные печатные формы

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    17915    52    kwazi    6       

Программа для изменения осей движения мыши - IMouse 4

Инструменты и обработки no Архив с данными Россия Windows Абонемент ($m) Практика программирования

Программа предназначена для изменения движения курсора мыши.

1 стартмани

10.08.2017    8833    1    GubinDenis    12       

Правила и приемы доработки типовых конфигураций 1С для облегчения их дальнейшей поддержки и обновления 147

Статья Программист Архив с данными Абонемент ($m) Практика программирования

В первую очередь, статья адресована разработчикам 1С, но надеюсь, что интересно будет не только им.

1 стартмани

18.07.2017    27785    786    Tavalik    58       

Расширения конфигураций 1С: учимся перехватывать методы 110

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

30.05.2017    82240    14    signum2009    45       

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов 175

Статья Программист Архив с данными v8 1cv8.cf Россия Абонемент ($m) Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    38484    166    DarkAn    86       

СКД. Использование встроенного макета, разделителя страниц 2

Инструменты и обработки Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Windows Абонемент ($m) Практика программирования

Пример работы с макетом СКД для начинающих программистов. За основу взят справочник подразделений, который есть в большинстве конфигураций. Показано, как вывести заголовок, детальные записи, подвал группировки и общий подвал. Приведен пример вставки разделителя страниц. Отчет можно использовать в любой конфигурации 1С: 8.

1 стартмани

31.03.2017    10592    14    Vin_Tik    0       

Простой способ индексирования интервалов 181

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) Практика программирования

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

1 стартмани

28.09.2016    31700    39    ildarovich    22       

1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут 61

Инструменты и обработки Системный администратор Программист Компонента, плагин (dll, vbs,..) v8 Windows Абонемент ($m) Практика программирования

Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании

1 стартмани

14.08.2016    38176    35    Demanoidos    60       

Программа "Назад в прошлое" 4

Инструменты и обработки no Приложение (exe) Windows Абонемент ($m) Практика программирования

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

1 стартмани

24.06.2016    9364    3    fierylions    1       

Хранение файлов в томах на диске (для УПП 1.3) 76

Инструменты и обработки Программист Архив с данными v8 УПП1 Windows Абонемент ($m) Практика программирования

Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных

2 стартмани

05.06.2016    43608    4    wowik    27       

Остатки на каждый день в запросе 34

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf УУ Windows Учет ТМЦ Абонемент ($m) Практика программирования

Запрос формирует остатки товаров на каждый день в пределах выбранного периода.

1 стартмани

26.04.2016    34088    19    arakelyan    17       

Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии 149

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Практика программирования

Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)

1 стартмани

22.03.2016    60296    132    igo1    49       

Количество дней недели (понедельников/вторников/...) в заданном диапазоне одним запросом 29

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Практика программирования

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

1 стартмани

03.03.2016    12053    1    Alexander.Shvets    5       

Групповое изменение изображений (размер, ориентация и переименование) 1

Инструменты и обработки no Архив с данными Windows Абонемент ($m) Практика программирования

Программа для группового изменения размера, ориентации изображений

1 стартмани

24.02.2016    6310    5    infoprograms    2       

Простые радости жизни программиста 1С: выбор типа значения 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.02.2016    38597    45    yuraos    17       

Яндекс.Деньги "Благотворительность" 17

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.

1 стартмани

16.02.2016    17247    9    Tatitutu    5       

Удобная база знаний для программиста 1С. "Шаблоны текста" в WEB-е 22

Инструменты и обработки Системный администратор Программист Архив с данными Абонемент ($m) Инструментарий разработчика Практика программирования

Справочник для программиста 1С. (WEB) Легко и быстро вести "дневник" программиста. Одним кликом редактировать статьи, примеры кода. Сохранять обработки и добавлять к ним описания.

1 стартмани

28.01.2016    13165    26    Farzar    15       

Мастер рассылки e-mail 2.2 для управляемых форм 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ ERP2 БП3.0 УТ11 Абонемент ($m) Практика программирования Email

Для пользователей: переделанный из старый разработки под 8.2 с использованием библиотеки Мастер рассылки e-mail 2.2 (ERP, УТ, БП) (Только управляемые формы), который теперь может запускаться под любой версией платформы с разрешенными или запрещенными модальными/синхронными вызовами в конфигурации. Также удобный выбор e-mail и их владельцев с помощью отбора динамического списка по любым критериям и галочки исключения.

1 стартмани

29.12.2015    30486    20    milkers    4