1с как сжать хранилище

Обновлено: 07.07.2024

Если до работы в 1С:Предприятии 8.3 Вы пользовались предыдущими версиями программы (8.2, 8.1, 8.0, не говоря уже о 7.7), то не могли не заметить, что при переходе на версию платформы 8.3 размер информационной базы (ИБ) значительно возрос.

Во-первых, уже просто пустая база занимает места столько, как будто в ней уже очень много данных. Во-вторых, в процессе использования программы размер базы растёт значительно быстрее.

Во многом увеличение размера базы 1С:Предприятие 8.3 в сравнении с предыдущими версиями обусловлено переходом на "управляемые формы", но мы это здесь обсуждать не будем, а рассмотрим некоторые способы сокращения размера базы, которые могут быть полезны обычным пользователям программы.

К сведению программистов, сисадминов и прочих IT-специалистов

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

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

Замечание для обычных пользователей

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

К другим конфигурациям всё сказанное применимо "по аналогии".

Итак, посмотрим некоторые способы сокращения размера базы 1С, а также как сделать так, чтобы база не увеличивалась чрезмерно.

Отказ от ответственности

Все операции, предлагаемые в статье, Вы выполняете на свой страх и риск. Мы лишь приводим информацию в образовательных целях.

Если у Вас есть сомнения - обратитесь к специалисту по 1С Вашей компании.

Не загружайте в базу КЛАДР/ФИАС полностью!

Довольно часто происходит следующее: пользователь берёт и загружает все регионы адресного классификатора. Происходит это обычно по трём основным причинам:

  1. Пользователь новичок и "не подумал", зачем ему все регионы в базе, то есть загрузил "на всякий случай".
  2. "Не знал", что можно загрузить только часть справочника (маловероятно, но и так бывает).
  3. "Надоело" время от времени добавлять новые регионы, когда они реально требуются, но при этом не загружены (два-три-четыре раза добавил новые регионы, а потом надоело и решил загрузить сразу весь справочник, чтобы больше на это не отвлекаться).

В результате в базу 1С попадает очень много лишних данных, а размер самой ИБ возрастает очень существенно. Давайте посмотрим, на сколько именно:

  • версия 8.2: 1500 Мб ( + 1 Гб к пустой базе);
  • версия 8.3: 3000 Мб ( + 2,5 Гб к пустой базе);

Таким образом, не стоит загружать те регионы, которые реально не используются. Это не просто лишние данные, но они также попадают и в резервные копии (что увеличивает размер бэкапа, а также время его создания).

Если Вы уже загрузили лишнее, то удалите ненужные регионы и размер базы уменьшится.

Как уменьшить старую базу 1С:Предприятие

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

(!) Обратите внимание, что эта операция не может быть отменена (кроме как восстановлением из резервной копии), поэтому подумайте перед её выполнением (и сделайте копию базы).

Принцип свёртки заключается в том, что в базе есть старые документы, которые на 100% никогда уже не понадобятся. От них можно избавиться, урезав базу до определённой даты (до какой - смотрите сами).

Данная операция выполняется из раздела Администрирование. Где конкретно находится этот пункт, зависит от точной версии программы и конфигурации (в любом случае есть быстрый поиск по меню). Ниже приведён скриншот для одной из версий 1С:Бухгалтерии 8.3.

В процессе выполнения свёртки 1С проверит все документы от начала базы и до указанной Вами даты свёртки, после чего на основе этих документов сформирует "остатки", а сами данные удаляет.

В результате база не пострадает, итого не "поплывут", но документов станет меньше (иногда значительно). Вот так и будет сокращена база.

При выполнении свёртки следуйте инструкциям 1С. Если же Вы не уверены, что сможете (и хотите) делать это самостоятельно, обратитесь к соответствующему IT-специалисту Вашей компании.

Замечание: вообще так всегда и следует делать, поскольку техническое обслуживание базы - не дело рядового пользователя. Тем не менее, знание подобных операций часто бывает очень полезно владельцам мелких ИП/ООО.

Очистите журнал регистрации

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

Представьте себе, что все Ваши действия в 1С записываются годами! Это очень много данных.

Конечно, иногда информация из журнала регистрации может быть очень полезной. Но для большинства пользователей эти данные не несут никакой полезной нагрузки и могут быть без последствий удалены. Если Вы сомневаетесь в целесообразности данной операции - проконсультируйтесь с 1С-программистом или системным администратором Вашей компании!

Журнал регистрации можно очистить через Конфигуратор. Принцип показан на скриншоте ниже.

Чтобы журнал в дальнейшем не забился снова, настройте сохранение только критичных для Вас данных.

Если у Вас файловая база 1С, то есть все данные хранятся в папке на диске, то очистить журнал можно удалением подпапки 1Cv8Log.

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

Уменьшаем размер резервной копии базы

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

Кстати, это доказывает, что база 1С состоит в основном из пустоты.

Есть ли вообще смысл уменьшать размер базы?

Чем меньше база, тем быстрее работает программа. А поскольку современные версии 1С:Предприятие 8.3 весьма "тормозные", то ускорить их не помешает.

Заметите ли Вы эффект от уменьшения размера базы? Это зависит от каждого случая индивидуально. В любом случае чем меньше места занимает ИБ, тем:

  • быстрее выполняется регулярное резервное копирование;
  • меньше места занимают резервные копии;
  • сама база занимает меньше места;
  • программа может работать быстрее (заранее сложно сказать);

Дополнительная информация по теме

На нашем сайте приведено также сравнение размеров базы для версии 1С:Предприятие 8.3 и 8.2 для конфигурации "Бухгалтерия предприятия". Вы можете на примере сравнить, как изменился размер базы при переходе на версию 8.3.

Также по указанной ссылке находится более подробное описание рассмотренных выше некоторых способов сжатия базы.

Поделитесь своим опытом

Знаете другие способы сжатия базы или просто имеете опыт уменьшения размера базы 1С:Предприятия? Поделитесь своим опытом в комментариях - это поможет другим пользователям лучше понять программу.

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

Проблема размера базы эффективно решается сверткой базы 1С. При этом все старые документы в базе 1С удаляются, а вместо них создаются документы «Ввод начальных остатков».

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

Существует несколько простых способов, которые помогут поддерживать базу 1С в разумных размерах, не прибегая к свертке базы:

  1. Настройка автоматического удаление помеченных на удаление объектов.
  2. Настройка и сокращение журнала регистрации базы 1С.
  3. Сжатие базы 1С в случаях, когда база 1С файловая.

Рассмотрим указанные способы подробнее:

1. Настройка автоматического удаления помеченных на удаление объектов

Со временем в базе 1С накапливаются помеченные на удаление объекты. Эти объекты физически занимают некоторую объема базы 1С.

Помеченные на удаление объекты можно периодически удалять вручную, но можно настроить так, чтобы этот процесс выполнялся автоматически.

Рассмотрим настройку автоматического удаления помеченных на удаление объектов на примере конфигурации 1С: Управление Торговлей:

1. Перейдите на закладку «НСИ и Администрирование» и выберите «Обслуживание»:


2. Откроется окно «Обслуживание». В окне выберите «Удаление помеченных объектов»:


3. Откроется окно «Удаление помеченных объектов». В окне установите флажок «Автоматически удалять помеченные объекты по расписанию»


4. Откроется окно «Расписание». В окне на закладке «Общие», укажите как часто нужно запускать удаление помеченных объектов. Каждый день или, например, каждые 7 дней (1 раз в неделю):


5. Затем в окне «Расписание» перейдите на закладку «Дневное» и укажите желаемое время, когда должно запускаться удаление помеченных объектов. Например, начало с 4:00 до 4:15, завершать после 6:00:


ВАЖНО! Если база 1С файловая, то автоматическое удаление помеченных объектов сможет запускаться только, когда база открыта у одного из пользователей. В этом случае расписание нужно устанавливать так, чтобы автоматическое удаление запускалось в рабочее время, например, в начале или в конце рабочего дня.

6. Когда расписание настроено. В окне «Расписание» нажмите «Ок», затем закройте окно «Удаление помеченных объектов»:


7. Готово. Автоматическое удаление помеченных на удаление объектов в базе 1С настроено.

2. Настройка и сокращение журнала регистрации базы 1С

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

Т.к. журнал ведется с самого начала работы базы 1С, то со временем, размер журнала по объему может превысить размер самой базы 1С. Поэтому рекомендуется периодически сокращать журнал регистрации, удаляя из него старые записи, которые уже точно не пригодятся.

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

Для того, чтобы настроить и сократить журнал регистрации 1С нужно выполнить следующие действия:

1. Запустите Вашу базу 1С в режиме «Конфигуратор»:


2. В конфигураторе перейдите на закладку «Администрирование» и выберите «Настройка журнала регистрации»

3. Откроется окно «Настройка журнала регистрации». В окне в поле «Регистрировать в журнале события» настраивается уровень детализации журнала:


Обычно в поле установлен флажок «Регистрировать ошибки, предупреждения, информацию, примечания», что означает максимальный уровень детализации журнала:


Если в Вашей базе 1С журнал регистрации увеличивается в размерах очень быстро, то можно уменьшить уровень детализации журнала установив флажок «Регистрировать ошибки, предупреждения, информацию» или «Регистрировать ошибки, предупреждения»:


Устанавливать флажок «Не регистрировать» или «Регистрировать ошибки» НЕ рекомендуется, т.к. в этом случае, при возникновении проблем с базой 1С, специалистам будет сложнее разобраться в причинах ошибки.

4. В окне «Настройка журнала регистрации» нажмите кнопку «Сократить»:


5. Откроется окно «Сократить журнал регистрации». В окне в поле «Удалить события до» укажите дату, до которой нужно удались старые записи журнала. Обычно указывают начало этого или прошлого месяца. Затем нажмите кнопку «ОК»:


6. Откроется окно с вопросом. В окне нажмите кнопку «Да»:


7. Начнется удаление старых записей журнала регистрации. Удаление может занять некоторое время. Когда удаление записей завершится, окна «Сократить журнал регистрации» закроется автоматически. Закройте окно «Настройка журнала регистрации»:


8. Готово. Журнал регистрации базы 1С настроен и сокращен.

3. Сжатие файловой базы 1С

База 1С может храниться на жестком диске компьютера в обычном виде и в сжатом виде. В сжатом виде база 1С занимает значительно меньше места. Сжатая база может занимать более чем в 2 раза меньше места.

Если база 1С серверная, то за сжатие базы 1С отвечает сервер (sql или другой). При правильной настройке сервера база 1С всегда находится в сжатом виде и дополнительных действия со стороны пользователя не требуется.

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

ВАЖНО! Описанный способ сжатия базы 1С подходит только для случаев, когда база 1С файловая. Если база 1С серверная, то, чтобы настроить сжатие базы, нужно обратиться к системному администратору.

Для того, чтобы сжать файловую базу 1С, нужно выполнить следующие действия:

1. Закройте базу 1С на всех компьютерах, если она где-то открыта.

2. Запустите Вашу базу 1С в режиме «Конфигуратор»:


3. В конфигураторе перейдите на закладку «Администрирование» и нажмите кнопку «Тестирование и исправление»:


4. Откроется окно с вопросом. В окне нажмите кнопку «Продолжить»:


5. Откроется окно «Тестирование и исправление информационной базы». В окне в списке «Таблицы и режимы» установите только один флажок «Сжатие таблиц информационной базы» и нажмите кнопку «Выполнить»:


ВАЖНО! Следует убедиться, что установлен только флажок «Сжатие таблиц информационной базы». Все остальные флажки в списке «Таблицы и режимы» должны быть сняты. Неправильная их установка может привести к проблемам с базой 1С.

Если база 1С большая, то сжатие таблиц может выполняться довольно долго. При необходимости, Вы в окне можете установить флажок «Прервать выполнение проверки через» и указать, когда следует прекратить сжатие таблиц:


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

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

По мере накопления в базе файлов она работает всё медленнее. Чтобы сохранять высокую работоспособность базы, можно перенести её на сервер, уменьшить размер отправляемых файлов, либо почистить её, просто выгрузив лишнее. В этой статье будут рассмотрены способы уменьшения размера базы.

Вложенные файлы в 1С – где они расположены?

Чтобы посмотреть вложения, нужно нажать на кнопку-скрепку «Присоединённые файлы».



Документы могут быть в формате XML, либо сканированными в форматах JPG, PNG, TIF, PDF.



В справочники и журналы документов можно добавлять документы любого формата: таблицы Excel, текстовые документы Word, архивы и прочие.



«Кнопка-скрепка» есть в большей части журналов и документов – на неё стоит обратить внимание.



Если нажать её, можно будет загрузить документ в базу с диска.

Как уменьшить размер базы 1С

О наличии прикреплённого вложения после этого будет говорить значок в виде скрепки в строке документа.



Загружать можно как через журналы либо документы, так и через справочники 1С. К примеру, договор контрагента в раздел «Справочники» – «Договоры».



Это весьма удобно, ведь документы постоянно в базе и их не приходится искать – можно посмотреть сразу, как только понадобились. Но постепенно база из-за этого растёт, и в какой-то момент может начать доставлять неудобства из-за ощутимо снизившейся скорости работы.

Разберём, какими способами бороться с этим.

Варианты решения: сохранение на диск или сервер, архивация документов

В 1С доступны следующие варианты решения проблемы с размером базы:

  • Первый – хранить файлы на диске компьютера в томах. При такой настройке документы будут доступны из базы столь же легко, как если бы они в ней хранились, но в действительности хранятся на диске компьютера либо на сервере в отдельной папке.
  • Второй – сохранение документов из базы в архив. Файлы при этом удаляются из базы, так что из программы 1С они не будут доступны, но в любой момент их можно будет восстановить из архива.

Какой вариант применить решать самому пользователю, далее будет рассмотрена настройка каждого из них.

Важно: в любом случае обязательно сохранить копию базы. Дело даже не в том, что неприятности могут случиться во время выгрузки данных (хотя такая вероятность существует), просто после очищения из базы лишних файлов вернуться к ним обычно уже не получится.

К примеру, в базе находится требование о предоставлении документов и ваш ответ на него с вложенными файлами. После очищения данных вложенные файлы просто пропадут – их больше не будет в базе, так что само требование вы увидеть сможете, а вот посмотреть детали уже нет. Именно поэтому обязательно нужно сохранить копию базы, ведь к старым документам нередко приходится возвращаться.

Если вы боитесь выполнять описанные процедуры самостоятельно, стоит доверить их специалистам по 1С.

Далее рассмотрим, как очистить базу 1С от всего лишнего.

Хранение файлов на диске компьютера

Эта настройка применяется ко всей базе, храниться так будут все документы, прикреплённые в 1С. Пользователь не будет замечать разницы во время работы – так, словно всё хранится в базе самой программы.

Шаг первый. Чтобы настроить хранение файлов на диске, нужно перейти в раздел «Администрирование», отыскать подраздел «Настройки программы» и открыть в нём «Настройки работы с файлами».



Есть два варианта настройки хранения файлов на томах на диске:

  • только в томах на диске;
  • в информационной базе и томах на диске.



Если выбрать первый вариант, все документы будут храниться на диске компьютера.



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



Можно установить ограничение по объёму файла в информационной базе. В таком случае все превышающие это ограничение файлы будут отправляться на диск вне зависимости от других настроек.



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



Когда определитесь с вариантом хранения, нужно будет выполнить настройку томов.

Если стоит галочка «Создавать подкаталоги с именами справочников-владельцев файлов», то файлы в томах будут размещаться в папках-подкаталогах.

Шаг второй. Нажмите на гиперссылку «Тома хранения файлов», выделенную на картинке ниже.



Шаг третий. В появившемся окне нажмите на кнопку «Создать» и проведите настройку.



Шаг четвёртый. Дайте тому наименование – оно может быть любым, и укажите путь к нему на сервере. Задайте его максимальный объём в мегабайтах.



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

Если сеть настроена и доступ для других компьютеров открыт, нужно лишь создать папку для хранения документов и указать в настройке.

Если сети нет и папку требуется создать на текущем компьютере, нужно перейти к следующему этапу.

Шаг пятый. Создайте папку на диске. В рассматриваемом примере она создана на диске D и называется «Документы 1С». После этого щёлкните по ней правой кнопкой мыши и зайдите в «Свойства».



Шаг шестой. Нажмите на закладку «Доступ», затем на кнопку «Общий доступ. ».





Появится окно, где нужно просто нажать на «Готово» и сетевой доступ к папке будет открыт. Скопировать его можно будет на закладке «Доступ». Если доступ к папке у пользователя был открыт, нужно его проверить и скопировать путь к папке, после чего указать в поле настройки хранения томов.



Шаг восьмой. Когда путь к папке будет указан, нажмите «Записать и закрыть».



В результате проведённой настройки файлы прикрепляемых документов будут сохраняться на диск компьютера. Но что насчёт информации, которая уже есть в базе? Они тоже занимает место, а многие принимаются за настройку лишь когда база становится очень велика и начинает мешать работе.

Настройте перенос: он должен быть сделан из информационной базы в указанный том. Нажмите «Перенести».



Доступны дополнительные настройки переноса, так, можно отметить файлы указанного владельца и загрузить только договоры, как указано на рисунке.



Шаг десятый. Найдите раздел «Администрирование», затем подраздел «Обслуживание».



Шаг одиннадцатый. Разверните «Регламентные операции», нажмите на гиперссылку «Регламентные и фоновые задания».



Шаг двенадцатый. Выделите отмеченную на картинке ниже строку и нажмите «Выполнить сейчас».



Переносится только 10 файлов, так что пользователю удобнее настроить расписание выполнения указанного задания для автоматического запуска переноса по кнопке «Настроить расписание. ».

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

Сжатие таблиц в режиме «Конфигуратор»

Чтобы сжать таблицы, нужно сделать следующее:

Запустите базу в режиме «Конфигуратор».



Отправьтесь в раздел «Администрирование» и нажмите на «Тестирование и исправление. ».



Установите галочку и нажмите «Выполнить».

Ставить галочку следует в пункты:

«Сжатие таблиц информационной базы» для файлового варианта информационной базы.



«Реструктуризация таблиц информационной базы» для клиент-серверного варианта.



В результате база будет сжата и её размер уменьшится.

Архивирование документов

Ещё один способ выгрузить документы из программы – провести их архивирование. Для этого потребуется скачать с сайта 1С обработку «Создание архива документооборота».

Стоит напомнить: если пользоваться этим вариантом, доступа из программы к документам не будет. Если потребуется, их можно будет восстановить из архива при помощи той же обработки.

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

После этого нужно открыть обработку: для этого нажмите кнопку «Сервис и настройки», выберите «Файл», затем «Открыть».



Далее нажмите на «Создание архива документооборота».



Появится предупреждение, нужно ответить «Да» и разрешить открыть файл.



У обработки две вкладки – архивация и восстановление. При помощи первой создаётся архив, а во второй можно извлечь документы из него.

В первой вкладке следует указать каталог архива.

Чтобы удалить файлы из базы 1С, нужно поставить галочку рядом с «Удалять файлы из базы». Объём файлов будет оценён системой, так что пользователь сможет увидеть, сколько места требуется для архива.



У обработки есть и другие настройки, можно ограничить период обработки документов, настроить выбор группы.

Когда все настройки будут сделаны, нажмите на «Архивировать».



Остаётся только нажать на «Закрыть» – архивация завершена.



Теперь в разделе «Администрирование», далее «Тестирование и исправление. » нужно выполнить сжатие таблиц базы в режиме «Конфигуратор». Как это делается уже было рассмотрено ранее.

Восстановление из архива

Если потребовались данные, удалённые из базы при архивации, их можно восстановить из архива. Для этого применяется та же обработка, только теперь её вторая закладка – «Восстановление».

Нужно указать путь к архиву и нажать на «Восстановить».



Файлы будут выгружены в ту базу, откуда загружались – это единственный вариант.

Алгоритм компресии Deflate является старым, но проверенным временем форматом для сжатия данных без потерь. Яркий пример его применения - это файловые архивы ZIP. Deflate используется во многих программах. В том числе и в платформе 1С для хранения информации в более компактном представлении. Иногда приходится манипулировать данными напрямую через СУБД и тут нужен какой-то инструмент для распаковки сжатых данных. Хотя платформа 1с делает это на лету и прозрачно для пользователя.


Что под капотом

Распаковка данных, сжатых по алгоритму Deflate, осуществляется следующим образом: к сжатым данным клеятся структуры описания формата ZIP и на выходе получается почти корректный ZIP файл. Далее натравляем на него класс чтения ZIP файла и извлекаем, пусть и с выбросом ошибки, но полностью правильный, исходный файл.
Сжатие данных идет в обратном порядке: на файл натравливаем класс записи ZIP файла и пакуем этот файл, далее, отбрасываем структуры, описывающие ZIP формат, и на выходе получаем голые данные, сжатые по алгоритму Deflate.
Непосредственно, работа с Deflate здесь не реализована, выручают классы по работе с ZIP архивами. Но зато для сжатия/распаковки не требуются внешние компоненты и/или COM объекты.
Все это стало удобным с версии платформы 8.3.9+, когда появились классы для удобной работы с бинарными данными. Можно легко манипулировать отдельными байтами.


Что мы получаем

Здесь представлена обработка, позволяющая производить сжатие отдельного файла по алгоритму Deflate, а также распаковывать из сжатого файла данные. Также в коде представлены методы для преобразования чисел между любыми системами счисления (от 2 до 36). Основной движок обработки можно легко перенести в вашу БД/обработку. Механизм может независимо работать или на клиенте, или на сервере, причем в любой поддерживаемой ОС.


FAQ

Q: В коде много магических чисел, много лишних операций, зачем так неоптимально?
A: Это сделано для наглядности, чтобы расписать более подробно формат ZIP.

Q: А если обработка сжимает/распаковывает не правильно или по своему алгоритму? Как это проверить?
A: Легко. Создаете реквизит с типом ХранилищеЗначения, засовываете в него данные, указываете уровень сжатия > 0. В вашей СУБД дергаете из соответствующего поля двоичное значение, отбрасываете первые 18 байт (это эска пишет описание для ХЗ), и в остатке будет голый Deflate.

Q: Где это используется?
A: Это используется в продакшене при выносе большого объема бинарных данных из базы эски во внешнюю БД, из которой потом при запросе подтягиваются данные через внешние источники, которые разжимаются данным механизмом.

Как оказалось, на ИС уже есть похожие публикации, но там либо применяется внешний EXE-шник, либо внешняя компонента, либо работа с бинарными данными идет через европу.


Update 25.01.2018 (v.1.1)

Исправлена ошибка в механизме сжатия (в 4-х байтовый буфер считывалось 2 байта о размере сжатых данных). Исправлены незначительные ошибки. Скорректирован интерфейс. Требуется платформа 8.3.9+ и включенный режим использования синхронных вызовов расширений платформы и внешних компонент.

Читайте также: