Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза

Публикация № 844121

Разработка - Системная интеграция - Интеграция с WEB

gzip deflate

69
В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

Будет работать на платформе 8.3.9 + . Потому что работа с двоичными данными появилась только в них.

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

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

1) Вставляем заголовок, чтобы сервер понимал, что мы умеем принимать этот формат

Заголовки.Вставить("Accept-Encoding", "gzip");

2) Получаем ответ в виде двоичных данных 

3) Вырезаем сжатое тело (Байты с 10 по ДлинаТела - 8)

4) Формируем валидные залоговоки формата ZIP файла и добавляем к нему сжатое тело (Пример формирование валидных ZIP заголовков взят отсюда //expert.bizon22.ru/public/618906/, и доработаны)

5) Извлекаем данные с использованием ЧтениеZipФайла

 

Во вложении готовая функция, можно копировать в проект и использовать.

Если будет советы по оптимизации и улучшению, просьба в личку.

69

Скачать файлы

Наименование Файл Версия Размер
Готовая функция
.epf 8,52Kb
08.06.18
51
.epf 1 8,52Kb 51 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. PerlAmutor 47 08.06.18 11:57 Сейчас в теме
(0)
Будет работать на платформе 8.3.9 + . Потому что работа с двоичными данными появилась только в них.

Тема актуальная, т.к. сайт РБК "любит" отдавать курсы валют в Gzip формате, если запрашивать периодом. Никакие переданные ему ключи в заголовках на его поведение не влияют.

К сожалению у меня платформа 8.3.7. Каким-то образом в ней можно извернуться так, чтобы добавить к данным заголовок (может через прямое редактирование base64 строки)?
---
Кажется нашел как можно сделать на старых платформах, благодаря Александру Шпагину, но это работает только с deflate, а по поводу Gzip вопрос остается открытым:

// сжатие решается конструкцией: 
    
    ХЗ = Новый ХранилищеЗначения(НашеЗначениеКотороеНадоСжать, СжатиеДанных(9));
    СтрокаBase64 = СериализаторXDTO.XMLСтрока(ХЗ);
    СжатыеДвоичныеДанные = Base64Значение(СтрокаBase64);


// распаковка: 
    СтрокаBase64 = Base64Строка(СжатыеДвоичныеДанные);
    ХЗ = СериализаторXDTO.XMLЗначение(Тип("ХранилищеЗначения"), СтрокаBase64);
    НашеЗначение = ХЗ.Получить();

Показать
DrAku1a; Поручик; gradi; +3 Ответить
2. Malfarion 194 08.06.18 12:36 Сейчас в теме
(1) Говорят что формат deflate не используется сейчас веб серверами, хотя deflate = gzip без заголовков (чисто сжатые данные), для стандартизации все перешли на gzip.
3. PerlAmutor 47 08.06.18 16:20 Сейчас в теме
(1) К сожалению вариант с ХранилищемЗначения не работает, если на вход поступает Base64 строка с чистыми Deflate данными...
4. oyti 37 08.06.18 17:15 Сейчас в теме
Как раз совсем недавно бился над данным вопросом и временно перешел на обмен без сжатия (что так себе вариант).
Спасибо. Будем тестировать...
5. PerlAmutor 47 09.06.18 12:11 Сейчас в теме
Кстати насчет обновления курсов валют с сайта РБК. Один и тот же запрос валюты может возвращать 10 раз несжатый траффик, а потом ему что-то в голову бьет и начинает возвращать снова в gzip.
6. fr13 09.06.18 19:40 Сейчас в теме
автор, спасибо! актуально
8. GoodZone 9 28.08.18 08:53 Сейчас в теме
Подскажите
ИмяСжатогоФайла="body.json";
это принципиально?
9. Malfarion 194 28.08.18 11:06 Сейчас в теме
(8) На сколько я помню нет.
10. GoodZone 9 29.08.18 09:48 Сейчас в теме
Просто подумал может тег body )), а так проверил все работает на ура. Очень нужная вещь.
11. milanse 33 14.03.19 09:26 Сейчас в теме
Есть задача данные в формате gzip распаковывать из 1С, качнул обработину, в лоб не работает. Данные содержат заголовок gzip. Убрал заголовок, отрезал хвост в соотвествии с форматом, остались только данные deflate результирующий файл 1с не распаковывает. Файл читается 7zip и far, выдает ошибку crc, но данные достает нормально....
Может есть идеи что еще можно подшаманить ?
14. uno-c 106 18.07.19 15:59 Сейчас в теме
(11)
Может есть идеи что еще можно подшаманить ?
Посмотрите описание формата gzip: http://www.zlib.org/rfc-gzip.html Согласно этому описанию, за первыми 10 байтами не обязательно следует deflate. Перед deflate могут присутствовать также имя файла, комментарий и т.д. В случае gzip сжатого тела ответа HTTP они отсутствуют, т.е. за 10 байтами сразу начинается deflate, но для Вашей задачи нужен дальнейший разбор и проверка присутствия комментария, имени файла и проч.
15. milanse 33 18.07.19 19:15 Сейчас в теме
(14) спасибо посмотрю, но пока пришлось решить через ВК.
12. ui69 41 14.06.19 12:17 Сейчас в теме
Автору - спасибо! Работает четко.
13. boogie 479 07.07.19 15:12 Сейчас в теме
Оставьте свое сообщение

См. также

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Автозаполнение адреса по КЛАДР в УПП при выгрузке контрагента с портала компании (API dadata) 26

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB

Заведение, согласование контрагентов организовано на портале компании. Далее по web-сервису контрагенты выгружаются в УПП (юр.адрес и факт.адрес выгружаются строкой). Задача автоматизировать заполнение адреса в УПП по КЛАДР.

1 стартмани

03.12.2019    1311    1    John_d    8       

Работа с Яндекс-картами в 1С 41

Отчеты и формы Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Windows Абонемент ($m) WEB

Работа с Яндекс-картами в 1С (управляемое приложение). Обработка показывает, как можно найти адреса на карте Яндекс, проложить маршрут.

1 стартмани

20.11.2019    3831    26    Diana.dedov.91    0       

Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!

29700 руб.

"Живые" картинки со Snap.SVG 60

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) Практика программирования WEB Работа с интерфейсом

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

1 стартмани

24.10.2019    4760    8    blackhole321    2       

Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо

Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.

9000 рублей

Яндекс сервисы [Расширение] 38

Инструменты и обработки no Расширение (cfe) v8 1cv8.cf Абонемент ($m) Универсальные обработки WEB

Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)

1 стартмани

24.10.2019    3976    6    noprogrammer    2       

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 1. Авторизация 42

Статья Программист Конфигурация (md, cf) v8 Windows Абонемент ($m) WEB

Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью функционала Rest API предоставляемого платформой (CMS) WordPress (WooCommerce). Без дополнительных приложений на PHP/вставьте сюда любой другой язык программирования/.

1 стартмани

12.10.2019    4695    5    osivv    28       

Базовый курс для начинающих 1С-программистов. Пятый поток. Онлайн-курс с 12 февраля по 15 апреля 2020 г. Промо

Данный онлайн-курс является начальной ступенью по изучению базовых принципов программирования в системе “1С:Предприятие” и предназначен для обучения 1С-программированию “с нуля”.

4500/9500 рублей

Telegram бот на 1С 42

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    5280    14    budidich    15       

С 2020 года сервис «Продление поддержки конфигурации 1С:УПП» подорожает вдвое Промо

Успейте продлить поддержку УПП до повышения цен! Фирма «1С» предупредила об изменении цен на сервис «Продление поддержки конфигурации "1С:Управление производственным предприятием"». С 1 января 2020 года сервис подорожает в два раза.

Выгрузка номенклатуры в социальную сеть Вконтакте 32

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Оптовая торговля Розничная торговля Абонемент ($m) WEB

Обработка для быстрой и легкой выгрузки товаров Вконтакт. Так просто еще не было)))

2 стартмани

14.08.2019    4141    14    kalyuzhny    23       

Путеводитель по истории релизов 37

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) WEB

Отчет по истории выпуска релизов и анализа информации по обновлениям.

5 стартмани

13.08.2019    4709    7    YPermitin    15       

Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.127.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.

29700 руб.

Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода) 28

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB

Простая обработка по отправке или получение данных с любого сервера главное знать ресурс (выполняемую функцию) и тело запроса.

1 стартмани

12.08.2019    4004    6    MaxPowerr    5       

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery с кэшированием 95

Статья Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) WEB

В статье описан способ создания "фронтенда" на HTML/CSS/jQuery и скрипт кеширования AJAX запросов на PHP.

1 стартмани

06.08.2019    6723    9    Sedaiko    22       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Конфигурация для обмена данными (интеграционная шина) 27

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Windows Абонемент ($m) Внешние источники данных WEB

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

4 стартмани

08.07.2019    4202    19    miha-28    15       

Шаблон http-сервиса для вашего проекта 89

Инструменты и обработки Программист Архив с данными v8 v8::Mobile 1cv8.cf Абонемент ($m) Внешние источники данных WEB Мобильная разработка

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

3 стартмани

04.05.2019    8878    57    MarkoSokolov    47       

Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо

Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!

29700 руб.

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки 124

Статья Программист Архив с данными v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных Обмен через XML WEB Разработка

В этой статье мы рассмотрим путь и основные моменты создания небольшого вэб-сервиса, который мы называем "Онлайн Прайс-лист". Выгрузка из 1С, бэкенд, фронтенд, получение заказов в 1С.

1 стартмани

22.04.2019    18609    18    riposte    63       

1С и WebKit. Вариант взаимодействия 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) WEB

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    12677    40    mi1man    42       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet 77

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m) WEB

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    11883    63    Ditron    21       

Яндекс карта в документе "Заказ клиента" на закладке "Доставка". (Расширение) УТ 11.4 28

Инструменты и обработки Пользователь Расширение (cfe) v8 УТ11 Россия УУ Оптовая торговля Абонемент ($m) Обработка документов WEB

Показ яндекс карты в документе "Заказ клиента" на закладке "Доставка" и печать карты для курьера с контактными данными. (Расширение)

3 стартмани

05.02.2019    4970    11    ret    6       

Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Предоставляем техподдержку по всем вопросам данного обмена. Можем подключиться к вам удаленно для разбора ситуаций. Оперативно обновляем при выходе новых релизов 1С. Бесплатные обновления в течение полугода.

19700 руб.

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 562

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    31327    281    bonv    117       

Яндекс карты 2.1. Построение маршрута. Передача длины маршрута в реквизит формы 43

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB

Пригодится как пример использования Яндекс карты 2.1 для построения маршрута.

1 стартмани

24.01.2019    6166    53    John_d    32       

Новогодние скидки на авторское ПО Промо

В преддверии праздника в Маркетплейсе на Инфостарт действует скидка на все платные авторские программы. Размер скидок начинается от 10%. Советуем не откладывать покупки, многие наши партнеры повышают цены на свои продукты именно в начале нового года.

Проверка VAT номеров 2

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    5238    wtlz    0       

Веб-форма авторизации/регистрации/восстановления пароля для веб-клиента 1С с помощью HTML/CSS/PHP/HTTP-сервисов 1С 29

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Абонемент ($m) WEB

Пришла в голову идея создать универсальную веб-форму входа в веб-клиент 1С на HTML/CSS/PHP/HTTP-сервисы 1С. Чтобы прямо как на нормальных сайтах. Заодно и для ознакомления с 1С с новой, для себя, стороны. Интересно было попробовать интеграцию PHP - 1С.

1 стартмани

08.11.2018    8908    21    Бэнни    15       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Загрузка чека онлайн-касс (загрузка товаров из чека) 39

Инструменты и обработки Системный администратор Программист Бухгалтер Внешняя обработка (ert,epf) v8 1cv8.cf Кассовые операции Розничная торговля Абонемент ($m) Внешние источники данных WEB

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС proverkacheka.nalog.ru

2 стартмани

08.10.2018    9360    26    echo77    33       

Работа с публикациями "Инфостарт" 14

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    10769    10    RocKeR_13    16