Обслуживание информационной базы 1С 8.3: от диагностики до сжатия

· 10 мин

Содержание

Навести порядок в базе 1С — это не одна кнопка «оптимизировать», а цепочка из пяти операций в строгом порядке: резервная копия → удаление помеченных объектов → тестирование и исправление в конфигураторе → пересчёт итогов → чистка истории и журнала регистрации. Если поменять порядок, часть работы придётся делать дважды: например, тестирование до удаления помеченных проверяет записи, которые через час исчезнут.

Частое заблуждение — что очистка базы сама по себе ускоряет 1С в разы. На деле скорость чаще упирается в итоги регистров, раздутый журнал регистрации и обслуживание СУБД. Ниже порядок, который работает и для файловой, и для клиент-серверной базы 1С:Предприятия 8.3.

Диагностика: что именно тормозит и чем заросла база

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

Что проверить:

  • 📦 Размер базы. Для файловой — размер файла 1Cv8.1CD в каталоге базы. Если он заметно больше, чем объём данных по ощущениям, внутри много «дыр» после удалений.
  • 📜 Журнал регистрации. Каталог 1Cv8Log рядом с базой (файловый вариант) или в каталоге кластера на сервере. Журнал за несколько лет легко занимает гигабайты.
  • 🗑️ Помеченные на удаление. Откройте любой крупный список (документы реализации, номенклатура) и включите отбор по пометке. Тысячи помеченных объектов — повод начать с их удаления.
  • 🧮 Итоги регистров. Если отчёты по остаткам строятся медленно, а оборотные быстро, первым подозреваемым будут итоги.
  • 🕓 История изменений объектов. В типовых конфигурациях на БСП версии объектов копятся в отдельном регистре и могут весить больше самих документов.

Для клиент-серверной базы узнать, какие таблицы самые тяжёлые, проще на стороне СУБД. В MS SQL Server это отчёт «Disk Usage by Top Tables» в SQL Server Management Studio. Имена таблиц там служебные (_AccumRg1234, _Document567). Сопоставить их с объектами конфигурации помогает метод встроенного языка ПолучитьСтруктуруХраненияБазыДанных().

Запишите исходные цифры: размер базы, время открытия ОСВ за год, время проведения тяжёлого документа. После обслуживания сравните — так будет видно, что помогло, а что нет.

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

Тестирование и исправление может менять данные необратимо: удалять «битые» объекты, очищать ссылки. Без свежей копии к нему не приступайте.

Как сделать копию

СпособДля какой базыОсобенности
Выгрузка .dt из конфигураторалюбаяАдминистрирование → Выгрузить информационную базу. Нужен монопольный доступ, файл компактный
Копирование 1Cv8.1CDфайловаяТолько когда в базе нет ни одного сеанса. Самый быстрый способ
Бэкап средствами СУБДклиент-сервернаяПолная копия в SQL Server или pg_dump в PostgreSQL, пользователей выгонять не нужно

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

Как получить монопольный доступ

Монопольный режим нужен для тестирования и исправления, загрузки .dt и обновления структуры конфигурации. Для удаления помеченных в современных конфигурациях он обычно не обязателен, но работать проще без пользователей.

Варианты:

  1. Из режима предприятия. В БП 3.0, ЗУП 3.1 и УТ 11 в разделе Администрирование → Обслуживание есть команда «Блокировка работы пользователей». Задайте время начала, сообщение и код разрешения.
  2. Из консоли кластера. В свойствах информационной базы включите блокировку начала сеансов и укажите код разрешения.
  3. Вход для администратора. Запускайте конфигуратор с параметром /UC<код> — так вы войдёте в заблокированную базу.

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

Удаление помеченных объектов: убираем мусор из базы 1С

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

Где запускать

  • БП 3.0: Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
  • Любая конфигурация: через Все функции → Стандартные → Удаление помеченных объектов. Если пункта «Все функции» нет в меню, включите его: Главное меню (☰) → Сервис → Параметры → Отображать команду «Все функции».

Как проходит удаление

  1. Обработка собирает все помеченные объекты.
  2. Для каждого ищет ссылки из других объектов.
  3. Объекты без ссылок удаляет, остальные показывает списком с указанием, кто на них ссылается.

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

Что делать с неудаляемыми объектами

Типичная ситуация: номенклатура помечена, но не удаляется, потому что на неё ссылается непомеченный документ. Решения:

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

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

Не удаляйте объекты прямыми запросами в СУБД. Ссылки внутри 1С так не проверяются, и в базе появляются «битые» ссылки, которые потом вылезают ошибкой Объект не найден.

Тестирование и исправление информационной базы в конфигураторе

Главный инструмент лечения базы: Конфигуратор → Администрирование → Тестирование и исправление. Требует монопольного доступа.

Какие флажки ставить

ПроверкаЧто делаетКогда включать
Реиндексация таблицПерестраивает индексыПочти всегда
Проверка логической целостностиИщет нарушения структуры записейПочти всегда
Проверка ссылочной целостностиНаходит ссылки на несуществующие объектыПри ошибках Объект не найден, после сбоев
Пересчёт итоговПересчитывает итоги всех регистровЕсли отчёты расходятся с документами
Сжатие таблицОсвобождает место после удаленийДля файловой базы после чистки
Реструктуризация таблицПересоздаёт таблицы базыТолько при серьёзных повреждениях, очень долго

Режим работы — «Тестирование и исправление» или «Только тестирование». Первый прогон делайте в режиме «Только тестирование»: вы увидите масштаб проблем, ничего не меняя.

Битые ссылки и частично потерянные объекты

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

Что выбрать для ссылок на несуществующие объекты?

Отдельная проверка файла для файловой базы

Если файловая база вообще не открывается или конфигуратор падает при тестировании, начните с утилиты chdbfl.exe. Она лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.

  1. Закройте все сеансы 1С с этой базой.
  2. Запустите chdbfl.exe, укажите путь к 1Cv8.1CD.
  3. Сначала проверьте без исправления, затем включите флажок исправления обнаруженных ошибок и повторите.
  4. После этого запустите обычное тестирование и исправление в конфигураторе.

Самый простой способ ужать файловую базу после большой чистки — выгрузить её в .dt и загрузить обратно в новый пустой каталог. Файл 1Cv8.1CD получается без пустых страниц.

Пересчёт итогов регистров накопления и бухгалтерии

Итоги — заранее посчитанные остатки по регистрам. Благодаря им ОСВ и отчёты по остаткам строятся быстро. Когда итоги расходятся с движениями или рассчитаны «до бесконечности», отчёты врут или тормозят.

Где управлять итогами: Все функции → Стандартные → Управление итогами. В обработке два режима: частые операции и полные возможности.

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

  • 🔁 Пересчитать итоги — по всем регистрам или по выбранным. Помогает, если остатки в отчётах не совпадают с документами.
  • 📅 Установить период рассчитанных итогов — обычно конец предыдущего месяца. Итоги по закрытым периодам хранятся готовыми, а текущий месяц досчитывается на лету.
  • ⏸️ Выключить и включить использование итогов — применяют при массовой загрузке или перепроведении: с выключенными итогами документы проводятся быстрее, после включения итоги пересчитываются один раз.

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

Пересчёт итогов на большой серверной базе нагружает СУБД и блокирует таблицы регистров. Запускайте его вне рабочего времени.

История изменений, журнал регистрации и свёртка старых данных

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

История изменений объектов

В БП 3.0 и других конфигурациях на БСП настройка находится в Администрирование → Общие настройки → История изменений. Там можно:

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

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

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

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

  1. Откройте Конфигуратор → Администрирование → Настройка журнала регистрации.
  2. Нажмите «Сократить», укажите дату — события раньше неё будут удалены.
  3. Если события могут понадобиться для разбора, включите сохранение удаляемых записей в файл.
  4. Там же уменьшите уровень регистрации, если журнал пишет лишнее.

Журнал старого формата (.lgf/.lgp) работает заметно медленнее нового (.lgd). Конвертировать его можно в той же настройке.

Свёртка базы и архив

Если база хранит 8-10 лет учёта, а работают только с последними двумя, помогает свёртка: старые документы заменяются документами ввода остатков на выбранную дату. В БП 3.0 обработка «Свертка информационной базы» находится в Администрирование → Обслуживание → Корректировка данных.

Порядок работы со свёрткой:

  1. Сделайте полную копию базы и сохраните её как архив — по ней отвечают на вопросы проверяющих за старые годы.
  2. Убедитесь, что периоды до даты свёртки закрыты, отчётность сдана.
  3. Проведите свёртку сначала на копии, сверьте ОСВ до и после на дату свёртки.
  4. Только после сверки повторите в рабочей базе.

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

Как ускорить 1С после чистки и не запускать базу снова

Порядок в данных — только половина дела. Остальное лежит на клиентских компьютерах и на сервере.

Кэш на рабочих местах

Повреждённый кэш даёт странные ошибки и замедление при запуске. Сбросить его можно параметром /ClearCache при запуске или удалением каталогов баз с именами-идентификаторами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.

Перед удалением каталогов закройте 1С на этом компьютере. Список баз (ibases.v8i) не трогайте — иначе пользователю придётся заново добавлять базы.

Обслуживание СУБД

Для клиент-серверной базы регулярное обслуживание СУБД важнее любой чистки средствами 1С:

  • MS SQL Server — план обслуживания: перестроение или реорганизация индексов и обновление статистики, ежедневно или еженедельно.
  • PostgreSQL — VACUUM ANALYZE по расписанию и проверка, что работает autovacuum.

Устаревшая статистика заставляет СУБД выбирать плохие планы запросов, и проведение документов замедляется в разы, хотя данные в порядке.

Регламент обслуживания

ОперацияКак частоМонопольный режим
Резервная копияЕжедневноНет (средствами СУБД)
Индексы и статистика СУБДЕжедневно или еженедельноНет
Удаление помеченных объектовРаз в месяц или кварталЖелательно
Установка периода итоговЕжемесячно, регламентным заданиемНет
Тестирование и исправлениеРаз в квартал и после сбоевДа
Сокращение журнала регистрацииРаз в полгода-годНет
СвёрткаПо решению, обычно после сдачи годовой отчётностиДа

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

Можно ли запускать тестирование и исправление при работающих пользователях?
Нет. Режим требует монопольного доступа: пока в базе есть хотя бы один сеанс, конфигуратор не начнёт проверку.
Сколько идёт тестирование и исправление?
Зависит от объёма и выбранных флажков. Файловая база на несколько гигабайт проверяется за десятки минут, серверная на сотни гигабайт — часами. Дольше всего работают реструктуризация и пересчёт итогов.
Почему база не уменьшилась после удаления помеченных?
В файловой базе место освобождается только после сжатия таблиц или перезагрузки через .dt. В серверной освобождённые страницы остаются за файлом базы СУБД и заполняются новыми данными.
Удаляет ли тестирование и исправление документы?
Может, если выбрать удаление для частично потерянных объектов. Поэтому первый прогон — в режиме «Только тестирование», а перед исправлением — свежая копия.
Нужно ли после обслуживания обновлять конфигурацию?
Нет, это разные операции. Но если в планах есть обновление, удобно сделать его в то же окно монопольного доступа, после тестирования.