База 1С выросла и тормозит — как уменьшить объём

Главный бухгалтер звонит: «У нас 1С стала очень медленная, раньше всё летало, а теперь каждая операция — по минуте». Просим прислать размер базы. Ответ: 62 гигабайта. Для 1С:Бухгалтерии компании на 40 сотрудников — это в три-четыре раза больше нормы. Разбираемся, куда уходит место и как вернуть базу в форму.

Куда уходит место в базе 1С

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

Круговая диаграмма распределения объёма базы 1С по типам данных

В типичной разросшейся базе картина примерно такая:

  • Прикреплённые файлы — 30-40%. Сканы документов, PDF-файлы, фотографии, которые прикрепляли к документам и справочникам. Вот этот скан накладной на 5 мегабайт — умножьте на три тысячи документов за год. Получается 15 ГБ только сканов.
  • Данные ЭДО и ЭСЧФ — 20-30%. Электронные счета-фактуры хранят полные XML-пакеты с электронными подписями. Каждый пакет — от 50 КБ до нескольких мегабайт. За пару лет активной работы с ЭДО эти данные могут занять 10-15 ГБ.
  • Регистры накопления — 15-20%. Движения по регистрам — это рабочие данные. Их трогать нельзя, они нужны для формирования отчётов.
  • Документы — 10-15%. Собственно документы: платёжки, накладные, авансовые отчёты. Тоже рабочие данные.
  • Прочее — 5-10%. Версии объектов, временные данные, служебные таблицы.

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

Кейс: уменьшили базу с 62 до 24 ГБ

Компания из сферы дистрибуции. Работают в 1С пять лет, активно используют ЭДО с контрагентами, прикрепляют сканы к каждой накладной. За это время база выросла до 62 ГБ. Резервное копирование стало занимать 2.5 часа, а при сбое питания восстановление базы из копии — все четыре.

Провели анализ. Выяснилось:

  • Прикреплённые файлы — 22 ГБ, хранятся прямо в таблицах базы данных
  • XML-данные ЭСЧФ — 14 ГБ, лежат в полях типа «Хранилище значения»
  • Остальное — 26 ГБ рабочих данных

Работу разбили на три этапа.

Четыре шага уменьшения объёма базы 1С — от анализа до автоочистки

Этап 1. Перенос прикреплённых файлов на диск

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

Тонкость, на которую мы наступили: после включения тома новые файлы пишутся на диск, а старые остаются в базе. Нужно отдельно запускать перенос существующих файлов. В этой базе перенос 22 ГБ файлов занял около 6 часов — запускали в ночь, чтобы не мешать работе бухгалтеров.

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

Этап 2. Архивирование XML-данных ЭСЧФ

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

14 ГБ XML-данных после сжатия превратились в 3 ГБ архивов на диске. Чистая экономия — 11 ГБ.

Этап 3. Настройка автоочистки

Чтобы база не разрасталась снова, настроили модуль автоматической очистки:

  • Удаление устаревших версий объектов старше 6 месяцев
  • Очистка временных файлов и данных
  • Регулярная проверка и сжатие базы данных
Сравнение объёма хранения при размещении файлов в базе и на диске

Итог: база уменьшилась с 62 до 24 ГБ. Резервное копирование — 40 минут вместо 2.5 часов. Бухгалтеры заметили ускорение даже без каких-либо изменений на сервере.

Что ещё можно сделать

Если перенос файлов и архивирование XML не дали нужного эффекта, есть ещё несколько приёмов:

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

Реструктуризация таблиц. Со временем в таблицах базы данных накапливаются «дыры» — места удалённых записей. Реструктуризация их уплотняет. Эта операция доступна через конфигуратор.

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

Очистка журнала регистрации. Журнал регистрации фиксирует каждое действие пользователя. За несколько лет он может занять гигабайты. Старые записи можно безболезненно удалить через «Администрирование — Журнал регистрации — Сократить».

Когда обращаться за помощью

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

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