Расширение конфигурации для 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
5
.cfe 28,48Kb 5 Скачать

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

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

См. также

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

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

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

3 стартмани

07.01.2021    2880    4    Anton64    0    

Работа с картами в 1С на примере бесплатной библиотеки Leaflet

Практика программирования Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.

1 стартмани

31.03.2021    2643    6    Parsec1C    8    

BIM: взаимодействие с платформой Autodesk Forge

WEB v8 1cv8.cf Строительство Абонемент ($m)

Предлагаемый пример демонстрирует широкие возможности для взаимодействия «1С:Предприятие» с платформой Autodesk Forge и позволяет вам получить базовые представления о применения технологий информационного моделирования в строительстве. Поддерживаются все версии платформы от 8.3.12 и выше до 8.3.18.

1 стартмани

25.11.2020    15569    6    kandr    2    

Односторонний файловый обмен с сайтом по ftp (1C 2 Web) Промо

Обмен данными 1С Файловые протоколы обмена, FTP WEB v8 Розница УНФ ERP2 БП3.0 УТ11 КА2 ЗУП3.x Абонемент ($m)

Подходит под любую конфигурацию на управляемом интерфейсе на базе БСП 2.4.4 и выше. Позволяет гибко настроить выгрузку, практически любых, данных по расписанию на сервер ftp вашего ресурса. Ведение лога процесса выгрузки также предусмотрено.

3 стартмани

09.12.2019    6679    8    LamerSoft    0    

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

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

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

7 стартмани

08.11.2020    4577    9    quazare    16    

Продажи со склада поставщика WildBerries. Взаимодействие с АПИ из 1С

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

Взялся я тут делать интеграцию с АПИ нового проекта Диких Ягод - Продажи со склада поставщика (ПССП). Это было нелегко. Никто же не читает инструкцию (уже аж 7 версии!), а зря! Для начала сделал получение списка товаров и обмен остатками.

5 стартмани

06.11.2020    14565    120    kiv1c    116    

Чатбот WhatsApp

WEB v8 1cv8.cf Абонемент ($m)

Внешняя обработка для написания чат-бота WhatsApp

1 стартмани

21.10.2020    6085    23    ripreal1    20    

"Учет штрафов ГИБДД" с возможной загрузкой из открытых источников в интернет Расширение конфигурации 1С: Предприятие 8.3 Промо

Обработка документов WEB v8 v8::УФ 1cv8.cf Россия БУ УУ Абонемент ($m)

Расширение конфигурации Бухгалтерия предприятия, редакция 3.0 (при минимальных изменениях любой типовой конфигурации), позволяющее вести историю данных по штрафам ГИБДД для справочника транспортных средств компании. Бонусом поставляется внешняя обработка, способная загружать эти данные из открытых источников в интернет.

4 стартмани

30.12.2019    12208    18    capitan    11    

1С + react native

WEB v8 1cv8.cf Абонемент ($m)

Пример реализации клиента для 1С на react native.

1 стартмани

09.10.2020    6484    6    van_za    6    

Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис

WEB Практика программирования v8 1cv8.cf Абонемент ($m)

Пошаговое руководство по созданию http сервиса (часть третья). Передача нескольких параметров в http сервис, a также формирование сложных JSON строк.

1 стартмани

02.10.2020    7558    2    hpi    16    

Подключаем WhatsApp к 1С

WEB v8 1cv8.cf Абонемент ($m)

Обработка для быстрого подключения WhatsApp к любой конфигурации 1С.

1 стартмани

30.09.2020    7061    38    andrew_shamin    59    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    30415    38    Ditron    90    

HTTP сервисы по OpenAPI спецификациям

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

Начинаем путь разработки HTTP сервисов с создания спецификаций OpenAPI. Автодокументация сервисов формата Swagger UI без зависимостей. Настройка сервисов в режиме предприятия.

1 стартмани

29.06.2020    10746    9    shmalevoz    20    

Конструктор HTTP-соединений в 1С (обычные и управляемые формы)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Иногда возникают мысли о том, чтобы прикрутить сервисы, связанные с HTTP-соединениями, в 1С. Необходимо писать обработку и анализировать результат.

1 стартмани

02.06.2020    6171    25    Denr83    0    

DaJet QL - расширяемый язык запросов

Интеграция WEB v8 Абонемент ($m)

DaJet QL поддерживает практический полный синтаксис SQL Server 2005-2016. Кроме этого это расширяемый язык запросов. Обращение к объектам СУБД выполняется в терминах метаданных 1С. Доступ к возможностям этого языка запросов реализован в виде web api сервиса. Результаты запросов возвращаются в виде JSON.

1 стартмани

20.04.2020    8983    11    zhichkin    16    

Работа с релизами 1С и договорами ИТС Промо

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    16772    52    RocKeR_13    35    

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

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

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

10 стартмани

09.04.2020    20481    190    vex2865    131    

Пример работы с Trello из 1С

WEB v8 1cv8.cf Россия УУ Абонемент ($m)

Небольшая конфигурация содержит примеры обмена с онлайн-сервисом Trello.

1 стартмани

15.02.2020    13540    47    terrorion    14    

Взаимодействие HTML (COM объект, WebKit) с 1С (обычные и управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования HTML (COM объект, WebKit) в 1С (8.3).

2 стартмани

18.01.2020    10129    28    Deniskinr83    0    

Google drive - менеджер файлов

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    12123    35    zykov_vitaliy    26    

Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata)

WEB v8 1cv8.cf Абонемент ($m)

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

1 стартмани

03.12.2019    8305    1    John_d    10    

Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (обычное и управляемое приложение)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Работа с Яндекс-картами в 1С (управляемое приложение). Обработка показывает, как можно найти адреса на карте Яндекс, проложить маршрут.

2 стартмани

20.11.2019    15085    134    Denr83    0    

Проверка VAT номеров Промо

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    14931    3    wtlz    1    

Пример взаимодействия HTML (COM объект, WebKit) с 1С (динамический отбор) (обычные и управляемые формы)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Показан пример использования WebKit в 1С (8.3).

2 стартмани

18.11.2019    11653    16    Denr83    0    

Яндекс сервисы [Расширение]

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

1 стартмани

24.10.2019    13005    10    noprogrammer    12    

Telegram бот на 1С

WEB v8 1cv8.cf Абонемент ($m)

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    19595    40    budidich    19    

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

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

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

2 стартмани

28.03.2016    29342    38    Smaylukk    3    

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

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

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

2 стартмани

14.08.2019    17742    56    kaliuzhnyi    48    

Путеводитель по истории релизов

WEB v8 1cv8.cf Абонемент ($m)

Отчет по истории выпуска релизов и анализа информации по обновлениям.

5 стартмани

13.08.2019    15793    13    YPermitin    18    

Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода)

WEB v8 1cv8.cf Абонемент ($m)

Простая обработка по отправке или получение данных с любого сервера главное знать ресурс (выполняемую функцию) и тело запроса.

1 стартмани

12.08.2019    19767    37    MaxPowerr    5    

Работа с картой. Кадастровый учет (Росреестр). Тематические карты Промо

WEB Рабочее место v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка для работы с картами в 1С. Получения изображения с публичной кадастровой карты России, построения тематических карт

1 стартмани

31.08.2017    21140    8    vipchep    0    

Конфигурация для обмена данными (интеграционная шина)

Внешние источники данных WEB v8 1cv8.cf Абонемент ($m)

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

4 стартмани

08.07.2019    15775    33    miha-28    17    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

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

3 стартмани

04.05.2019    22139    81    MarkoSokolov    48    

1С и WebKit. Вариант взаимодействия

WEB v8 1cv8.cf Абонемент ($m)

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    34613    83    mi1man    58    

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers) Промо

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

С каждым годом становится все очевидно, что использование онлайн-сервисов намного упрощает жизнь. К сожалению по картографическим сервисам условия пока жестковаты. Но, ориентируясь на будущее, я решил показать возможности API выше указанных сервисов: Инициализация карты Поиск адреса на карте с текстовым представлением Геокодинг Обратная поиск адреса по ее координатами Взаимодействие с картами - прием координат установленного на карте метки Построение маршрутов по указанным точками Кластеризация меток на карте при увеличении масштаба Теперь также поддержка тонкого и веб-клиента

1 стартмани

28.12.2012    111352    2696    Smaylukk    365    

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet

WEB v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m)

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    30508    115    Ditron    94    

Яндекс карта в документе "Заказ клиента" на закладке "Доставка". (Расширение) УТ 11.4

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

Показ яндекс карты в документе "Заказ клиента" на закладке "Доставка" и печать карты для курьера с контактными данными. (Расширение)

3 стартмани

05.02.2019    12684    12    ret    7    

Яндекс карты 2.1. Построение маршрута. Передача длины маршрута в реквизит формы

WEB v8 1cv8.cf Абонемент ($m)

Пригодится как пример использования Яндекс карты 2.1 для построения маршрута.

1 стартмани

24.01.2019    16668    83    John_d    33    

Пример использования REST API Яндекс Диска Промо

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    28987    46    MKFreeUser    15