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

03.01.16

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
uni
.zip 323,60Kb ver:1.0
77
77 Скачать (1 SM) Купить за 1 850 руб.

Вводная

Данная публикация является своеобразным 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-интерграция универсальный интерфейс

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    4470    5    0    

11

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35876    71    45    

30

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

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

57600 руб.

26.11.2024    3330    3    3    

5

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1402    9    2    

11

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

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

36000 руб.

03.08.2020    19702    24    24    

20

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    5574    5    2    

6

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

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21323    14    19    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. a.baturskiy_2015 04.01.16 08:07 Сейчас в теме
Старик, а что тут остается от 1С? Для чего она? :)
(не риторический вопрос)
2. starik-2005 3175 04.01.16 12:17 Сейчас в теме
(1) a.baturskiy_2015, походу она тут типа как среда, содержащая бизнес-логику. Я бы, например, не стал делать интернет-магазин на 1С - дорого, тормозно, излишне пафосно. А вот битрикс для этого с горем пополам мог бы подойти. Но, конечно, лучше чего-нибудь более серьезное для этого использовать.
3. BurningChrome 212 04.01.16 12:55 Сейчас в теме
(1) a.baturskiy_2015, Вся логика пишется на 1С. Web - это только фасад.
maksa2005; +1 Ответить
4. Evil Beaver 8289 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 212 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 8289 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 212 06.01.16 12:01 Сейчас в теме
(7) baloo, я не знаю js. Преимущество данного подхода как раз и заключается что нужно минимум знаний в html, все можно написать на 1С. Вам не нужно содержать дополнительного веб-разработчика если у вас есть программисты 1С. А js+прослойка получится "переписать 1C". Цель не в этом.
9. Vladimir_Konyrev 263 06.01.16 16:17 Сейчас в теме
Когда данный метод можно и нужно использовать? Что он дает, быстродействие, красоту, совместимость или еще что-то?

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

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


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