К статье
Практический материал

Администрирование · 11 мин

Как уменьшить базу 1С Розница без потери данных

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

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

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

Перед любыми действиями обязательно сделайте резервную копию. Для файловой базы достаточно скопировать каталог с файлом 1Cv8.1CD при закрытой программе, для клиент-серверной — выгрузить данные через конфигуратор в файл dt. Без копии свёртка и удаление документов необратимы.

Откуда берётся лишний объём в базе Розницы

Основную массу данных в торговой базе занимают документы и их движения по регистрам. Чеки ККМ формируются ежедневно и накапливаются тысячами, каждый оставляет записи в регистрах продаж, остатков товаров и денежных средств. Даже после закрытия смены и отправки данных в ОФД старые чеки продолжают занимать место.

Вторая категория — справочники. Номенклатура часто загружается из прайсов поставщиков и дублируется, а карточки выведенных из ассортимента товаров никогда не удаляются. Дополнительный объём создают регистры сведений: штрихкоды, цены номенклатуры за каждую дату изменения, история обменов с ЕГАИС или системами маркировки.

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

Размер файла 1Cv8.1CDБолее 5–10 ГБ для файловой базы — сигнал к чистке

Проверьте размер каталога базы на диске

Медленные отчётыОборотно-сальдовые и отчёты по продажам строятся минутами

Замерьте время формирования отчёта за месяц

Долгий запускВход в базу занимает заметно больше времени, чем раньше

Сравните с запуском копии на другом компьютере

Старые периодыВ базе документы за несколько закрытых лет

Проверьте дату самого раннего документа

Подготовка: резервная копия и анализ объёма

Первый шаг — полная резервная копия. Для файловой базы завершите работу всех пользователей и скопируйте файл 1Cv8.1CD в отдельный каталог или на внешний носитель. Дополнительно полезно сделать выгрузку через конфигуратор: меню «Администрирование» — «Выгрузить информационную базу». Файл dt служит независимой страховкой, если исходный файл повредится в процессе сжатия.

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

Проверьте также наличие дублей в номенклатуре и контрагентах штатным поиском дублей: «НСИ и администрирование» — «Обслуживание» — «Поиск и удаление дублей». Объединение дублей до свёртки уменьшит количество записей в регистрах.

Свёртка остатков: главный способ сократить историю

Свёртка заменяет все документы прошлых периодов несколькими документами ввода остатков на выбранную дату. После неё старые чеки, поступления и перемещения можно удалить без потери актуальных остатков на складах и в кассах. В типовой Рознице обработка свёртки доступна в разделе «НСИ и администрирование» — «Обслуживание» — «Свёртка информационной базы» (в некоторых релизах — «Помощник свёртки базы»).

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

Порядок действий: запустите помощник свёртки, укажите дату, отметьте регистры для свёртки (остатки товаров, денежные средства, расчёты), дождитесь формирования документов «Ввод начальных остатков». Затем сверьте остатки по отчёту «Остатки товаров» до и после свёртки — суммы должны совпасть.

Порядок свёртки базы
  1. 1
    Сделайте резервную копию и проверьте её открытие
  2. 2
    Завершите все непроведённые документы и инвентаризации
  3. 3
    Запустите помощник свёртки и укажите дату отсечения
  4. 4
    Сформируйте документы ввода остатков
  5. 5
    Сверьте остатки по отчётам до и после свёртки
  6. 6
    Пометьте старые документы на удаление и выполните удаление помеченных

Удаление старых документов и очистка регистров

После свёртки документы прошлых периодов помечаются на удаление. Физическое удаление выполняется через «Администрирование» — «Удаление помеченных объектов». Выбирайте монопольный режим: при частичном удалении ссылки на удаляемые объекты останутся, и объём уменьшится незначительно. Если монопольный режим недоступен из-за работающих пользователей, завершите их сеансы через консоль кластера или попросите выйти из программы.

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

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

Физическое сжатие файла базы

Для файловой базы основной инструмент — «Тестирование и исправление» в конфигураторе. Откройте конфигуратор в монопольном режиме, выберите «Администрирование» — «Тестирование и исправление», установите флажок «Сжатие таблиц информационной базы» и при необходимости «Реиндексация таблиц». Сжатие физически перестраивает файл и возвращает освобождённое место операционной системе.

Альтернативный и часто более эффективный способ — выгрузка базы в dt и загрузка в новый пустой каталог. При загрузке файл создаётся заново, без внутренних «дыр» от удалённых данных. Этот метод дольше по времени, но даёт максимальное сжатие и заодно служит проверкой целостности данных.

Для клиент-серверных баз на MS SQL или PostgreSQL сжатие выполняется средствами СУБД: shrink для файлов данных в SQL Server или vacuum full в PostgreSQL. Эти операции требуют прав администратора СУБД и свободного места на диске, сопоставимого с размером базы.

Способы физического уменьшения файла

Сжатие таблиц в конфигураторе

Быстро и просто, но сжимает не всегда полностью; требует монопольного доступа

Выгрузка и загрузка через dt

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

Средства СУБД (shrink, vacuum)

Для клиент-серверных баз; требует квалификации администратора СУБД

Перенос в новую базу как радикальный вариант

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

Плюс подхода — гарантированно чистая структура без исторических ошибок. Минус — трудоёмкость: нужно перенести все нужные справочники, проверить остатки, заново настроить обмены с кассами, ЕГАИС и банками. Планируйте такой переход на период минимальной торговой активности и оставляйте старую базу доступной для справок и отчётов за прошлые периоды.

На практике связка «свёртка + удаление помеченных + загрузка через dt» даёт уменьшение файловой базы в 2–4 раза, если в ней накопилось несколько лет чеков. Самый большой эффект обычно даёт именно свёртка, а не сжатие само по себе.
ПЗ
Практическое замечание

Профилактика: как не дать базе разрастись снова

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

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

Типичные ошибки
01
Удаление документов без свёртки — остатки «ломаются», и восстановить их можно только из копии
02
Ожидание уменьшения файла сразу после удаления помеченных — без сжатия таблиц файл остаётся прежним
03
Свёртка при незакрытых инвентаризациях — остатки переносятся с расхождениями
04
Работа без проверенной резервной копии — при сбое сжатия база может оказаться нечитаемой
05
Чистка регистров ЕГАИС и маркировки без проверки — можно потерять данные, нужные для проверок

Проверка результата после уменьшения базы

После всех операций сравните размер файла 1Cv8.1CD до и после — разница должна быть заметной. Затем проверьте данные: сформируйте отчёт по остаткам товаров, сверьте суммы в кассах и расчёты с контрагентами с данными архивной копии на дату свёртки. Расхождений быть не должно.

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

Контрольные точки

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

Размер файла 1Cv8.1CD
Норма

Файл заметно меньше исходного

Тревожный признак

Размер не изменился — сжатие не выполнялось

Остатки товаров
Норма

Совпадают с отчётом до свёртки на дату отсечения

Тревожный признак

Расхождения по позициям или суммам

Проведение чеков
Норма

Чек пробивается и проводится без ошибок

Тревожный признак

Ошибки записи в регистры, ссылки на удалённые объекты

Обмены и отчёты
Норма

Обмен с РИБ/ЕГАИС проходит, отчёты строятся быстрее

Тревожный признак

Ошибки обмена, отчёты за старые периоды пустые без архивной копии

Итог

Что важно запомнить

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

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

Уменьшится ли база, если просто удалить старые чеки?

Нет. Удаление помеченных объектов освобождает место внутри файла 1Cv8.1CD, но сам файл остаётся прежнего размера. Чтобы вернуть место системе, нужно выполнить сжатие таблиц в конфигураторе или выгрузку-загрузку через dt.

Что будет с отчётами за прошлые годы после свёртки?

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

Можно ли уменьшить базу без конфигуратора?

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

Насколько сильно уменьшается база после свёртки и сжатия?

Зависит от доли удаляемых данных. Если в базе несколько лет чеков и истории цен, уменьшение может быть в разы; если база и так свежая, эффект будет небольшим. Точный результат виден только после выполнения всех этапов.

Опасно ли делать свёртку самостоятельно?

При наличии проверенной резервной копии риск минимален: любую ошибку можно откатить. Критично не пропустить незакрытые документы и инвентаризации на дату свёртки и сверить остатки после. Если база клиент-серверная или в ней нестандартные доработки, разумнее привлечь специалиста.

Как часто нужно уменьшать базу Розницы?

Достаточно плановой свёртки раз в год после закрытия отчётного периода и периодической чистки справочников. Если база растёт быстро из-за большого числа чеков, имеет смысл сворачивать чаще или рассмотреть переход на клиент-серверный вариант.