Автоматическая генерация Web-интерфейса с использованием http-сервисов

03.01.16

Интеграция - WEB-интеграция

Пример автоматической генерации Web-интерфейса с использованием http-сервисов.

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

Наименование Файл Версия Размер
uni
.zip 323,60Kb
77
.zip 1.0 323,60Kb 77 Скачать

Вводная

Данная публикация является своеобразным proof-of-concept, т.е. доказательством осуществимости того, что можно полностью генерировать веб-интерфейс сопоставимый по качеству с современными вэб-сайтами, а не тем стандартным интерфейсом, который предоставляет нам 1С из коробки в виде вэб-клиента.

Это не полнофункциональный интерфейс. Демонстрируется только возможность перехода по спискам, открытия ссылочных объектов и записи. Следует рассматривать данную публикацию именно с позиции "демонстрации возможностей", т.е. если возможно это, то можно реализовать и все остальное.

Зачем мне это, если есть стандартный 1С веб-интерфейс? 

Немного хочу пояснить для тех, кто в комментариях задает подобные вопросы. Данная публикация своего рода мое виденье того, каким должен быть интерфейс 1С именно в Web. И хотя до практического применения его далеко, этой публикацией я скорее хотел бы подтолкнуть сообщество на обсуждение того, какой мы видим веб-интерфейс 1С в будущем.

Некоторый говорят про мифический «user-experience». Так вот, у каждой платформы – свой user-experience. Если вы работаете в веб – вы ожидаете видеть интерфейсы примерно похожие на те, что есть в веб. В качестве примера можно показать мобильное приложение от того же 1С. Оно как минимум напоминает мобильные приложения. Стандартное же веб приложение от 1С напоминает 1С засунутое в браузер включая заголовок и все его меню "файл..." и прочее, чего никогда не увидишь в интернете.

Принцип работы

Поскольку 1С не дает нам возможности получить состав командного интерфейса программным образом, то мы просто бежим по корневым подсистемам и берем только те, у которых стоит «Включать в командный интерфейс». Далее бежим по составу данных подсистем рекурсивно и выбираем те объекты, у которых стоит «Использовать стандартные команды». Таким образом получаем стартовое меню.

Реквизиты объектов собираются обходом по списку Метаданные.<Менеджер>.Реквизиты

Можно, конечно, и по хорошему нужно выгружать метаданные в файлы и анализировать уже их, но это тема отдельной статьи.

Данная разработка не включает в себя никаких оптимизаций и кэширования – это тоже тема отдельных статей.

Ограничения

Http-сервисы появились только в 8.3.4. Так что требуется платформа не ниже 8.3.4.

В разработке используется функция «СтрШаблон», которая доступны только в версии 8.3.5. Если нужно запустить на более ранней версии 1С, в модуле «UNI_Глобальный», следует переименовать функцию СтрШаблон_8_3_5() в СтрШаблон() – она полностью эмулирует действие функции из 8.3.5.

Состав

  • uni.cf: собственно подсистема.
  • Каталоги «css», «js», «fonts» - взяты из последней версии bootstrap фреймворка.

Свои стили и скрипты находятся в custom.css и custom.js файлах соответственно.

Установка

1. 1C: загружаете подсистему «UNI» в вашу конфигурацию.

2. Публикация:

    2.1. Если публикуете на IIS: публикуем базу. Размещаем каталоги «css», «js», «fonts» в каталоге публикации (внутри каталогов уже лежат файлы настроек web.config, чтобы IIS корректно понимал static-файлы).

    2.2. Если публикуете на Apache: публикуем базу. Например в каталог «C:\web\demo». Далее создаете каталог «demo_static» - сюда складываете каталоги «css», «js» и «fonts». Теперь надо в файле настроек apache указать пути к данным каталогам. Получим следующее:

Alias "/demo/fonts" "C:/Web/demo_static/fonts/"
<Directory "C:/Web/demo_static/fonts/">
    Order allow,deny
    Allow from all
</Directory>

Alias "/demo/js" "C:/Web/demo_static/js/"
<Directory "C:/Web/demo_static/js/">
    Order allow,deny
    Allow from all
</Directory>

Alias "/demo/css" "C:/Web/demo_static/css/"
<Directory "C:/Web/demo_static/css/">
    Order allow,deny
    Allow from all
</Directory>

# 1c publication
Alias "/demo" "C:/Web/demo/"
<Directory "C:/Web/demo/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/Web/demo/default.vrd"
</Directory>

3. В модуле HTTP-сервиса «uni» необходимо указать имя публикации. Функция «ПолучитьБазовыйURL()», установите значение переменной «ИмяПубликации» - то, каким именем вы опубликовали базу.

4. Перезапускаем IIS/Apache.

5. Вводим в адресной строке «http://localhost/<Имя публикации>/hs/uni/». Важно, чтобы на конце был слеш «/»!

http-сервис web web-интерграция универсальный интерфейс

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15747    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

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

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17549    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16360    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25741    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88580    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. a.baturskiy_2015 04.01.16 08:07 Сейчас в теме
Старик, а что тут остается от 1С? Для чего она? :)
(не риторический вопрос)
2. starik-2005 3033 04.01.16 12:17 Сейчас в теме
(1) a.baturskiy_2015, походу она тут типа как среда, содержащая бизнес-логику. Я бы, например, не стал делать интернет-магазин на 1С - дорого, тормозно, излишне пафосно. А вот битрикс для этого с горем пополам мог бы подойти. Но, конечно, лучше чего-нибудь более серьезное для этого использовать.
3. BurningChrome 211 04.01.16 12:55 Сейчас в теме
(1) a.baturskiy_2015, Вся логика пишется на 1С. Web - это только фасад.
maksa2005; +1 Ответить
4. Evil Beaver 8107 04.01.16 15:55 Сейчас в теме
При всем уважении, поделка получилась у вас, а не у 1С. Стандартный веб-интерфейс 1С решает ровно то, для чего он сделан - предоставляет вам веб-доступ к приложению, которое вы написали. Дает вам примерно одинаковый user-experience как на локальном доступе, так и через веб. Если вы хотите написать сайт на 1С и возмущаетесь, что интерфейс не гибкий, то, извините, вы где-то не там ищете решение и не теми инструментами пользуетесь.
maksa2005; suepifanov; hairman; sorb; Ali1976; Irwin; DrAku1a; CSiER; alest; JohnyDeath; cool.vlad4; PrinzOfMunchen; webester; orfos; nbeliaev; +15 Ответить
5. BurningChrome 211 04.01.16 21:12 Сейчас в теме
(4) Evil Beaver, а я и не говорил, что это законченный продукт. Более того, в самом первом абзаце сказано что это всего лишь "proof-of-concept", т.е. именно демонстрация возможностей.
1С дали нам http-сервисы и это одно из возможных их применений. На здешнем инфостарте есть примеры даже cms написанные на 1С. Или они тоже «не теми инструментами пользуются»?
6. cool.vlad4 2 06.01.16 05:30 Сейчас в теме
(5) а он не писал ничего про законченность вашего продукта. он придрался и по делу придрался к вашей необоснованной претензии к 1С в части
а не той поделкой, что дает нам 1С из коробки в виде вэб-клиента.

довольно неумная фраза. (во всем остальном норм. ) с какого 1С должна что-то из коробки предоставлять, чтобы это не было поделкой для каких-то задач BurningChrome?
Evil Beaver; DrAku1a; +2 Ответить
13. kiruha 388 11.01.16 11:39 Сейчас в теме
(4) Evil Beaver, прошу прощения - но судя по Вашим публикациям - все + и - стандартного интерфейса хорошо знаете.
Автор далеко не первый и не последний , кто начала использовать js и Http-сервисы, и данное направление набирает достаточно большую аудиторию (судя по этим публикациям ).
Поэтому удивительны вопросы к автору типа - чем не устраивает стандартный веб интерфейс и т.п. да еще по 10 "плюсов". Автору большое спасибо !
15. Evil Beaver 8107 12.01.16 01:42 Сейчас в теме
(13) kiruha, я не про плюсы и минусы, я про презрительно брошенное: "поделка, которую 1С нам подсовывает"
17. kiruha 388 12.01.16 10:03 Сейчас в теме
(15)
Да, спасибо - сразу не понял, согласен - вообще разные задачи.
Я http сервисы хочу для клиентов и удаленщиков сделать - посмотреть конкретный заказ или договор, без доступа в базу.
7. baloo 06.01.16 08:55 Сейчас в теме
Логичнее выглядело бы если бы вы открыли Odata интерфейс и использовали бэк 1С строго как модель в терминах MVC, а всё остальное решали уже на js, возможно с какой то прослойкой.
8. BurningChrome 211 06.01.16 12:01 Сейчас в теме
(7) baloo, я не знаю js. Преимущество данного подхода как раз и заключается что нужно минимум знаний в html, все можно написать на 1С. Вам не нужно содержать дополнительного веб-разработчика если у вас есть программисты 1С. А js+прослойка получится "переписать 1C". Цель не в этом.
9. Vladimir_Konyrev 255 06.01.16 16:17 Сейчас в теме
Когда данный метод можно и нужно использовать? Что он дает, быстродействие, красоту, совместимость или еще что-то?

Непонятно зачем мне это, если сейчас я и так пишу конфигурации на УФ и они полностью работают через браузер.
Думаю автору стоило бы больше уделить внимание раскрытию применимости своего решения/метода, пояснить плюсы.
ixijixi; cleaner_it; +2 Ответить
10. BurningChrome 211 07.01.16 12:00 Сейчас в теме
(9) Vladimir_Konyrev, Если вас устраивает веб-интерфейс от 1С, то действительно, вам это не зачем.
12. DrAku1a 1679 11.01.16 05:55 Сейчас в теме
(10) А чем конкретно Вас не устраивает веб-интерфейс 1С?
Mortiferus; +1 Ответить
19. user1011815 7 26.09.20 19:55 Сейчас в теме
(12) Самый главный недостаток - он не адаптивный. Для БП и ЗУП это не важно, а вот для логистики и торговли с зоопарком мобильных девайсов - это большая проблема. Ну и с точки зрения дизайна, он ужасен, однозначно.
11. Vladimir_Konyrev 255 09.01.16 23:47 Сейчас в теме
Думаю ответы на ранее заданные мною вопросы: "Когда данный метод можно и нужно использовать? Что он дает, быстродействие, красоту, совместимость или еще что-то?" дадут большее представление о том, что Вы предлагаете.
14. BurningChrome 211 11.01.16 21:01 Сейчас в теме
Добавил блок "Зачем мне это, если есть стандартный 1С веб-интерфейс?". Это для всех, кто задает подобные вопросы.
16. DrAku1a 1679 12.01.16 02:29 Сейчас в теме
(14) BurningChrome, поймите правильно: я не критикую саму работу - она отличная и уверен - нужная!

Но в контексте претензий к 1С - считаю, Вы не правы. С точки зрения пользователя - гораздо удобнее видеть примерно одинаковый интерфейс в веб-клиенте и тонком/толстом клиенте. Что и обеспечивает платформа 1С.
В остальном - повторю Evil Beaver:
Если вы хотите написать сайт на 1С и возмущаетесь, что интерфейс не гибкий, то, извините, вы где-то не там ищете решение и не теми инструментами пользуетесь.


И ещё раз о самой работе: лично я - файл скачал, обязательно буду его изучать и скорее всего, почерпну для себя что-то новое.
18. serko8547 110 26.08.16 17:08 Сейчас в теме
Ув. Автор, прошу Вас поделиться опытом:
Я начал использовать http-сервисами недавно, и напоролся на такую проблему: Если в 1с завести пользователя - то мне ответ на любой Get или post запрос приходит Ошибка 401 (не авторизован). Как быть?
Был бы Вам очень благодарен, если Вы подскажете, как решить сию проблему )
20. kembrik 10 18.06.21 17:59 Сейчас в теме
Добрый день. Несколько лет прошло, идея получила какое-нибудь развитие? Ищу как раз сейчас прослойку, которая создаст нужные формы с привычными контролами, но на 1С будет совсем не похожа (в основном, рассчитана на иностранного пользователя), но так как у меня у самого знаний js и т.д. околонулевый, ваш вариант меня заинтересовал
Оставьте свое сообщение