Cервис Прометей

Инновации вдохновляют

Среда разработки Прометей

Для разработки SaaS-приложений используется специализированная среда разработки.

Дистрибутив доступен для скачивания здесь после регистрации на сайте.

Там же можно скачать архив с примером конфигурации складского учета.

Для описания логики приложений используется встроенный язык программирования для платформы .NET с русскоязычным или англоязычным синтаксисом. В варианте англоязычного написания, язык похож на Microsoft Visual Basic.NET. В рамках одно файла кода можно в любом месте текста использовать как русскоязычный, так и англоязычный синтаксис.

При написании логики работы с данными возможно написание типизированных SQL запросов к базе данных. Синтаксис запросов основан на стандарте SQL/92. Также имеется возможность написания запросов с использованием русскоязычных синонимов ключевых слов.

Для создания конфигурации используются следующие понятия:

Сущности

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

Для организации структуры в базе данных у сущности используются реквизиты. Реквизиты – это фактически поля в таблице БД и свойства объекта. Реквизиты имеют имя и тип данных.

Сущности могут наследоваться друг от друга. При этом если сущность Б унаследована от сущности А, то сущность Б обладает всеми реквизитами и логикой, описанной в сущности А, плюс имеет собственные реквизиты и логику.

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

Рассмотрим вышесказанное на примере. Будем тренироваться на кошках.

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

Собаки и кошки – это животные. У них есть общие характеристики, такие как цвет шерсти или возраст. Поэтому сначала создадим абстрактную сущность «Животные». Почему абстрактную? Потому что животное – это не какой-то конкретный зверь, как например кошка или собака. Это общее обозначение группы сущностей. Поэтому имя сущности указывается во множественном числе.

Далее у этой сущности добавим реквизиты «Цвет шерсти» и «Возраст». У каждого животного в магазине есть эти характеристики.

Далее создаем сущности «Котенок» и «Щенок». Данные сущности должны быть унаследованы от сущности «Животное». В этом случае каждый «Котенок» и «Щенок» будет обладать реквизитами «Цвет шерсти» и «Возраст». Далее по желанию мы можем у них добавить свои реквизиты, которые будут характерные только для них. Например, для щенят можно добавить флаг «Бойцовая собака». А для котят может быть признак «Приучен к горшку». Эти реквизиты указываются у каждой конкретной сущности в отдельности. В среде разработки иерархию наследования сущностей можно увидеть в окне конфигурации. Там они отображаются в виде дерева, например, так:

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

В дополнении к этому, сущности могут обладать следующими характеристиками:

На основе описания сущностей генерируется структура базы данных.

Перечисления

Перечисления – это обычный Enum (Переч в русском синтаксисе), но описанный не в коде, а в конфигурации. Благодаря этому типы, определяемые перечислениями, можно использовать в качестве типов данных для реквизитов сущностей. Каждое перечисление должно содержать как минимум один реквизит. Цифровое значение для реквизита должно быть уникально в рамках перечисления.

Примером перечисления может быть «Вид налогоплательщика»: 1-Юридическое лицо, 2-Физическое лицо.

Рабочие места

Рабочие места – это программные модули, которые инициализирую рабочее окружение пользователя: верхнее меню и открытые по умолчанию окна.

Экранные формы

Экранные формы используются для описания пользовательского интерфейса пользователей. Редактор экранных форм такой же, как и в Visual Studio для WinForms приложений.

Печатные формы

Печатные формы используются для печати документов и формирования отчетности на базе Microsoft Excel 2007 или выше.

При настройке печатной формы можно настроить реквизиты отчета, источники данных и, непосредственно, саму печатную форму.

Реквизиты отчета используются для настройки фильтров отчета, источники данных содержат SQL-запросы к БД, на основе которых формируется отчет. Печатная форма настраивается во встроенном окне Microsoft Excel. В правой части открывается панель настройки печатной формы, содержащая 2 вкладки: Поля и Секции.

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

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

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

Для публикации приложения в магазине нужно в среде разработки выбрать пункт меню Инструменты – Публикация пакета. В результате (если нет ошибок в конфигурации) создаётся файл пакета с расширением .dbpk. Этот файл можно опубликовать на специальной странице. После проверки администрацией сервиса приложение будет публично доступно в магазине. Но в любом случае приложение доступно для тестовой установки в любой момент.

Это ещё не всё

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