Skip to main content

Передача данных выгрузки из 1С на сайт — в сжатом (zip архиве) и несжатом виде

21 мая, 2020 11:41
Просмотров 643
Section background
Версия: 1.121.0 | Последнее обновление: 01 марта 2023 | открыть

1C может передавать выгрузку на сайт, как в сжатом виде (в zip архиве), так и в несжатом, то есть каждый файл по отдельности.

Безусловно, вариант передачи в сжатом виде является более оптимальным, так как передается меньший объем данных и меньшим числом запросов (без сжатия, каждый файл передается отдельно и отдельным запросом), что может очень существенно сэкономить время на передаче, в особенности, когда много картинок или размер xml велик (данные в xml содержат большое количество одинаковой информации, так как теги имеют одинаковые имена, что очень хорошо поддается сжатию, к примеру 40 мегабайт xml из выгрузки, в архиве занимают порядка 500 килобайт).

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

Работает это следующим образом:

Перед тем, как передавать данные на сайт, 1С отправляет запрос вида — «type=catalog&mode=init», запрашивая от сайта параметры обмена, а именно, поддерживается ли передача в сжатом виде и ограничение на размер части данных, в ответ получая «zip=yes» или «zip=no» и «file_limit=значение» и уже использует полученные настройки в логике выгрузки. 

Вариант 1: Если в ответ было получено «zip=yes», то 1С сжимает сформированную выгрузку в архив и передает его на сайт. После завершения передачи архива, 1С начинает передавать запросы вида «type=catalog&mode=import&filename=имя xml файла» на сайт для того, чтобы он обработал переданные данные, сайт получив первый такой запрос, распаковывает ранее полученный архив. 

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

Вариант 2: Если в ответ было получено «zip=no», то 1С не сжимает выгрузку в архив, а сразу после формирования, начинает последовательную передачу на сайт, при этом каждый файл, включая картинки, передается отдельно.

Поделиться: