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

01.04.21

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Веб доступ к 1С
.cfe 28,48Kb
25
25 Скачать (1 SM) Купить за 1 850 руб.

Введение

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

См. также

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

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

36000 руб.

03.08.2020    17783    19    22    

16

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19850    13    17    

16

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14424    42    8    

18

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

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

24000 руб.

27.09.2024    1172    1    0    

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