Автоматическая генерация 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С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    1559    1    1    

4

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

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

36000 руб.

03.08.2020    18573    20    22    

18

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20716    13    19    

18

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    477    2    0    

5

Обмен с ГосИС 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    92197    184    217    

337
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. a.baturskiy_2015 04.01.16 08:07 Сейчас в теме
Старик, а что тут остается от 1С? Для чего она? :)
(не риторический вопрос)
2. starik-2005 3098 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 8263 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 8263 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 1749 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 1749 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 10 18.06.21 17:59 Сейчас в теме
Добрый день. Несколько лет прошло, идея получила какое-нибудь развитие? Ищу как раз сейчас прослойку, которая создаст нужные формы с привычными контролами, но на 1С будет совсем не похожа (в основном, рассчитана на иностранного пользователя), но так как у меня у самого знаний js и т.д. околонулевый, ваш вариант меня заинтересовал
Оставьте свое сообщение