Публикация сборки сайта через 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    16020    13    18    

13

Интеграция 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    18052    10    15    

14

SALE! 10%

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

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

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

28000 25200 руб.

28.05.2015    85251    26    51    

50

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

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

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

22656 руб.

25.05.2021    12948    32    8    

12

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС 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    89516    163    217    

320
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. John_d 5425 06.03.23 09:16 Сейчас в теме
Спасибо. Может пригодиться. В функцию apiGET(Запрос) пробовали передавать параметры?
2. van_za 246 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 246 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 246 13.03.23 10:32 Сейчас в теме
(6)
По поводу идеи с регистром.
- усложняет систему (добавляем табличку)
-добавляет лишние действия при публикации (сделали сборку и нужно её ещё и загрузить в 1с)
- не понятно, почему из регистра будет быстрее чем из файла

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