Сжатие и распаковка Deflate, zlib и gzip средствами платформы 1С: CRC-32, Adler-32, строки в Base64 (любая конфигурация)
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Задача. Распаковать данные из внешних систем и API (gzip, zlib), из таблиц базы, сжать большие строки для хранения или передачи — в платформе нет прямых функций Deflate, а известные приемы работают только с сырым потоком и «с выбросом ошибки».
Возможности
- Три формата: сырой deflate (RFC 1951), zlib (RFC 1950) с Adler-32, gzip (RFC 1952) с CRC-32, именем файла и несколькими членами.
- Распаковка с проверкой: неверная контрольная сумма или поврежденный поток — понятное исключение, а не испорченные данные.
- Быстрый путь через ZIP платформы без ошибок CRC; запасной — распаковщик и упаковщик LZ77 на встроенном языке (там, где нет временных файлов).
- CRC-32 и Adler-32 отдельными функциями; автоопределение формата по заголовку.
- Строки: текст ↔ Base64 сжатых данных.
- Форма: файл → сжать/распаковать, размеры, степень сжатия, CRC-32, время, сохранение. Код открыт.
Проверено
- Автотесты YAxUnit на демо-базах 1С:УТ 11 и 1С:Бухгалтерия 3.0, платформа 8.5: эталоны Python zlib/gzip, 3 формата × оба способа, пустые и случайные данные, поврежденная сумма, 250 КБ.
- Проход формы в клиенте УТ 11: CRC-32 сверена с эталоном.
Требования: любая конфигурация, платформа 8.3.11 и новее. В комплекте: обработка и инструкция.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.210.11
- Управление торговлей, редакция 11, релизы 11.6.2.72
Вступайте в нашу телеграмм-группу Инфостарт