Публикация сборки сайта через 1С

30.07.23

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

Демонстрация возможного сценария развертывания сайта через 1С HTTP сервис на примере сборки react-app.

Скачать исходный код

Наименование Файл Версия Размер
Пример конфигурации - публикация сборки сайта через 1С:
.cf 84,90Kb
6
.cf 84,90Kb 6 Скачать бесплатно
Сборка сайта для тестирования
.zip 300,61Kb
6
.zip 300,61Kb 6 Скачать бесплатно

Всем привет!

Представляю прототип решения для публикации сайта через 1C.

Суть задачи в том, чтобы 1C работала с одной стороны как файловый сервер, который отдаст в браузер статические файлы (html, css, js, и прочее),  с другой стороны 1C должна реализовать rest api. Это упрощает публикацию приложения, решает  проблему CORS (api нашего сайта находится в домене сайта) в каких-то сценариях упрощает авторизацию, ну и вообще прикольно покрутить react на нашем 1С.

1. Создаем сервис отдачи сборки.

Сборка - это то, что получается после того, как сборщик проекта, например, webpack пройдется по нашему красивому проекту и соберет файлики js в один или несколько частей (чанки), чтобы проще было передавать их в браузер и вероятный противник не мог понять, что там написано, и чтобы все браузеры смогли работать с этим js (условно сложный js   может быть заменен на более простой, поддерживаемый всеми браузерами).

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




Так выглядит сборка


 

js в сборке выглядит так, и так мы это увидим, если посмотрим в браузере... (на это смотрят люди и такие... ну... это дичь я на таком писать никогда не буду)




Если кому-то захочется создать свой js фреймворк, то в нем как-то будет использоваться сборщик webpack, подробнее про него можно почитать здесь.

Задача сервиса сводится к тому, чтобы отдать файлы, запрашиваемые браузером, с установкой правильного типа контента из папки, где они лежат.

Я реализовал это в следующем виде - Модуль веб сервиса 

В модуле http сервиса реализован обработчик для отправки файлов IndexGET, который по ссылке отдаст сначала index.html и далее - связанные файлы, которые браузер запросит автоматически. 

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

2. Настройка сборки react для 1С.

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

Например, в html будет указано, что js нужно брать по следующему адресу src="/static/js/main.aff0f6f6.js"

Чтобы это было обработано 1с, нужно, чтобы адрес имел следующий вид.

src="/Portal/hs/content/static/js/main.69eafd51.js"

Для того, чтобы получить требуемую "добавку" к ссылкам, в  файле package.json добавляем параметрам "homepage": "http://localhost:9000/Portal/hs/content", соответственно при сборке webpack сделает эту добавку...

Более подробно о создании react app можно почитать здесь

3. Добавляем ручку для отправки данных Модуль веб сервиса 

Ручка реализуется посредством метода apiGET (отдает элементы справочника задачи) в json

4. Проверяем, все работает!!!

Репка, здесь есть и проект react и конфигурация 1С (выгруженная в файлики).



 

1C react статика http сборка build js

См. также

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

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

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

36000 руб.

03.08.2020    16263    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

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

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

5040 руб.

04.05.2021    18448    10    15    

16

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

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

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

22656 руб.

25.05.2021    13109    34    8    

13

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85781    26    51    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. John_d 5455 06.03.23 09:16 Сейчас в теме
Спасибо. Может пригодиться. В функцию apiGET(Запрос) пробовали передавать параметры?
2. van_za 248 06.03.23 22:42 Сейчас в теме
(1) Спасибо за отзыв. Пробовал, все отлично работает.
На всякий случай, ниже примеры:

Пример URL с параметрами
fetch(`https://api.unsplash.com/photos?client_id=${publicId}`)

Если в 1с нужно передать объект, например создание новой задачи, то лучше воспользоваться post запросом, передовая необходимую информацию в теле запроса в виде json
Пример запроса с телом.
const requestOptions = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ title: 'Fetch POST Request Example' })
};
fetch('https://reqres.in/api/articles', requestOptions)
3. paulpk 07.03.23 15:07 Сейчас в теме
Каждый запрос в браузере = 1 лицензия 1с?
4. van_za 248 08.03.23 07:00 Сейчас в теме
(3) если клиент северный вариант, тогда клиентские лицензии на http сервис не расходуется, однако по правилам мы должны иметь лицензии которые должны соответствовать количеству одновременно работающих пользователей
5. tema32 09.03.23 10:43 Сейчас в теме
В файловом варианте тоже не расходуются.
6. ONLYTILT 20 13.03.23 06:04 Сейчас в теме
(4)Тоже добавлял в сервис предоставление статичных файлов, как по мне лучше такие файлы хранить в регистре откуда они могут быть быстро прочитаны, а так же код по получению двоичных данных лучше поместить в модуль повторного использования
7. van_za 248 13.03.23 10:32 Сейчас в теме
(6)
По поводу идеи с регистром.
- усложняет систему (добавляем табличку)
-добавляет лишние действия при публикации (сделали сборку и нужно её ещё и загрузить в 1с)
- не понятно, почему из регистра будет быстрее чем из файла

По поводу повторного использования, возможно, но не очевидна частота попадания в кэш, сделал изначально так, но убрал для минимализма примера.
8. van_za 248 30.07.23 11:39 Сейчас в теме
Выложил пример конфигурации и сборку в архиве, для использования нужно
- развернуть конфигурацию
- опубликовать hs "content"
- указать в константе "Путь к сборке" путь к сборке (сборку предварительно достать из архива)
- завести в справочнике "Задачи" несколько элементов что бы они отразились на страничке
Оставьте свое сообщение