Файл из 1С слишком большой: как ужать выгрузку XML, отчёт, печатную форму и копию базы

· 10 мин

Содержание

Чтобы уменьшить файл выгрузки из 1С, его сжимают в ZIP (для XML обмена выигрыш обычно в 5–15 раз) и сокращают состав данных: фильтр по периоду и организации, выгрузка только изменений вместо полной. Для отчётов работает смена формата: xlsx вместо xls, PDF вместо mxl с картинками. Для сканов и печатных форм — снижение разрешения и цветности.

Способ зависит от того, что именно вы выгружаете. XML обмена жмётся отлично. Копия базы .dt уже сжата, архиватор почти ничего не даст — её уменьшают только чисткой самой базы. Отчёт в Excel тяжелеет от оформления и детализации, а не от формата как такового.

Что выгружаетеГлавный рычагЧего ждать
📦 XML обмена (EnterpriseData, «Универсальный обмен»)ZIP-сжатие + фильтры составав 5–15 раз меньше
📊 Отчёт, табличный документформат xlsx/PDF, меньше детализациив 2–5 раз меньше
🖨️ Печатная форма со сканами и картинкамиразрешение и цветность сканов, лёгкий логотипв разы, иногда на порядок
💾 Копия базы .dtсвёртка, удаление помеченных, файлы в томахзависит от «мусора» в базе

Встроенное сжатие при выгрузке: ZIP вместо голого файла

XML — текст с повторяющимися тегами. Такой текст сжимается очень хорошо. Файл обмена на 300 МБ после упаковки нередко весит 20–40 МБ.

Синхронизация данных через файл (БП, УТ, ЗУП и другие типовые)

В типовых конфигурациях обмен настраивается в разделе Администрирование → Синхронизация данных. Если транспорт — каталог (локальный или сетевой), FTP или почта, в параметрах подключения есть флажок сжатия файлов сообщений обмена. Он упаковывает исходящий XML в ZIP-архив, а принимающая база распаковывает его сама.

Порядок действий:

  1. Откройте Администрирование → Синхронизация данных → Настройки синхронизации данных.
  2. Выберите нужную настройку обмена и откройте параметры подключения (транспорт).
  3. Найдите на вкладке транспорта флажок, отвечающий за сжатие (архивирование) файлов, и включите его.
  4. При необходимости задайте пароль на архив. Тот же пароль укажите в настройке во второй базе.
  5. Запишите настройку и выполните синхронизацию вручную, чтобы проверить приём.

Включайте сжатие с обеих сторон обмена одинаково. Если одна база шлёт архив с паролем, а другая пароля не знает, сообщение не загрузится.

Обработка «Универсальный обмен данными в формате XML»

Эта обработка из комплекта конвертации данных тоже умеет сжимать результат. На вкладке выгрузки есть параметр архивирования файла. С ним на выходе получается ZIP рядом с указанным именем XML. При загрузке обработка принимает такой архив и распаковывает его сама.

Сжатие кодом: объект ЗаписьZipФайла

Если выгрузку делает ваша обработка или регламентное задание, упакуйте файл платформенным объектом ЗаписьZipФайла. Он есть в 8.3 и не требует внешних архиваторов на сервере.

// ИмяXML — путь к уже записанному файлу выгрузки
ИмяАрхива = СтрЗаменить(ИмяXML, ".xml", ".zip");

Архив = Новый ЗаписьZipФайла(ИмяАрхива, , ,
    МетодСжатияZIP.Сжатие, УровеньСжатияZIP.Максимальный);
Архив.Добавить(ИмяXML, РежимСохраненияПутейZIP.НеСохранятьПути);
Архив.Записать();

УдалитьФайлы(ИмяXML); // исходник больше не нужен

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

Как сделать XML обмена легче: структура и состав

Сжатие уменьшает файл при передаче. Но если в XML лежат лишние данные, их всё равно придётся выгружать, передавать и загружать. Поэтому второй шаг — убрать лишнее из самого сообщения.

Выгружайте изменения, а не всю базу

Типовой обмен работает через регистрацию изменений: в сообщение попадают только объекты, изменённые с прошлого сеанса. Полная перевыгрузка нужна редко — при первой синхронизации или после сбоя.

Типичная причина «вдруг 2 ГБ» — кто-то зарегистрировал к выгрузке все документы за несколько лет. Это делается, например, при повторной настройке обмена или вручную через регистрацию изменений. Посмотреть, что стоит в очереди, можно в настройке синхронизации: там есть команда для просмотра и редактирования состава отправляемых данных. Лишнее с регистрации снимают там же.

Сузьте правила отправки

В настройке синхронизации задаются ограничения:

  • 📅 дата начала — документы раньше этой даты не уходят;
  • 🏢 организации — только выбранные юрлица;
  • 🏬 склады или другие отборы, если их предусматривает конкретный обмен.

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

Форматирование и кодировка

Если XML пишет ваш код, проверьте две вещи:

  1. Отступы. Красиво отформатированный XML с переносами и пробелами весит заметно больше. Для машинного обмена форматирование не нужно — отключите отступы в параметрах записи XML.
  2. Кодировка. UTF-8 для XML обмена — стандарт. Теги и служебные атрибуты в ней занимают по байту на символ, в UTF-16 — по два. Кириллица в обеих кодировках занимает около двух байт.

Не выгружайте реквизиты, которые приёмник не использует. Каждый лишний реквизит повторяется в каждом объекте: 50 байт на документ при 200 000 документах дают уже 10 МБ.

Отчёты и печатные формы: как снизить вес документа

Отчёт, сохранённый из 1С, тяжелеет из-за трёх вещей: формата, оформления и детализации.

Выбор формата при сохранении

Табличный документ сохраняют кнопкой с дискетой на панели отчёта или сочетанием Ctrl+S. В окне сохранения выбирается тип файла.

ФорматРазмерКогда выбирать
xlsx (Excel 2007 и новее)маленький, это уже ZIP внутриобмен с внешними системами, дальнейшая обработка
xls (Excel 97)в 2–5 раз больше xlsxтолько для очень старых программ; лимит 65 536 строк
PDFсредний, зависит от картинокотправка контрагенту, печать, архив
mxl (табличный документ 1С)среднийдля открытия в 1С или бесплатной программе просмотра
csv/txtсамый маленькийзагрузка в другие программы, без оформления
HTMLбольшой из-за разметкиредко нужен

Формат xls вмещает не больше 65 536 строк на лист. Длинная оборотно-сальдовая ведомость или журнал проводок обрежется. У xlsx предел — 1 048 576 строк.

Меньше оформления и детализации

  • 🎨 Уберите заливки, рамки и группировки, если отчёт уходит в программу, а не человеку.
  • 🔍 Снизьте детализацию: итоги по счетам вместо разворота по субконто и документам.
  • 📆 Разбейте выгрузку по периодам: квартал за кварталом вместо всего года одним файлом.

В отчётах на СКД (оборотно-сальдовая ведомость, анализ счёта, карточки) детализацию настраивают через кнопку «Настройки» отчёта. Отключив группировки по документам, вы часто уменьшаете файл в десятки раз.

Картинки в печатных формах

PDF счёта или акта весит 50–150 КБ. Если он весит 3–5 МБ, почти всегда виноваты картинки: логотип, факсимиле подписи или печати.

Что делать:

  1. Подготовьте логотип и факсимиле в PNG или JPG шириной 300–600 пикселей. Фото печати с телефона на 4000 пикселей в счёт не нужно.
  2. Загрузите облегчённые картинки в карточку организации вместо старых (в БП — справочник Организации, раздел с логотипом и факсимиле).
  3. Сформируйте печатную форму заново и сравните размер PDF.

Сканы и присоединённые файлы

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

Ориентиры для документов:

  • 🖤 черно-белый или оттенки серого вместо цветного — для текста с печатью;
  • 📏 150–200 dpi — читается и печатается; 300 dpi и выше нужно редко;
  • 📄 многостраничный PDF вместо набора отдельных картинок для многолистовых документов.

Лист A4 в цвете на 300 dpi без сжатия занимает порядка 25 МБ. Тот же лист в сером на 200 dpi в JPG — около 200–500 КБ.

Настройки выгрузки для внешних систем

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

Куда уходит выгрузка?

Чего избегать при настройке:

  • ❌ Не выгружайте «всё на всякий случай». Каждый дополнительный справочник тянет за собой связанные ссылки.
  • ❌ Не храните историю выгрузок в одном каталоге без очистки. Через год там будут гигабайты.
  • ❌ Не меняйте кодировку на windows-1251 ради экономии, если приёмник ждёт UTF-8. Файл станет меньше, но кириллица в другой системе превратится в «кракозябры».

Большие объёмы данных и выгрузка базы .dt

Почему .dt не сжимается архиватором

Файл .dt из Конфигуратор → Администрирование → Выгрузить информационную базу уже упакован платформой. 7-Zip или WinRAR уменьшат его на единицы процентов. Если .dt весит 15 ГБ, бороться надо с объёмом данных в базе.

Что реально уменьшает .dt:

  1. Удаление помеченных объектов. В БП 3.0 обработка находится в разделе Администрирование → Обслуживание. Помеченные документы и элементы справочников занимают место, пока их не удалят.
  2. Очистка версий объектов. Если в базе включено версионирование, накопленные версии весят много. Устаревшие версии удаляют в разделе Администрирование → Общие настройки, в блоке версионирования.
  3. Свёртка базы. Для баз с многолетней историей. Это необратимая операция: делайте её на копии и только после резервной копии.
  4. Файлы в томах на диске. Если присоединённые файлы хранятся в самой базе, они попадают в .dt. Если в томах на диске — не попадают.

Файлы, которые хранятся в томах на диске, не входят в .dt. Переносите базу на другой компьютер — копируйте и каталог томов. Иначе в новой базе ссылки на сканы будут вести в пустоту.

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

Журнал регистрации в .dt не входит. Если журнал файловой базы разросся, это раздувает каталог базы на диске, но не саму выгрузку.

Ограничения, на которые натыкаются при больших файлах

ОграничениеГде проявляетсяКак обойти
4 ГБ на файлфлешка с файловой системой FAT32отформатировать в exFAT или NTFS, разбить архив на тома
~25–30 МБ на вложениебольшинство почтовых сервисовоблачный диск, деление архива на части, выгрузка по периодам
65 536 строкформат xlsсохранять в xlsx или csv
Нехватка памяти при загрузкеогромный XML в один файлделить выгрузку по периодам или организациям

Внешние архиваторы умеют делить архив на тома заданного размера. В 7-Zip это поле «Разбить на тома размером» в окне добавления в архив. Получатель собирает их обратно, открывая первый том.

Очень большой XML лучше не выгружать одним файлом даже со сжатием. Загрузка 3 ГБ XML может упереться в память компьютера и оборваться посередине. Три файла по году безопаснее одного за три года.

Ошибки при сжатии и выгрузке

Диагностика: выберите симптом

Ещё одна ловушка — архивировать уже сжатое. ZIP внутри ZIP, xlsx или .dt в архиве, JPG-сканы в архиве почти не уменьшаются. Упаковка таких файлов полезна только тем, что собирает много файлов в один.

Частые вопросы

Можно ли уменьшить файл .cf конфигурации?
Почти нет. Файл конфигурации содержит код, формы и макеты в упакованном виде. Его размер определяется самой конфигурацией, а не данными базы.
Пароль на ZIP защищает выгрузку обмена?
Он закрывает содержимое от случайного просмотра при пересылке. Для персональных данных этого мало: передавайте такие файлы по защищённому каналу и не храните пароль рядом с архивом.
Стоит ли выгружать в csv вместо xlsx?
Если приёмник — программа, а не человек, да: csv без оформления самый лёгкий. Но в нём нет листов и форматов чисел, поэтому договоритесь о разделителе и кодировке заранее.
Сколько места экономит переход с PDF на mxl?
Обычно немного, а получатель без 1С файл mxl не откроет. Для внешних адресатов оставляйте PDF и облегчайте картинки.
Сжатие замедляет обмен?
Упаковка добавляет секунды на файл в десятки мегабайт. Передача по сети при этом ускоряется сильнее, поэтому в целом обмен через FTP или почту обычно идёт быстрее.