Публикация статичных файлов, используя HTTP-сервис в расширении

11.09.20

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

В статье опишу реализацию публикации статичных файлов

Скачать файл

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

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

Вводные

  • База 1С с возможностью публикации HTTP сервиса.
  • Отсутствие возможности разместить статические файлы в папке web сервера
  • Web проект поставляется в 1С собранным, для тестов использовал AdminLTE
  • Размещение файлов в макетах обработки не удобно (пример с макетами)

 

Вариант реализации

Запаковать сборку в zip архив, прикрепить двоичные данные к именованной настройке подсистемы.

При запросе к HTTP сервису искать настройку по адресу, при нахождении настройки обращаться к общему модулю с свойством "Повторное использование возвращаемых значений" = На время сеанса.

В рамках модуля с повторным использованием

  • распаковываю архив,
  • получаю список распакованных файлов,
  • помещаю каждый из них во временное хранилище на время работы сеанса.
  • относительные пути к файлам с адресами во временном хранилище помещаю в таблицу значений с индексом

В рамках обработчика ищу строку по соответствию относительного пути, если нахожу, то отдаю код 200 с телом из двоичных данных иначе 404.

 
 http_serv_ОбработчикСервиса

 

 
 http_serv_ПовторноеИспользование

 

Проверка работоспособности

Опубликовал базу по адресу "http://localhost:8080/unf_demo", HTTP сервис "api_uni", корневой адрес в настройки подсистемы "test"

Apache 2.4(x64) Платформа 8.3.17(x64), конфигурация в режиме совместимости 8.3.14.

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

Исходный тестовый файл 18 МБ, 1800+ файлов, Холодный старт 12 сек, повторный ответ в пределах 50 мсек. 

 

 
 Скриншот результата

 

Проект на GitHub ссылка

 

Итог

Через HTTP-сервис можно опубликовать статичные файлы, не "размазывая" их по макетам.

 

Благодарю за внимание.

См. также

WEB-интеграция Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

72000 руб.

19.07.2024    1122    52    0    

3

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

Подсистема интеграции Amo CRM с 1С: технические требования, порядок работы, возможности, доработки и обновления. Бесплатный период техподдержки - 1 месяц.

60000 руб.

07.05.2019    32913    62    41    

23

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

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

12000 руб.

02.02.2021    17556    48    50    

28

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

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

22656 руб.

25.05.2021    13939    40    8    

16

Обмен с ГосИС Мастера заполнения WEB-интеграция Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет Оперативный учет Управляемые формы 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Универсальное расширение конфигурации для автоматической загрузки и заполнения реквизитов контрагентов (партнеров) из ОГРН для 1С:ERP Управление предприятием 2 (1С:ERP Управление предприятием 2, редакция 2.4), 1С:ERP Управление предприятием 2 (1С:ERP Управление предприятием 2, редакция 2.2), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.5), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.4), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.3), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.2), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.4), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.2), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.0) и 1С:Бухгалтерия 8 (Бухгалтерия предприятия, редакция 3.0).

3900 руб.

08.11.2017    62500    402    295    

71
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OLEG4120 165 11.09.20 14:59 Сейчас в теме
Настали времена, что уже только за то, что автор не жадничает, можно плюсануть.
2. Cyberhawk 135 17.09.20 18:55 Сейчас в теме
ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор)
Увы, такая конструкция не является на 100% надежной: при большой интенсивности работы кластера с сеансовыми данными будет наблюдаться довольно быстрое вымывание этих данных, что при использовании "ПолучитьИзВременногоХранилища" может приводить к получению значения "Неопределено" вместо ожидаемого (казалось бы только недавно помещенного во временное хранилище) значения.
3. malikov_pro 1316 18.09.20 01:56 Сейчас в теме
(2) Благодарю за замечание, вариант решения это разнесение "статики" и динамики на разные сеансы HTTP соединений.
При интенсивной работе можно и с сис. администратором договорится и убрать ограничение "Отсутствие возможности разместить статические файлы в папке web сервера".
Статью писал как альтернативу "размазывания" файлов в макетах и коде. Вариант передать статику в zip на клиент, распаковать в tmp и использовать локально, но думаю при использовании web клиента будут проблемы, хотя так могут быть т.к. куки с session Id могут пересекаться и "ломать" сеанс на стороне 1С.
Оставьте свое сообщение