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

· 9 мин

Содержание

Чтобы сжать файл для 1С, упакуйте его архиватором: 7-Zip с форматом 7z и уровнем «Ультра» уменьшает XML-файл обмена в разы, а папку файловой базы с 1Cv8.1CD — заметно, особенно после сжатия таблиц в Конфигураторе. Выгрузка .dt уже сжата внутри, поэтому архиватор почти не уменьшит её. Если файл всё равно больше лимита почты, разбейте архив на тома или передайте ссылкой на облачный диск.

Какие файлы 1С занимают много места и насколько они сжимаются

Чтобы не тратить время впустую, сначала поймите, что именно вы отправляете. У разных файлов разная природа, и архиватор действует на них по-разному.

ФайлЧто внутриЭффект от архивации
.xml (обмен, выгрузка данных)Текст с повторяющимися тегамиОчень хороший, размер падает в разы
1Cv8.1CD (файловая база)Таблицы базы со свободными страницамиХороший, особенно у «распухшей» базы
.dt (выгрузка информационной базы)Уже упакованные данные и конфигурацияСлабый, выигрыш небольшой
.cf, .cfe (конфигурация, расширение)Упакованные модули и формыСлабый
.epf, .erf (внешние обработки, отчёты)Упакованный объектСлабый, но и файлы обычно мелкие
Папка 1Cv8Log (журнал регистрации)Записи событийХороший, но её часто можно не отправлять

Почему XML такой большой? Каждое поле документа обёрнуто в открывающий и закрывающий тег с длинным именем. Реквизит «Контрагент» повторяется тысячи раз. Для архиватора это идеальный материал: повторы он заменяет короткими ссылками.

Файловая база растёт по другой причине. Удалённые данные не всегда освобождают место в 1Cv8.1CD: файл сохраняет пустые страницы. Отсюда частая картина — база на 4 ГБ, в которой реальных данных на треть меньше.

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

Если нужна только конфигурация без данных (например, разработчику для доработки), отправьте .cf вместо .dt. В Конфигураторе это Конфигурация → Сохранить конфигурацию в файл. Такой файл в разы меньше полной выгрузки.

Как сжать файл 1С обычным архиватором

Самый быстрый способ — архив. Для разовой отправки хватит встроенного в Windows ZIP, для больших файлов лучше 7-Zip.

Встроенный ZIP в Windows

  1. Щёлкните по файлу правой кнопкой мыши.
  2. Выберите Отправить → Сжатая ZIP-папка (в Windows 11 — пункт «Сжать в ZIP-файл»).
  3. Рядом появится архив с тем же именем.

Плюс — ничего не нужно устанавливать. Минус — нет выбора степени сжатия и нельзя разбить архив на части.

7-Zip с максимальным сжатием

7-Zip бесплатный и жмёт заметно сильнее встроенного ZIP. Порядок такой:

  1. Установите 7-Zip, если его ещё нет.
  2. Правой кнопкой по файлу → 7-Zip → Добавить к архиву….
  3. Формат архива — 7z.
  4. Уровень сжатия — «Ультра».
  5. При необходимости задайте пароль и включите шифрование имён файлов.
  6. Нажмите «ОК».

Для XML и файловой базы разница между 7z «Ультра» и обычным ZIP бывает ощутимой. Для .dt выигрыш обоих форматов небольшой, поэтому не ждите от «Ультра» чуда — лучше сразу переходите к разбиению на тома или к облаку.

Получатель должен уметь открыть архив. Формат 7z распаковывает 7-Zip, WinRAR и встроенные средства новых сборок Windows 11, но на старом компьютере бухгалтера может не открыться. Если не уверены — выбирайте ZIP.

Архивация папки файловой базы

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

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

Сжатие XML-файлов обмена средствами самой 1С

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

Флажок сжатия в синхронизации данных

В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) обмены настраиваются в разделе Администрирование → Синхронизация данных. В настройках транспорта сообщений (каталог, FTP или почта) есть флажок, который упаковывает исходящий файл обмена в ZIP. Там же можно задать пароль на архив.

Порядок:

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

Принимающая база распознаёт ZIP сама и распаковывает его перед загрузкой.

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

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

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

Если обмен написан своими силами, упакуйте файл объектом ЗаписьZipФайла. Пример для 8.3 — сжимает XML с максимальным уровнем и удаляет исходник:

ИмяXML = "C:\Обмен\Message.xml";
ИмяZIP = "C:\Обмен\Message.zip";

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

УдалитьФайлы(ИмяXML);

Распаковка на принимающей стороне:

Чтение = Новый ЧтениеZipФайла("C:\Обмен\Message.zip");
Чтение.ИзвлечьВсе("C:\Обмен\Распаковано\");
Чтение.Закрыть();

Второй параметр конструктора ЗаписьZipФайла — пароль. Если передать строку, архив будет защищён, и при чтении пароль нужно указать так же вторым параметром ЧтениеZipФайла.

Как уменьшить выгрузку 1С ещё до архивации

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

Тестирование и исправление со сжатием таблиц

Для файловой базы самый действенный шаг — сжатие таблиц в Конфигураторе. Оно убирает пустые страницы из 1Cv8.1CD.

  1. Сделайте копию базы : скопируйте папку или выгрузите .dt.
  2. Попросите всех пользователей выйти — режиму нужен монопольный доступ.
  3. Откройте базу в Конфигураторе.
  4. Выберите Администрирование → Тестирование и исправление.
  5. Отметьте флажок «Сжатие таблиц информационной базы». Остальные проверки для этой задачи не нужны.
  6. Нажмите «Выполнить» и дождитесь окончания.

После этого размер 1Cv8.1CD нередко падает заметно, а архив получается меньше.

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

Удаление помеченных объектов

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

Журнал регистрации

Журнал не входит в .dt, но занимает место в папке файловой базы. Сократить его можно в Конфигураторе: Администрирование → Настройка журнала регистрации, кнопка «Сократить». Там же задаётся период, после которого старые записи не хранятся.

Выгрузка .dt: что настроить нельзя и что можно

Команда Администрирование → Выгрузить информационную базу в Конфигураторе не умеет выгружать часть данных. В .dt попадает вся конфигурация и все данные. Отобрать период или отдельные справочники на этом шаге нельзя.

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

Выгрузку можно запускать и из командной строки, например по расписанию:

"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"" /DumpIB"D:\Backup\buh.dt"

Номер версии платформы в пути, путь к базе, имя пользователя и пароль замените на свои.

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

Перед отправкой большой выгрузки 1С
Выполнено: 0 / 6

Разбиение большого файла 1С на тома

Когда сжатие не помогает, файл режут на части — тома. Каждый том меньше лимита почты, получатель собирает их обратно.

Тома в 7-Zip

В окне 7-Zip → Добавить к архиву… заполните поле «Разбить на тома размером», например 20M. На выходе получатся файлы base.7z.001, base.7z.002 и так далее.

То же самое из командной строки:

"C:\Program Files\7-Zip\7z.exe" a -t7z -mx=9 -v20m D:\Send\buh.7z D:\Backup\buh.dt
  • a — добавить в архив;
  • -mx=9 — максимальное сжатие;
  • -v20m — тома по 20 МБ.

Получатель кладёт все части в одну папку и распаковывает первую — buh.7z.001. Остальные 7-Zip подхватит сам:

"C:\Program Files\7-Zip\7z.exe" x D:\Inbox\buh.7z.001 -oD:\Inbox\Base

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

Разделение файла средствами платформы

В 8.3 есть встроенные функции РазделитьФайл и ОбъединитьФайлы. Их используют, когда файл обмена надо резать автоматически, без внешнего архиватора:

// режем на части по 20 МБ
РазмерЧасти = 20 * 1024 * 1024;
Части = РазделитьФайл("C:\Обмен\Message.zip", РазмерЧасти, "C:\Обмен\Части\");

// на принимающей стороне собираем обратно
ОбъединитьФайлы(Части, "C:\Обмен\Message.zip");

РазделитьФайл возвращает массив имён частей. На второй стороне их нужно передать в ОбъединитьФайлы в том же порядке. Если массив туда не доходит, передайте вместе с частями список их имён.

Как выбрать размер тома

Куда отправляетеРазмер тома
Обычная почтаЗаметно меньше лимита вложения — у многих сервисов он около 20–30 МБ
МессенджерСмотрите ограничение конкретного сервиса
Флешка с FAT32Меньше 4 ГБ — больше файл на такую флешку не запишется

Почтовые программы увеличивают письмо при кодировании вложения примерно на треть. Поэтому том на 25 МБ при лимите 25 МБ не пройдёт — берите запас.

Как передать файл 1С, если почта не подходит

Разбивать базу на 40 писем неудобно и ненадёжно. Для файлов от сотни мегабайт удобнее другие каналы.

СпособКогда подходитНа что смотреть
Облачный диск со ссылкойРазовая передача базы в техподдержку, аудитору, программистуСрок жизни ссылки, пароль на архив
FTP или общий сетевой каталогРегулярный обмен между офисамиВ синхронизации данных 1С можно выбрать этот транспорт сразу
Обмен через интернет (веб-сервис)Постоянная синхронизация базНужна публикация базы на веб-сервере
Внешний диск или флешкаОчень большие базы, медленный интернетФайловая система носителя и шифрование

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

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

Для регулярных обменов не возите файлы вручную. Настройте в Администрирование → Синхронизация данных транспорт через сетевой каталог или FTP с включённым сжатием — 1С будет сама упаковывать, класть и забирать сообщения обмена.

Частые вопросы о сжатии файлов 1С

Почему архив с выгрузкой .dt почти не меньше самого файла?
Платформа упаковывает данные уже при выгрузке. Повторное сжатие почти не даёт эффекта. Уменьшить .dt можно только облегчив саму базу или отправив вместо неё .cf либо XML с отбором.
Можно ли загрузить в 1С файл обмена прямо из ZIP?
Да, если сжатие включено в настройках синхронизации или в обработке универсального обмена. Тогда база распознаёт архив сама. Произвольный ZIP, собранный вручную, перед загрузкой распакуйте.
Можно ли открыть сжатую базу 1Cv8.1CD без распаковки?
Нет. Платформа работает только с распакованным файлом. Распакуйте архив в отдельную папку и добавьте её в список баз как существующую.
Что меньше весит: .dt или папка файловой базы в архиве?
Обычно .dt меньше, чем папка с 1Cv8.1CD без сжатия. Но после сжатия таблиц и архивации 7-Zip папка иногда догоняет .dt. Для передачи в техподдержку чаще просят именно .dt.
Сломает ли сжатие таблиц мою базу?
Сама операция штатная. Риск в прерывании: если процесс остановится посередине, база может пострадать. Поэтому запускайте её только на копии или после свежей резервной копии.