Обслуживание информационной базы 1С 8.3: от диагностики до сжатия
Содержание
Навести порядок в базе 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 и обновления структуры конфигурации. Для удаления помеченных в современных конфигурациях он обычно не обязателен, но работать проще без пользователей.
Варианты:
- Из режима предприятия. В БП 3.0, ЗУП 3.1 и УТ 11 в разделе
Администрирование → Обслуживаниеесть команда «Блокировка работы пользователей». Задайте время начала, сообщение и код разрешения. - Из консоли кластера. В свойствах информационной базы включите блокировку начала сеансов и укажите код разрешения.
- Вход для администратора. Запускайте конфигуратор с параметром
/UC<код>— так вы войдёте в заблокированную базу.
Блокировка обрывает работу всех пользователей. Предупредите их заранее и планируйте обслуживание на вечер или выходные. Фоновые и регламентные задания на время работ тоже лучше заблокировать — в консоли кластера для этого есть отдельный флажок.
Удаление помеченных объектов: убираем мусор из базы 1С
Пометка на удаление ничего не удаляет — объект остаётся в базе и занимает место. Физически убрать его можно только специальной обработкой, которая сначала проверяет, не ссылается ли на него что-то ещё.
Где запускать
- БП 3.0:
Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. - Любая конфигурация: через
Все функции → Стандартные → Удаление помеченных объектов. Если пункта «Все функции» нет в меню, включите его:Главное меню (☰) → Сервис → Параметры → Отображать команду «Все функции».
Как проходит удаление
- Обработка собирает все помеченные объекты.
- Для каждого ищет ссылки из других объектов.
- Объекты без ссылок удаляет, остальные показывает списком с указанием, кто на них ссылается.
Второй пункт и есть самый долгий. На базе в десятки гигабайт поиск ссылок может идти несколько часов, поэтому запускайте его в нерабочее время.
Что делать с неудаляемыми объектами
Типичная ситуация: номенклатура помечена, но не удаляется, потому что на неё ссылается непомеченный документ. Решения:
- открыть документ из списка «мешающих» и убедиться, что он действительно нужен;
- если документ тоже лишний — пометить его и повторить удаление;
- если документ нужен — снять пометку с номенклатуры, она ещё используется.
Удаляйте в несколько проходов. После первого прохода часть ссылок исчезает вместе с удалёнными документами, и на втором удаляются объекты, которые раньше «держались».
Не удаляйте объекты прямыми запросами в СУБД. Ссылки внутри 1С так не проверяются, и в базе появляются «битые» ссылки, которые потом вылезают ошибкой Объект не найден.
Тестирование и исправление информационной базы в конфигураторе
Главный инструмент лечения базы: Конфигуратор → Администрирование → Тестирование и исправление. Требует монопольного доступа.
Какие флажки ставить
| Проверка | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Почти всегда |
| Проверка логической целостности | Ищет нарушения структуры записей | Почти всегда |
| Проверка ссылочной целостности | Находит ссылки на несуществующие объекты | При ошибках Объект не найден, после сбоев |
| Пересчёт итогов | Пересчитывает итоги всех регистров | Если отчёты расходятся с документами |
| Сжатие таблиц | Освобождает место после удалений | Для файловой базы после чистки |
| Реструктуризация таблиц | Пересоздаёт таблицы базы | Только при серьёзных повреждениях, очень долго |
Режим работы — «Тестирование и исправление» или «Только тестирование». Первый прогон делайте в режиме «Только тестирование»: вы увидите масштаб проблем, ничего не меняя.
Битые ссылки и частично потерянные объекты
При проверке ссылочной целостности платформа спросит, что делать со ссылками на несуществующие объекты: создавать объекты, очищать ссылки или не изменять. Для частично потерянных объектов варианты похожи: создавать, удалять или не изменять.
Отдельная проверка файла для файловой базы
Если файловая база вообще не открывается или конфигуратор падает при тестировании, начните с утилиты chdbfl.exe. Она лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.
- Закройте все сеансы 1С с этой базой.
- Запустите
chdbfl.exe, укажите путь к1Cv8.1CD. - Сначала проверьте без исправления, затем включите флажок исправления обнаруженных ошибок и повторите.
- После этого запустите обычное тестирование и исправление в конфигураторе.
Самый простой способ ужать файловую базу после большой чистки — выгрузить её в .dt и загрузить обратно в новый пустой каталог. Файл 1Cv8.1CD получается без пустых страниц.
Пересчёт итогов регистров накопления и бухгалтерии
Итоги — заранее посчитанные остатки по регистрам. Благодаря им ОСВ и отчёты по остаткам строятся быстро. Когда итоги расходятся с движениями или рассчитаны «до бесконечности», отчёты врут или тормозят.
Где управлять итогами: Все функции → Стандартные → Управление итогами. В обработке два режима: частые операции и полные возможности.
Что там можно сделать:
- 🔁 Пересчитать итоги — по всем регистрам или по выбранным. Помогает, если остатки в отчётах не совпадают с документами.
- 📅 Установить период рассчитанных итогов — обычно конец предыдущего месяца. Итоги по закрытым периодам хранятся готовыми, а текущий месяц досчитывается на лету.
- ⏸️ Выключить и включить использование итогов — применяют при массовой загрузке или перепроведении: с выключенными итогами документы проводятся быстрее, после включения итоги пересчитываются один раз.
В типовых конфигурациях на БСП есть регламентное задание, которое раз в месяц сдвигает период рассчитанных итогов. Если оно отключено или падает с ошибкой, итоги «застревают» в прошлом, и отчёты по остаткам начинают тормозить. Проверьте его в Администрирование → Обслуживание → Регламентные и фоновые задания.
Пересчёт итогов на большой серверной базе нагружает СУБД и блокирует таблицы регистров. Запускайте его вне рабочего времени.
История изменений, журнал регистрации и свёртка старых данных
После удаления помеченных и тестирования база обычно не сильно уменьшается. Основной объём часто съедают три вещи: история версий объектов, журнал регистрации и данные за давно закрытые годы.
История изменений объектов
В БП 3.0 и других конфигурациях на БСП настройка находится в Администрирование → Общие настройки → История изменений. Там можно:
- отключить хранение версий для справочников и документов, где история не нужна;
- задать срок хранения и удалить устаревшие версии.
Удаление версий старше года на активной базе часто освобождает десятки процентов объёма. Сами документы и проводки при этом не затрагиваются — пропадает только возможность посмотреть, кто и что менял в прошлом.
Журнал регистрации
Журнал хранится отдельно от данных, но тоже тормозит: открытие и отбор по огромному журналу занимает минуты.
- Откройте
Конфигуратор → Администрирование → Настройка журнала регистрации. - Нажмите «Сократить», укажите дату — события раньше неё будут удалены.
- Если события могут понадобиться для разбора, включите сохранение удаляемых записей в файл.
- Там же уменьшите уровень регистрации, если журнал пишет лишнее.
Журнал старого формата (.lgf/.lgp) работает заметно медленнее нового (.lgd). Конвертировать его можно в той же настройке.
Свёртка базы и архив
Если база хранит 8-10 лет учёта, а работают только с последними двумя, помогает свёртка: старые документы заменяются документами ввода остатков на выбранную дату. В БП 3.0 обработка «Свертка информационной базы» находится в Администрирование → Обслуживание → Корректировка данных.
Порядок работы со свёрткой:
- Сделайте полную копию базы и сохраните её как архив — по ней отвечают на вопросы проверяющих за старые годы.
- Убедитесь, что периоды до даты свёртки закрыты, отчётность сдана.
- Проведите свёртку сначала на копии, сверьте ОСВ до и после на дату свёртки.
- Только после сверки повторите в рабочей базе.
Свёртка необратима. Без архивной копии восстановить первичку за свёрнутые годы не получится.
Как ускорить 1С после чистки и не запускать базу снова
Порядок в данных — только половина дела. Остальное лежит на клиентских компьютерах и на сервере.
Кэш на рабочих местах
Повреждённый кэш даёт странные ошибки и замедление при запуске. Сбросить его можно параметром /ClearCache при запуске или удалением каталогов баз с именами-идентификаторами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8.
Перед удалением каталогов закройте 1С на этом компьютере. Список баз (ibases.v8i) не трогайте — иначе пользователю придётся заново добавлять базы.
Обслуживание СУБД
Для клиент-серверной базы регулярное обслуживание СУБД важнее любой чистки средствами 1С:
- MS SQL Server — план обслуживания: перестроение или реорганизация индексов и обновление статистики, ежедневно или еженедельно.
- PostgreSQL —
VACUUM ANALYZEпо расписанию и проверка, что работает autovacuum.
Устаревшая статистика заставляет СУБД выбирать плохие планы запросов, и проведение документов замедляется в разы, хотя данные в порядке.
Регламент обслуживания
| Операция | Как часто | Монопольный режим |
|---|---|---|
| Резервная копия | Ежедневно | Нет (средствами СУБД) |
| Индексы и статистика СУБД | Ежедневно или еженедельно | Нет |
| Удаление помеченных объектов | Раз в месяц или квартал | Желательно |
| Установка периода итогов | Ежемесячно, регламентным заданием | Нет |
| Тестирование и исправление | Раз в квартал и после сбоев | Да |
| Сокращение журнала регистрации | Раз в полгода-год | Нет |
| Свёртка | По решению, обычно после сдачи годовой отчётности | Да |
Частые вопросы
Можно ли запускать тестирование и исправление при работающих пользователях?
Сколько идёт тестирование и исправление?
Почему база не уменьшилась после удаления помеченных?
.dt. В серверной освобождённые страницы остаются за файлом базы СУБД и заполняются новыми данными.