Инструмент для создания веб приложений на основе 1С REST сервиса

13.10.15

Разработка - Инструментарий разработчика

Обзор платформы-конструктора для создания веб-приложений, использующих в качестве источника базы данных 1С

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

Наименование Файл Версия Размер
FWACInstaller
.exe 105,70Mb
46
.exe 105,70Mb 46 Скачать
Руководство пользователя
.doc 5,76Mb
32
.doc 5,76Mb 32 Скачать

1С, начиная с версии 8.3.5, поддерживает возможность получения данных от платформы  с помощью «коробочного HTTP REST сервиса, реализующего спецификацию стандарта доступа к данным OData (подробнее – здесь).

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

Компанией RWAD Technologies создан инструмент FastWebAppConstructor (FWAC), позволяющий выполнять разработку таких приложений в режиме «конструктора».


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

 

Описание процесса создания приложения

Процесс создания веб приложения на основе 1С REST сервиса средствами FWAC включает в себя:


Создание модели данныхСоздание модели данных

Модель данных создается с помощью операции анализа метаданных 1С REST сервиса. Описание метаданных доступно по следующей маске маршрута: http://[host]/[1C_db_name]/odata/standard.odata/$metadata. В результате  анализа метаданных в импортируемой модели данных учитываются:

-          Таблицы (справочники);

-          Определение первичных ключей таблиц.

-          Связи таблиц (внешние ключи);

-          Типы данных полей;

-          Ограничения обязательности заполнения полей и другие ограничения.

В процессе импорта схемы данных из метаданных OData сервиса возможно выбрать целевые таблицы и поля.

После выполнения импорта схемы данных через UI FWAC можно внести необходимые корректировки и дополнения в модель и определить правила валидации данных, применяемые на клиентской стороне создаваемого веб приложения.


Создание запросов (views)

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

Процесс построения запроса  состоит из следующих операций:

1. Определение набора сущностей (справочников), используемых в запросе

Определение набора сущностей (справочников), используемых в запросе

 

2. Определение полей для включения в запрос

Выбор полей запроса

 

3. Формирование условий для фильтрации данных

Определение фильтра запросов

 

Ключевой особенностью FWAC в части работы с запросами является поддержка данного функционала применительно к 1C REST сервису. «Из коробки» 1С REST не реализует параметр $expand запроса к веб сервису (с помощью данного параметра осуществляется встраивание связанных сущностей  в ответ веб сервиса, реализующему спецификацию OData).

FWAC имеет встроенный механизм связывания данных «на клиентской стороне», что позволяет использовать запросы даже в случае, если данный функционал не в полной мере поддержан со стороны сервера.

Таким образом, FWAC значительно расширяет контекст применения функциональных возможностей «коробочного» 1С REST сервиса.

 

Формирование структуры навигационного меню

Управление структурой меню

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

Имеется возможность использования font-awesome иконок для пунктов меню.

FWAC также предоставляет возможность определения стиля оформления создаваемого приложения с помощью UI тем bootswatch.

 

Сборка приложения

Сборка приложения

Продукт реализует следующие варианты сборки создаваемого приложения:

1. Локально запускаемое веб приложение. Функционирует с помощью встроенного в сборку приложения локального веб сервера (требует .NET v.4).

2. "Desktop" приложение, исполненное в среде Node WebKit. Подробнее о NodeWebKit можно узнать на сайте проекта.

3. Публикация на локальный веб сервер Microsoft IIS. В перспективе планируется реализовать автоматическое формирование Deploy пакетов приложения для публикации на удаленных серверах и поддержка других популярных веб серверов.


 Получение конечного результата

1. Предтставление со списком записей

Внешний вид созданного приложения

 2. Представление создания (редактирования) записи

Создание (редактирование) записи

Пример созданного FWAC приложения можно посмотреть здесь.

 

Таким образом, FWAC представляет из себя инструмент, позволяющий ценой минимальных трудозатрат создать современное веб приложение, использующее в качестве источника данных 1С REST сервис.

 

Среди ключевых преимуществ FWAC можно выделить:

–        Скорость разработки

В сравнении с традиционными способами проектирования и разработки веб приложений использование FWAC позволит многократно сократить временные издержки и трудозатраты;

–        Расширяемость

Создаваемые средствами FWAC приложения можно кастомизировать и расширять, используя стек стандартных и широко распространенных технологий (HTML, CSS, JS, AngularJS);

–        Аутентификация

Создаваемые с помощью FWAC приложения поддерживают аутентификацию пользователей на уровне источника данных;

–        Работа с запросами

FWAC предоставляет возможность построения запросов.

–        Автопубликация

С помощью FWAC возможно выполнить автоматическую публикацию созданного веб приложения на сервер;

–        Современный UI

FWAC позволяет создавать приложения с удобным UI. В основе создаваемого интерфейса лежит библиотека Bootstrap. Также имеется возможность изменения стиля создаваемого приложения в два клика.

 

Технические требования:

- MS Windows 7 и выше;

- .Net Framework 4.5 и выше (в состав дистрибутива включен патч .NET 4.5.2).

Продукт работает с платформой 1С с релиза 8.3.5 (необходима поддержка публикации стандартного 1С Rest веб сервиса).

 

Предлагаем Вам принять участие в бета-тестировании продукта.

Во время бета-тестирования оказывается ограниченная техническая и консультационная поддержка пользователей без возникновения определенных гарантий и обязательств.

Код FWAC является частично закрытым.

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

REST OData веб сервисы веб приложение разработка

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122069    670    389    

712

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7272    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3514    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177730    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

5000 руб.

07.02.2018    99342    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

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

3000 руб.

27.08.2019    18104    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28102    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23598    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. unpete 577 13.10.15 21:23 Сейчас в теме
  • Если используется только стандартный rest, как организован и ввод ссылочных типов и фильтрация по подстроке? Насколько мне известно, odata-вский substring() вместе с like %% в 1С-ной реализации не поддержаны
  • Где описание API почитать? Какие классы и с какими методами доступны front-end разработчику?
  • Где живое демо с примерами подключения к типовым конфигурациям? Желательно, чтобы печать и присоединенные файлы в демках были доступны.
  • Как обстоят дела с автономной работой и асинхронной репликацией?
torbeev; dmzubr; oknosoft; +3 Ответить
3. ptolemey 13.10.15 22:24 Сейчас в теме
ПРОШУ пощения - отвечал с другой машины - был залогинен под другой учеткой((((
Пост не удаляется больше.

(1) unpete,
>> Если используется только стандартный rest, как организован и ввод ссылочных типов и фильтрация по подстроке? Насколько мне известно, odata-вский substring() вместе с like %% в 1С-ной реализации не поддержаны

Построение проекций (то, что в согласно спецификации OData реализуется с помощью параметра $expand) - реализовано с помощью последовательности XHR запросов, начиная от корневой сущности и далее по цепочке внешних ключей. При построении результата "запроса" список уже запрошенных сущностей кэшируется. Время жизни кэша - до завершения построения всей проекции.
По фильтрации - здесь Вы абсолютно верно заметили - пока коробочный REST не умеет :)
НО 1C уже работает в этом направлении - тут анонс расширения функциональности - http://v8.1c.ru/o7/201508odata/index.htm

>> где описание API почитать? Какие классы и с какими методами доступны front-end разработчику?

Оно есть на официальном сайте компании (и продукта соответственно).
Однако, сразу акцентирую Ваше внимание на том, что "ядро" клиентской стороны предоставляет API на AngularJS. Такой выбор был сделан в силу его лидирующих позиций в области комплексных фронт стеков. Обсуждаемы варианты сборки приложения под другие платформы, например Ember. Pure JS пока не рассматривался.

>> Где живое демо с примерами подключения к типовым конфигурациям? Желательно, чтобы печать и присоединенные файлы в демках были доступны.

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

>> Как обстоят дела с автономной работой и асинхронной репликацией?

Пока такие режимы не предусмотрены непосредственно.
НО есть возможность сборки создаваемого приложения с "локальным" поставщиком данных на базе PouchDB. Над ним сделана весомая по объёму внутренней логики обертка.
В принципе не видно серьезных ограничений для реализации пожелания, озвученного Вами в данном пункте.
2. Tahallus 431 13.10.15 22:09 Сейчас в теме
Что-то гугл не знает такой компании как "RWAD Technologies"
4. dmzubr 73 14.10.15 00:02 Сейчас в теме
(2) Tahallus,
Уместное замечание. :)
Сайт стартовал вместе с проектом в текущем месяце. Поэтому пока соответствующие позиции занимает в результатах работы поисковиков.
5. Sh_Vladimir 14.10.15 15:13 Сейчас в теме
Добрый день! А возможно получить какие-то готовые примеры для оценки возможности применения технологии на текущей стадии развития? Заранее спасибо!
6. dmzubr 73 14.10.15 15:34 Сейчас в теме
7. Жолтокнижниг 258 14.10.15 16:36 Сейчас в теме
(0) 1с кажется не поддерживает параметр skip и тд,
8. dmzubr 73 14.10.15 16:51 Сейчас в теме
(7) Жолтокнижниг,
Именно так.
1С поддержку $skip пока только собирается реализовать. Подробнее есть инфа тут - http://v8.1c.ru/o7/201508odata/index.htm

В то же время, с учетом уже второго по счету комментария на счет "отклонений" от спецификации, добавлю, что у нас имеется также http сервис для 1С, уже сейчас реализующий следующие параметры:
  • $expand
  • $top
  • $skip
  • $filter - в части substring.

Были также добавлены некоторые "свои". Например, булевый параметр $fillnavproperties. При передаче в сервис для данного параметра значения true - будут сразу заполнены текстовыми значениями все поля внешних ключей целевой таблицы. Если точнее, то не все поля, а поля, перечисленные в части $select запроса.

Данный сервис используется только для выполнения GET операций.
Естественно применять этот сервис можно и вне контекста применения продукта, рассмотренного в публикации.
Не стали включать детали в текущую публикацию, чтобы было чем поделиться еще :)

Касательно его применения именно в контексте статьи - благодаря использованию данного сервиса в приложении, создаваемом с помощью FWAC - полнофункционально реализуется режим server-side pagination.
На стороне клиента вшит query builder, который на основании имеющейся информации о схеме модели данных, формирует текст запроса к сервису.
Общая "сигнатура" сервиса соответствует спецификации OData за исключением всего одного знака-разделителя.
Если же использовать стандартный OData - то pagination и поиск будут выполняться на клиентской стороне.

Итого - осмелюсь предположить, что данная тема послужит хорошей почвой для создания полноценной отдельной публикации.
9. unpete 577 15.10.15 00:58 Сейчас в теме
(8) Преамбула:
  • Есть фреймворк с открытым исходным кодом под GPL, называется UI5, разработан и сопровождается небезызвестной фирмой SAP. Позиционируют его ровно для тех же задач, что и ваш FWAC. Никаких новых подходов к веб-разработке этот UI5, как и десяток других REST-клиентов не предлагает. Сервер там рассматривается, как сервер, а клиент предназначен для отображения данных и обработки ввода пользователя
  • Есть metadata.js, где разработчику в javascript предлагаются ровно те классы данных, которыми он привык манипулировать внутри 1С, а именно: справочники, документы и регистры. С полноценным SQL на клиенте, с динамическим обновлением конфигурации, с реактивным обновлением данных, автоформами и событиями объектов
Вопросы:
  • Пользователь FWAC - кто он? веб-разработчик или бывший 1С-ник или кто-то третий
  • Каковы отличия-преимущества FWAC по сравнению с двумя описанными выше инструментами

10. dmzubr 73 15.10.15 09:15 Сейчас в теме
(9) unpete,
ИМО, в отношении разницы с продуктами, упомянутыми Вами в преамбуле:
  • SAP UI5: это полноценный весьма привязывающий стек разработки. Судя по примерам созданных приложений, даже на уровне типа "hello, world!", коммитит очень сильно.
    Кроме этого, подход к описанию структуры страницы в декларативной манере внутри js - это подход "на любителя". У него есть свои плюсы и минусы. Но сам факт применения именно данного подхода уже существенно сокращает число заинтересованных в применении решения.

    Если я правильно понял ход Вашей мысли, то под пунктом номер один я бы упомянул совсем другие продукты :)

  • metadata.js; Тут даже не коммит, а критерий определения целевого пользовательского сегмента - 1С. Это первое.
    Второе - пороговый уровень вхождения значительно выше.
    Ну и третье, цели продукта отличны от FWAC.

Чтобы получить наиболее раскрытый по смыслу ответ на Ваши вопросы после преамбулы, отмечу несколько фактов:
1) FWAC может использовать в качестве backend решение на любой платформе, предоставляющее механизм доступа к данным посредством OData. Таким образом, в качестве backend можно использовать:
- MS WCF
- MS Sharepoint
- SAP NetWeaver Gateway
- 1С REST.

Иными словами, уровень привязки к 1С низкий.
На ресурсе 1C комьюнити плюсом это безусловно не назовешь))))))
НО - это вносит ясность в определение профиля целевого потребителя продукта. Если точнее - то расширяет его далеко за пределы 1С.

2) Имеется возможность получения готового приложения вообще без кода.
Здесь по идеологии наиболее близким кажется ветеран MS Access.
Опять таки, ценность через призму восприятия 1С кодера = 0.
Но считаю важным отметить, т.к. это непосредственно влияет на уровень вхождения.

3) Благодаря использованию внутри ядра целевого создаваемого в FWAC приложения стека или стандартных, или наиболее популярных веб технологий, значительны возможности портирования создаваемого приложения:
- Уже сейчас можно создать приложение на платформе NWK;
- В ближайшей перспективе будет сборка "из коробки" под Android. Т.е. опять же - даже без погружения и в строчку кода.

4) В перспективе ближайших полу года запланировано:
- уже упомянутая выше возможность сборки под моб;
- автогенерируемый OData сервис (исходя из описания модели, определенных непосредственно через UI FWAC);
- конструктор форм. С данным компонентом возможности расширяются кратно.

Итоги позиционирования с учетом рассмотренного выше:
- Пользователь FWAC если и является 1С разработчиком, то в рамках проекта, где будет применен FWAC - 1С будет использован по большей мере в качестве backend слоя. Основной объём разработки реального проекта под реальные потребности будет вестись в рамках front-end его составляющей. При этом FWAC создает готовый и изначально уже работающий каркас будущего полнофункционального приложения и решает задачу DAL в front-end проекте.
Зачем и кому это надо. Проект зародился, глядя на работы в реальном и достаточно сложном проекте, архитектуру которого вкратце можно описать по формуле: Back + Middle = 1C; Front - AngularJS. Подобные новаторства в компоновке архитектуры во многом движимы драйвером под названием "импортозамещение". Таким образом, в совокупности 1С + FWAC составляют среду RAD.

- Важный в целом момент - Пользователь FWAC может вообще быть и не в курсе, что такое 1С :)
Однако, детализировать далее этот пункт в контексте публикации на ресурсе Infostart целесообразным не видится.
11. unpete 577 15.10.15 20:21 Сейчас в теме
(10) Спасибо, а зачем мобильный клиент 1с, если есть браузер с поддержкой оффлайн?
12. dmzubr 73 15.10.15 22:28 Сейчас в теме
(11) unpete,
Заказчику проекта порой потребно иметь обязательно полноценное устанавливаемое мобильное приложение, чтобы можно было в Маркете разместить. Чаще всего мотивы в таком случае носят "имиджевый" характер.
Как результат - функциональностью даже порой готовы пожертвовать.
13. Key-Zed 108 21.10.15 17:54 Сейчас в теме
Файл лицензии fwac не найден как получить лицензию. Сайт не доступен
14. dmzubr 73 21.10.15 19:32 Сейчас в теме
15. nems 20.11.15 17:12 Сейчас в теме
(14)

тот же вопрос по лицензии
16. dmzubr 73 21.11.15 11:24 Сейчас в теме
17. WellMaster 104 31.12.15 13:49 Сейчас в теме
С наступающим!
Аналогично, где можно получить лицензию?
18. dmzubr 73 02.01.16 18:53 Сейчас в теме
19. UJF 18.04.16 17:19 Сейчас в теме
конструктор не получает список сущностей из опубликокованной со стандартным интерфейсом ODATA типовой УТ.
20. dmzubr 73 19.04.16 14:05 Сейчас в теме
21. miksomov 08.11.16 16:48 Сейчас в теме
Добрый день, Дмитрий.
Скажите проект еще существует и поддерживается или закрылся?
И можно ли сюда задавать вопросы?
22. dmzubr 73 08.11.16 22:20 Сейчас в теме
(21) miksomov, проект существует, но он в стадии бета-версии и остался на данный момент. В ближайшее время планов по его реинкарнации нет.
Вопросы думаю лучше в ЛС. Спасибо за проявленный к продукту интерес.
Оставьте свое сообщение