Как стать автором
Обновить

Typeser: 1С-like ERP-конструктор на базе TypeScript

Время на прочтение 6 мин
Количество просмотров 6.4K

Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.

Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.

Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.

https://typeser.com

Есть онлайн демо:

Часть заявленного функционала хоть и присутствует в качестве настроек конфигуратора, но еще не работает.

Из этого мог бы получиться отличный стартап, и можно было бы заявить - "Главная проблема неудач выхода 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

Теги:
Хабы:
+6
Комментарии 39
Комментарии Комментарии 39

Публикации

Истории

Работа

Программист 1С
66 вакансий
Аналитик 1С
5 вакансий
Консультант 1С
101 вакансия

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн