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

01.04.21

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

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

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

Наименование Файл Версия Размер
Веб доступ к 1С
.cfe 28,48Kb
25
.cfe 28,48Kb 25 Скачать

Введение

В процессе работы с 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)

 

задачник

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

См. также

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

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

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

36000 руб.

03.08.2020    15746    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    17548    6    15    

13

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

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

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

12000 руб.

02.02.2021    16359    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    88579    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2306 01.04.21 20:11 Сейчас в теме
2. comol 5051 02.04.21 19:18 Сейчас в теме
Мы чуть дальше пошли... https://github.com/comol/OneCWebFramework может проще fork и contribute пока не поздно?
detro; itoptimum; kote; dnikolaev; cleaner_it; +5 Ответить
4. DrAku1a 1679 09.07.21 15:34 Сейчас в теме
(2) "расирения конфигураций" - :-)
3. pm74 199 03.04.21 06:49 Сейчас в теме
у всех есть свой http сервис
maksa2005; simuljakr; DrAku1a; itoptimum; kote; dnikolaev; +6 Ответить
Оставьте свое сообщение