Расширение конфигурации для Web-доступа к 1С (1С в роли back-end)

Публикация № 1415500

Разработка - Системная интеграция - Интеграция с WEB

http-сервисы back-end web

Для реализации того, чтобы 1С формировала и отдавала страницу, которую можно было бы открыть через браузер было написано расширение, которое позволяет публиковать из 1С произвольные ресурсы, будь то API, сайт или изображения / прочие файлы.

Введение

В процессе работы с 1С я несколько раз сталкивался с задачей, которая сводилась к тому, чтобы 1С формировала и отдавала страницы, которые можно было бы открыть через браузер. Например, когда системные администраторы, работающие в поле, хотят иметь возможность просматривать свои задачи в service desk или необходимо опубликовать легковесную адресную книгу из документооборота. Решений тут может быть несколько, но часто предпочтительным является использование http-сервисов, поскольку у нас не будет промежуточного звена, а авторизация происходит под логином/паролем, которые пользователь использует для доступа в базу. Конечно можно писать под каждую задачу отдельный http-сервис но со временем я пришел к решению написать расширение, которое позволяет публиковать из 1С произвольные ресурсы будь то API, сайт или изображения.

Работоспособность проверена на версиях платформы 8.3.18.1208 и 8.3.14.1630.

Первоначальная настройка

Данное расширение конфигурации было написано для реализации бэкенда на базе 1С. Для описании структуры публикуемых ресурсов используются 2 справочника: «Типы содержимого» - используется для описания MIME-типов и «Шаблоны страниц», который используется для описания отдаваемых ресурсов

 

Справочники расширения

 

При первоначальном открытии в справочнике «Типы содержимого» необходимо нажать кнопку «Начальное заполнение» в форме списка. Она подгрузит список наиболее распространенных значений:

 

Загрузка MIME типов

 

Далее необходимо выполнить публикацию http-сервиса расширения. Для этого в конфигураторе перейдите в «Администрирование» - «Публикация на веб-сервере…» и убедитесь, что на вкладке «HTTP сервисы» стоит флаг «Публиковать HTTP сервисы расширений по умолчанию». Если база до этого не была опубликована, то необходимо опубликовать ее (для IIS)

 

Настройка публикации

 

Формирование шаблонов страниц

Откроем справочник «Шаблоны страниц» и создадим новый элемент: в поле «Имя пути» указываем название ресурса так, как будем запрашивать его в браузере, Content-Type позволяет выбрать MIME-тип, на вкладке шаблон мы можем ввести текст, который будет отправлен в ответ на запрос.

 

Шаблон простой страницы

 

В результате при запросе к http://127.0.0.1/Web1C/hs/WebAccess/BasicPages/simple_text.html (где Web1C - имя публикации, а simple_text.html – имя пути) мы получим в ответ страницу следующего вида:

 

простая страница

 

Если при запросе к ресурсу нам необходимо отдавать какие-то данные, получаемые из БД, то нам необходимо указать произвольный тег в шаблоне (например <data>):

 

шаблон с параметром (вкладка шаблон)

 

После чего на вкладке параметры указать этот тег и определить для него алгоритм получения:

 

Страница с параметром (вкладка параметры)

 

При установке следующего алгоритма получения при указании параметра name «Администратор» получим:

//Тело запроса доступно в переменной Контент. Если у пришедшего запроса MIME-тип был
//"application/json", то в нем будет соответствие иначе строка с телом запроса
//В переменной ПараметрыЗапроса доступны параметры запроса (HTTPСервисЗапрос.ПараметрыЗапроса)
Имя = Контент["name"];
            
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |            Пользователи.Ссылка КАК Ссылка,
               |            Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторИБ,
               |            Пользователи.Наименование КАК Наименование
               |ИЗ
               |            Справочник.Пользователи КАК Пользователи
               |ГДЕ
               |            Пользователи.Наименование = &Наименование";
Запрос.УстановитьПараметр("Наименование",Имя);
Выборка = Запрос.Выполнить().Выбрать();

мРезультат = новый Массив;
Пока Выборка.Следующий() цикл
                Строка = новый Структура;
                Строка.Вставить("uid",Строка(Выборка.Ссылка.УникальныйИдентификатор()));
                Строка.Вставить("uid_bd",Строка(Выборка.ИдентификаторИБ));
                Строка.Вставить("name",Выборка.Наименование);
                мРезультат.Добавить(Строка);
КонецЦикла;  

ЗаписьЖСОН = новый ЗаписьJSON;
ЗаписьЖСОН.УстановитьСтроку();
ЗаписатьJSON(ЗаписьЖСОН,мРезультат);

//Строка, которую мы возвращаем, должна быть помещена в переменную Результат
Результат = ЗаписьЖСОН.Закрыть();

 

Если же возвращаемое значение – двоичные данные, то на вкладке шаблон необходимо указать «Ответ как» в «Двоичные данные» и в текстовом поле шаблона указать алгоритм получения (Двоичные данные должны быть помещены в переменную ДвоичныеДанные)

 

шаблон с двоичными данными

 

страница с картинкой ДД из базы данных

 

Если же двоичные данные должны отдаваться статически то можно загрузить картинку в шаблон. Для этого необходимо переключить тумблер в шапке на значение «Ресурс» и нажать кнопку «Загрузить ресурс»

 

Шаблон со статичным ресурсом

Статичный ресурс

 

Дополнительные возможности

Так же можно указать дополнительные заголовки для ответа на запрос во вкладке «Заголовки». Это может быть полезно при реализации API, которая должна быть доступна по CORS:

 

произвольные заголовки

произвольные заголовки результат

 

Так же во вкладке Инициализация переменных можно написать код, который будет выполняться всегда перед обработкой шаблона возвращаемого строкой. Может быть полезно, чтобы поместить что-то в переменную «СтруктураПеременных» (соответствие), которая будет доступна при заполнении шаблона по параметрам

 

инициализация переменных

 

Примеры использования:

На предыдущих местах работы на базе этого расширения были реализованы адресная книга для документооборота с разворачиваемым деревом подразделений (на vue.js + bootstrap), консоль администрирования и АРМ задач сервисдеска для разъездных сисадминов. В качестве живого примеров, который имею сейчас под рукой, могу назвать следующую реализацию TO-DO листа (Vue.js + sass)

 

задачник

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

Наименование Файл Версия Размер
Веб доступ к 1С

.cfe 28,48Kb
3
.cfe 28,48Kb 3 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. comol 4521 02.04.21 19:18 Сейчас в теме
Мы чуть дальше пошли... https://github.com/comol/OneCWebFramework может проще fork и contribute пока не поздно?
itoptimum; kote; dnikolaev; cleaner_it; +4 Ответить
3. pm74 193 03.04.21 06:49 Сейчас в теме
у всех есть свой http сервис
itoptimum; kote; dnikolaev; +3 Ответить
Оставьте свое сообщение

См. также

Интеграция с бонусной программой лояльности ManyBonus Промо

Управление взаимоотношениями с клиентами (СRM) Розничная торговля WEB v8 Розница УУ Абонемент ($m)

ManyBonus.com - бонусная программа лояльности на базе мессенджеров. Позволяет регистрировать клиента в программе лояльности через Telegram, Viber, VK, отправлять коды скидок в мессенджеры, получать уведомления при списании/начислении бонусных баллов, альтернатива сообщениям СМС.

3 стартмани

07.01.2021    2751    4    Anton64    0    

Генератор маршрута по "документам отгрузки" в Google.Maps

Оптовая торговля Розничная торговля WEB v8 v8::ОУ УТ11 Россия УУ Абонемент ($m)

Данная обработка будет полезна для построения маршрута по документам реализаций за выбранный период.

7 стартмани

08.11.2020    4461    9    quazare    16    

Обмен данными между OZON и 1С

Оптовая торговля WEB v8 v8::ОУ УТ11 УУ Абонемент ($m)

Данная подсистема позволяет загружать отправления «с моего склада» из OZON (в статусе «Ожидают сборки») в 1с Управление торговлей 11 по API. Так же есть возможность выгружать статусы отправлений «awaiting_deliver, т.е. Ожидает отгрузки» и «cancelled, т.е. Отменен» из 1с в OZON по API.

10 стартмани

09.04.2020    19970    188    vex2865    122    

Выгрузка номенклатуры в социальную сеть Вконтакте

WEB Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf Абонемент ($m)

Обработка для быстрой и легкой выгрузки товаров Вконтакт. Так просто еще не было)))

2 стартмани

14.08.2019    17555    56    kaliuzhnyi    48    

Трекинг номеров РПО в Почте России Промо

WEB Оптовая торговля Оптовая торговля v8 Оптовая торговля, дистрибуция, логистика Абонемент ($m)

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

2 стартмани

28.03.2016    29233    38    Smaylukk    3    

Загрузка чека онлайн-касс (загрузка товаров из чека)

Внешние источники данных WEB Кассовые операции Розничная торговля Кассовые операции Розничная торговля v8 1cv8.cf Абонемент ($m)

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

2 стартмани

08.10.2018    24434    40    echo77    73    

(beta) Обмен 1С с интернет-магазином OpenCart

WEB Оптовая торговля Оптовая торговля v8 v8::ОУ УТ10 Оптовая торговля, дистрибуция, логистика УУ Абонемент ($m)

Обмен 1С с интернет-магазином OpenCart через ODBC и ftp. Демонстрирую основные используемые механизмы. Есть ссылка на сайт, на который все выгружаю. Буду благодарен конструктивным предложениям.

1 стартмани

14.01.2018    14916    32    ogre2007    9    

Выгрузка на сайт "ВКонтакте" из УТ 11

WEB Розничная торговля Розничная торговля v8 УТ10 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Обработка (с открытым программным кодом) по выгрузке номенклатуры с характеристиками, сериями, ценами и т.д. из УТ 11 на сайт "ВКонтакте".

1 стартмани

12.10.2016    18466    107    Sergey901    30    

Легкий интернет-магазин из УТ 11.2 Промо

WEB Управление взаимоотношениями с клиентами (СRM) Оптовая торговля Розничная торговля Управление взаимоотношениями с клиентами (СRM) Оптовая торговля Розничная торговля v8 УТ10 УУ Абонемент ($m)

Обработка создания интернет-магазина из УТ 11. Создается единственный файл html, который содержит все выгруженные товары. Клиент составляет и отправляет заказ вам на e-mail прямо из браузера, не прибегая к использованию стороннего ПО.

11.08.2016    33747    0    hlopik    37    

Сервер управленческих отчетов Промо

Управленческие WEB Рабочее место Учет доходов и расходов Учет доходов и расходов v8 1cv8.cf УУ Абонемент ($m)

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

1 стартмани

24.02.2015    42035    83    andy23    33    

Согласование документов 1С:Документооборот и 1С:Консолидация из Outlook 2010-2013 без запуска 1С (с исходниками)

WEB Внешние источники данных Управление проектом Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Россия УУ Абонемент ($m)

Надстройки для Outlook 2010-2013, позволяющие пользователю без запуска 1С оперативно выполнять согласование документов при поступлении оповещения на электронную почту. Поддерживается интеграция с 1С:Документооборот ПРОФ и КОРП (работа с процессом "Согласование" с поддержкой просмотра файлов по внутренним и исходящим документам) и 1С:Консолидация ПРОФ (согласование "Заявок на расходование средств" и "Экземпляров отчетов" с возможностью просмотра печатных форм).

1 стартмани

16.07.2012    78079    418    Aleksey.Bochkov    123    

Рассылка SMS из 1С

WEB SMS рассылки Управление взаимоотношениями с клиентами (СRM) Управление взаимоотношениями с клиентами (СRM) v8 1cv8.cf Реклама, PR и маркетинг Абонемент ($m)

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

1 стартмани

19.08.2010    40766    1175    tsd    62    

Загрузка курсов валют за период для Украины

Обмен с банком WEB Банковские операции Обработка справочников Банковские операции v8 1cv8.cf 1cv7.md Украина Абонемент ($m)

С 11 марта 2009 года на нашем форуме стартовал сервис загрузки официальных курсов валют НБУ в программы 1С:Предприятие. В отличии от типовых обработок по загрузке курсов, встроенных в конфигурации 1С, пользователи форума получают возможность БЕСПЛАТНО загружать курсы за любой интервал времени. Это устраняет необходимость вводить курсы валют вручную, и, таким образом, повышает оперативность и точность информации.

1 стартмани

24.06.2009    27674    277    Batchir    46