Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.
Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.
Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.
Есть онлайн демо:
https://constructor.typeser.com/habr - онлайн erp конструктор-конфигуратор
https://typeser.com/habr - рантайм
Часть заявленного функционала хоть и присутствует в качестве настроек конфигуратора, но еще не работает.
Из этого мог бы получиться отличный стартап, и можно было бы заявить - "Главная проблема неудач выхода 1С на западный рынок тут решена! Внутренний язык - не странный язык 1С, а популярный язык - TypeScript!". Но оно так не работает. В реальности - нужны инвестиции чтобы отточить и оттестировать функциональность, сделать пару коробочных отраслевых решений.
На текущем этапе реальная ценность платформы(а точнее mvp) - хорошее портфолио для поиска работы на должность Senior Full-Stack Developer.
Если кто предложит способ повысить ценность (предложит реального клиента ищущего аналог платформы 1С или бизнес-партнера который согласится финансировать разработку) - буду премного благодарен.
Ниже идет перевод с английского раздела "о проекте" в job-резюме:
Typeser Web Platform — это универсальный инструмент для управления полным жизненным циклом продукта.
Разработка: Дизайн, создание и редактирование структуры ERP системы
Развертывание и публикация в один клик
Работа в разработанной ERP
Цель платформы — ускорить и удешевить разработку ERP-систем, предоставить возможность гибкой и прозрачной предварительной настройки и доработки систем на любом этапе жизненного цикла ИТ-продукта.
Преимущества среды разработки:
Cloud IDE — если у вас есть веб-браузер, вы готовы к работе.
методы конфигурации компонентов и привязка данных к пользовательскому интерфейсу без кода (в основном с помощью мыши)
Презентабельную ERP-систему (готовый mvp) можно построить без единой строчки кода или запроса к базе данных.
Низкие стартовые требования к квалификации разработчиков Typeser-окружения
в случае кастомного исходного кода (обработка событий UI) и кастомного SQL-запроса (триггеры, просмотр, безопасность уровня записи) платформа предоставляет все необходимые инструменты для синтаксического контроля и выбора доступных полей и функций, в том числе вновь добавленных и не но сохраненные таблицы, поля, элементы пользовательского интерфейса со строгой проверкой типов (TypeScript для кода модулей и MySql для запросов к БД)
Лучшая TypeScript ORM для фронтенда, не имеющая аналогов
Отсутствие пользовательского кода, исполняемого на сервере. Триггеры SQL, безопасность на уровне просмотра и записи могут полностью покрыть эту функциональность, а также ускорить и снизить стоимость разработки.
Преимущества среды выполнения: скорость, встроенный функционал и единообразие интерфейсов в различных конфигурациях.
Состав платформы
Визуальный конструктор ERP (реализован на том же движке пользовательского интерфейса),
движок пользовательского интерфейса
Портал - выполняет функции авторизации и навигации внутри платформы
-
Серверная Java на AWS Elastic Beanstalk
портал,
движок (мультиэкземпляры)
MySql (мультиэкземпляры) на AWS RDS
Фичи портала
архитектура без файлов cookie: портал показывает iframe, содержащий сайт среды выполнения. Токены данных передаются с портала в iframe. Эта архитектура позволяет размещать различные базы данных с их пользовательским интерфейсом b собственным src в одном origin.
Встроенная google авторизация
В режиме конструктора портал предоставляет функции сохранения/восстановления данных на локальный ПК
Основные функции и инструменты конструктора
-
Визуальный редактор древовидной структуры метаданных и реквизита. Список компонентов:
Subsystems (подсистемы),
Entity(database tables, сущности: спрачники/документы),
Forms: Common and Entity(for Object/Choice/List),
Enums,
View,
Registers,
Common modules
read-rls(record level security) sql query
SQL triggers on write record (ErrorReporting, UpdateRegister)
View SQL query
-
визуальный редактор форм с отрисовкой результата на лету
Автопривязка DB data ←→ form data
Атрибуты формы: (примитивы, Ссылки, EntityObject (с атрибутами объекта и табличными разделами), DynamicTable (Entity/Enum/View))
Перетаскивание и привязка данных формы → элементы формы
Команды автоформы и пользовательские команды → кнопки
добавление и генерация event listeners для элементов формы
Широкое использование автотехник: автогенерация форм, автоматические значения свойств, автоматически доступные команды, автоматическая обработка событий
Наличие встроенных компонентов пользовательского интерфейса, необходимых для построения ERP-систем (поля данных форм, статические и динамические ui-списки с полями левого соединения любого уровня и т.д.)
Классификаторы примитивного типа данных (String, Number, Boolean, Date) qualifiers: length / allowedLength / digits / fractionDigits / allowedSign / dateFractions
Предварительные настройки при добавлении нового entity объекта метаданных (Каталог, Документ, Набор констант)
Интерактивное создание пользовательских обработчиков событий для элементов формы и команд.
Группировка, упорядочивание и переименование метаданных доступны на всех уровнях.
Автоматическое добавление стандартных атрибутов таблицы (ref, description, codePrefix, code, date, parent, isFolder, owner, order,posted,postedDate,deletionMark, version) в зависимости от характеристик таблицы (descriptionLength, descriptionSynonym, usingCode(Yes/ No/YesWithPrefix), codeLength, codePrefixLength, usingDate(No/DateTime/Date/Time), иерархический тип (No/HierarchyOfItems/HierarchyFoldersAndItems), владельцы, usingOrdering, usingPosting)
Исходный код и SQL триггеры
Особая благодарность Microsoft за Monaco Editor и Typescript
Код SRC в редакторе строго типизирован и автоматически подбирается под доступные методы и поля.Typeser генерирует Typescript-интерфейсы на лету для всех используемых метаданных.
(EntityRef/EntityObject<..> /Enums<..>/View/metadata fields)Синтаксический контроль и автовыбор доступного исходного кода в обработчиках событий с учетом структуры текущей конфигурации и формы и доступных параметров обработчика.
Асинхронный ORM для getEntityObject и queryForList с типизированным результатом и автоматическим добавлением левых соединений к полям/выборкам/сортировке
Генерация дерева хелперов при редактировании запросов к БД (доступные таблицы, поля, разрешения контекста выполнения запроса)
Простая разработка пользовательских разрешений и RLS (безопасность на уровне записи) - Гибкая и условная безопасность для чтения и записи данных
Язык MySQL выбран намеренно, так как его проще использовать разработчикам конфигурации. Однако при необходимости разработки корпоративных решений его можно заменить другим (PostgreSQL, MSSQL и т.д.)
Функциональность для развертывания и администрирования
Автоматическое создание и реструктуризация базы данных по структуре метаданных и заданным типам атрибутов
Параметр authorizationMode (OwnerOnly / ManualGrantingRequired / EmailAuthenticationRequired / AnonymousAccessAllowed / AnonymousAccessAndOpenConfiguration)
сущности Users and UserAccessGroups включены в пустой шаблон конфигурации → функции sql-permission
Легкий старт. Перейдите на https://constructor.typeser.com/new (или на свой сайт вместо «new»), выберите исходный шаблон и нажмите «Deploy». Новый сайт с новой демо-системой erp будет развернут по адресу https://typeser.com/your-site-name. Существующая демонстрационная конфигурация и сайт находятся по адресу https://constructor.typeser.com/demo1 https://typeser.com/demo1 В настоящее время поддерживается только desktop браузерами chrome/edge.
Ключевые особенности Run-time
Автоматическая генерация интерфейса для навигации между формами в соответствии с включением общих форм, форм списка сущностей и представления в подсистемах.
Автоматическая генерация форм (список, выбор, объект) для таблиц сущностей, если формы по умолчанию не определены
Автоматическое добавление необходимых элементов в автоформы (динамические таблицы, поля, таблицы значений, flex-группы, вкладки) и стандартные команды (кнопки и панели команд)
Автоматическая выборка данных при прокрутке без разбиения на страницы для динамической таблицы и дерева со встроенной сортировкой и фильтрацией
Открытие формы-объекта для редактирования объекта из динамической таблицы
Редактирование данных формы в полях формы и таблицах значений.
Выбор значений ссылочного типа (в том числе многотипных) из выпадающего списка/формы-списка
smart-background-batch-auto-update обновление представлений ссылки и данных, помещенных в форму через левое соединение при выборе/изменении (обновление происходит в фоновом режиме при прокрутке или изменении данных формы пользователем или кодом пользователя)
Автоматические представления ссылок из пользовательского шаблона
Техника no-code для выбора и автонабора данных в поля (choiceParameters: связать фильтрацию выбора с текущими данными формы)
Интеллектуальный повторный рендеринг пользовательского интерфейса при изменении атрибута и свойств элементов формы
Кэширование метаданных конфигурации, метаданных формы и исходного кода в виде отдельных модулей в браузере.
Автонумерация сущностей (включая с префиксацией)
Управление версиями объектов — предотвращение сохранения объекта, если тот же объект был изменен в другом сеансе.
Сильно не пинайте. Это мой первый пост на habr.com
Комментарии (19)
Naf2000
21.11.2022 21:12При попытке Deploy: Errors while deployment ts is not defined
mike-oh Автор
22.11.2022 02:00Аналогично - проблемма с сетью. Проверьте - нет ли ошибок во время загрузки модулей.
typescriptServices.js весит 10.8 MB и считывается единожды.
Время первоначальной загрузки конструктора в том же регионе вполне приемлемо и выглядит следующим образом:
DMGarikk
22.11.2022 12:27+4«Главная проблема неудач выхода 1С на западный рынок тут решена! Внутренний язык — не странный язык 1С, а популярный язык — TypeScript!»
это не главная причина неудач, главная причина в маркетинге и не более. рынку нужен готовый продукт, а не конструктор для программиста
===
очень часто вы аббревиатуру ERP система используетеВ реальности — нужны инвестиции чтобы отточить и оттестировать функциональность, сделать пару коробочных отраслевых решений.
Да всеголишь, бахнуть пару ERP решений, всегото… 1Сники чето там с УПП десятилетиями мучаются, саму по себе конфу 1C ERP поднимают со скрипом, недостижимый SAP, стандарт отрасли — огроменный монстр… почемуже? почему никто его не заменит простым микросервисом на питончике?
вы представляете себе что такое ERP решение? это тысячи и десятки тысяч документов, миллионы строк в табличных частях, сложные аналитические выборки по этим данным
1С тормозит не потому что там 'криворукие, надо всеголишь взятьпростой советс..тьфу и надо было написать просто SQL запрос в БД и сразу все залетает'
при таких нагрузках начнут выплывать всякие забавные штуки, которые вы явно спихнете на программиста 'конфигураций' — типа 'пущая на sql сами такие выборки делают'… и ваш убийца 1С пополнит ряд такихже продуктов
потому что в описании вы делаете упор на интерфейс, расстановку контролов, шаблоны, а БД выбираете по принципу 'как юзеру проще', а не 'что будет если я посчитаю среднюю цену каждого товара на каждую номенклатуру в разрезе групп контрагентов на период 5 лет при условии что у нас ежедневно по 10тыс отгрузок' — и чтобы оно не 5 суток отрабатывало и не требовало 50гигабайт памяти и не лочило таблицы
Именно Это ERP, а не красиве поля и формыmike-oh Автор
22.11.2022 16:19Я 2 года работал в самой 1С на универсальных механизмах в типовых конфигурациях, в том числе на УПП. Так что представляю.
Кроме того я знаком с людми, которые пытались 1с на западный рынок вывести. Язык 1с это главная проблемма с их слов.
В тексте ни разу не говорилось про убийцу 1С, аналог - возможно но и то с натяжкой.
Ни какой продукт в эти годы не повторит успех 1С, Microsoft итд. Речь идет о том что срздать пару отраслевых решений и заработать свой профит.
А про нагрузку в больших базах. Вот тут точно не переживаю. MySql можно сменить на что угодно, посмотреть в профайлере - а как там у 1С и сделать так же вообще не проблемма. Но более интересный сценарий - продаться тому же amazon, уж с большими данными они получше 1с справляются.
DMGarikk
22.11.2022 16:57+1Я 2 года работал в самой 1С на универсальных механизмах в типовых конфигурациях, в том числе на УПП. Так что представляю.
вы разрабатывали саму платформу? а я участвовал в интеграциях 1С в реальных компаниях.Кроме того я знаком с людми, которые пытались 1с на западный рынок вывести. Язык 1с это главная проблемма с их слов.
они не в курсе что там по английски программить можно? или забугорные программисты от VB-шного синтаксиса кривятся? (погуглите популярность visual basic по странам, удивитесь)Речь идет о том что срздать пару отраслевых решений и заработать свой профит.
таких проектов целый вагон на все случаи жизни уже умерло, создано и продолжает создаваться
ваш проект не уникален и как стартап я в нем смысла особого не вижу…А про нагрузку в больших базах. Вот тут точно не переживаю. MySql можно сменить на что угодно,
Если вы думаете что для больших нагрузок достаточно поменять вид БД, и быстренько в профайлере поменять запросы, то у меня плохие новости, вы явно не в курсе как работают БД на огромных объемах данных
Вы же работали в 1С, вы не в курсе сколько лет 1С борола проблемы с блокировками базы? Почему до сих пор 1С 'нормально' поддерживает только MSSQL а потом уже postgre, а те кто рискнул юзать oracle и DB2 это отчаянные эксперементаторы? вы не помните проблемы времен когда были еще массово распространены файловые БД у 1С, и была разница в запросах на SQL она работает или в файловой базе? хотя казалось бы, 1С и так минимально юзает хостовую БД, буквально только select update и insert но и этого хватает чтобы глюки по совместимости лезлиНо более интересный сценарий — продаться тому же amazon, уж с большими данными они получше 1с справляются.
«они профессионалы» © ;)
Ну желаю вам найти инвестора конечно, хотя продукт и цель очень забаяненнаяmike-oh Автор
22.11.2022 17:09вы разрабатывали саму платформу?
Нет. Я был именно конфигураторщиком. js, ts, java освоил уже после переезда. 1С-Эксперт сертификат(единственный) у меня есть. И большой опыт реальных внедрений. тут мое резюме из прошлой жизни https://hh.ru/resume/17af432aff022a032a0039ed1f314c525a757a
они не в курсе что там по английски программить можно? или забугорные программисты от VB-шного синтаксиса кривятся? (погуглите популярность visual basic по странам, удивитесь)
Все в курсе. Но продать не могли даже до политических причин. "Like vb" это не то же самое что "is vb"
хотя продукт и цель очень забаяненная
А вот тут хотелось бы поподробнее. Можете ли мне прислать хоть одну ссылку где я через web могу зайти в конфигуратор и начать кодить нечто похожее на 1С.
На сколько я знаю такого не было даже у битрикса. Но опять же битрикс не западная компания. Он как и 1С не в счет, даже если бы у него такая возможность была.
DMGarikk
22.11.2022 17:34+1И большой опыт реальных внедрений
Хм, беру свои слова обратно, хотя меня крайне удивляет ваша точка зрения на проблематику задачи. я когдато думал также, что эт очень круто когда ты можешь кастомизировать систему… но с годами понял что совершенно не основная ф-цияА вто тут хотелось бы поподробнее. Можете ли мне прислать хоть одну ссылку где я через web могу зайти в конфигуратор и начать кодить.
Это не нужно, ну вот совсем просто не нужно
Я даже не знаю как привести правильный пример… вы слышали что сейчас тренд к nocode решениям?
Я до недавнего времени работал в крупной штатовской конторе которая электронные документы делает (до нашего ЭДО им как до космоса), очень популярный продукт, вся кастомизация через внешнее АПИ и планы по построению космолета который будет включать в себя расширения всего чего угодно через механизм модулей и магазина где они продаются.
Чтобы клиент зашел, натыкал себе в магазине модулей, подключил через интеграцию любимую CRM (конкретно я одну из таких интеграций делал) и бухгалтерскую программу и все сразу заработало. никаких конфигураторов и кодонаписания. все интерактивные поля добавляются мышкой и идентификатороы копипастой копируются в сторонние системы
Я общался в т.ч. и с клиентами (из США), никто из них не заикался о том чтобы самим чето там напрограммить или какието запросы писать, зачем? есть сервис построения бизнеспроцессов (вылетело из головы название уже), есть какаянить CRM типа хабспот, есть эта наша штука которая их всех объединяет в одну кучу в рамках документов-заказов… пара часов тыкания мышкой с квадратиками — и вуаля миниучетная система
главный фокус в том что там не надо считать какието дикие налоги по сложным правилам и делать термоядерные отчеты… у нас расчет двух налогов был в старом монолите захордкожен прям в коде типа TAX = price*amount*tax_percent и всё блин дальше суммирование по табличкам общих цифр, и этого хватало для 95% клиентов… меня это крайне обескураживало что я писал вопросы аналитикам — а может им надо както сложно налоги считать и стоит унифицировать процесс? и встречал недоумение и непониманиеmike-oh Автор
22.11.2022 17:46никто из них не заикался о том чтобы самим чето там напрограммить
Это я понимаю, а по тому и платформу рассматриваю скорее как инструмент для создания тиражных или кастомных конфигураций но своими силами. Как конфигураторщик я являюсь большим экспертом чем платформщик. Ну и порог входа разработчиков сюда ниже, а значит легче нати людей за меньшие деньги. Заказы найти наверное тоже можно быстро и просто. Но нужен какой то старт. У меня к сожалению такого опыта нет совсем.
DMGarikk
22.11.2022 18:09у меня был когдато пет-проект, я делал для себя платформу для создания медиасистемы для автомобиля, чтобы взять, грубо говоря raspberry, пару ардуинок, экран, в веб конфигураторе натыкать модулей, там будет подсказка какие провода куда поключить, потом подргузить программные компоненты (спидометр, трекер gps, чтение ошибок odb2, музыкальный плеер, программу трекинга для грузовых авто)
т.е. некая такая платформа как 1С но для железок, чтобы можно было собрать или медиасистему дла легкового авто или штуковину для мониторинга грузового автотранспорта, причем этакий комбайн… я даже пытался пропихнуть его как сервис отправки заявок и мониторинга автомобилей скорой помощи. (там не срослось по другой причине, хотя люди были всеми руками за)
Я с этим проектом ходил и в Сколково, еще в несколько фондов и к разным инвесторам… и знаете чего? а ничего! никтому не интересны проекты таких платформ,
инвесторам интересны уже готовые решения, т.е. мне надо было приходить уже с готовым продуктом стоящим на автомобиле, а на мониторе оператора была АРМ или таксопарка или логистической компании
Я уже даже начал собирать оборудование для этого, но мой бизнес развалился и проект мне пришось поставить на паузу… вероятно уже навсегда
По этому я сделал вывод — что если пытаться делать такие штуки — делать надо сразу готовый продукт для конечного пользователя, потОМ уже развивать на этой платформе другие продукты-решения… и уже потоОООМ продавать лицензии на то чтобы другие люди использовали вашу платформу…
да что далеко ходить, этот путь прошла 1С, сама написал первые конфигурации, без них никогому не нужны были первые, довольно кривые версии платформы… и только семерка стрельнула уже как полноценная платформа только потому что на базе БП и ТиС стали делать свои решения, и уже после писать с нуляmike-oh Автор
22.11.2022 18:22Про сколково - оно находится в специфичной стране.
А вот про готовый продукт - согласен если пытаться продавать именно продукт, а не услуги по разработке.
Следующим шагом буду пытаться продать свои
продуктуслуги разработки стартапам без ИТ команд через Y-combinator или им подобным. Конечным бизнес клиентам пока рано продаваться - много что нужно доделать.
CyaN
22.11.2022 15:19+2"Главная проблема неудач выхода 1С на западный рынок тут решена! Внутренний язык - не странный язык 1С, а популярный язык - TypeScript!".
Это вы еще ABAP не видели. А уж интерфейс саповский как только не ругают айтишники. Но почему-то это не мешает SAPу быть лидером.
Интерфейсы и удобство разработки это конечно хорошо (для разработчика), но задайте себе вопрос - а чью проблему решает внедрение ERP/CRM/MDM/etc? Подсказка: это не ИТ, и даже не пользователи системы.
mike-oh Автор
22.11.2022 16:25Могу согласиться с тем что ERP constructor звучит пафосно и не точно. Посоветуйте - как переименовать, чтоб западному рынку было понятно и интересно.
В моде тут нынче nocode. Даже не смотря на то что он многое ни как не покроет.
Тут же представлено нечто среднее Nocode + typescript
timka05
А что со скоростью? Это хараэффект или что? Вначале подумал демки вообще не работают. Оказалось ну ооооочень медленно.
mike-oh Автор
Вероятно у Вас проблеммы с сетью (не стабильный доступ к AWS us-east).
timka05
В общем проблем с сетью нет. Что там конкретно с AWS us-east - не знаю.
Судя по тому, что проблема не у меня одного - всё же что-то не так.
mike-oh Автор
Данное решение - не production и расположено на бесплатных инстансах amazon.
У Всех моих знакомых проживающих в Москве все в порядке.
В любом случае речь сейчас не о производительности а о самом решении как таковом.