Флажки тестирования и исправления базы 1С 8.3: что включать и в каком порядке

· 9 мин

Содержание

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

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

Что делает тестирование и исправление информационной базы 1С

Механизм встроен в платформу 1С:Предприятие 8.3 и одинаков для всех конфигураций: Бухгалтерии, ЗУП, УТ, ERP. Он проверяет служебную структуру базы, а не бухгалтерскую логику. Неправильную проводку или неверно рассчитанную зарплату он не найдёт.

Что умеет утилита:

  • 🔧 перестраивать индексы таблиц;
  • 🔍 искать записи, нарушающие внутреннюю структуру данных (логическая целостность);
  • 🔗 находить ссылки на объекты, которых в базе уже нет (ссылочная целостность);
  • 🧮 заново считать итоги регистров накопления и бухгалтерии;
  • 📦 сжимать таблицы и пересоздавать их целиком (реструктуризация).

Типичные поводы для запуска:

  • в отчётах остатки не сходятся с оборотами за период;
  • в документах и справочниках появились значения вида <Объект не найден> (123:a8b1...);
  • после аварийного отключения питания база открывается с ошибками;
  • файловая база «разбухла» после массового удаления объектов;
  • обновление конфигурации прервалось на этапе реструктуризации.

Для файловой базы есть ещё утилита chdbfl.exe в каталоге bin установленной платформы. Она проверяет физическую целостность файла 1Cv8.1CD, то есть то, до чего Конфигуратор не дотягивается. Если файл повреждён на этом уровне, Конфигуратор часто просто не открывает базу.

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

Порядок подготовки один и тот же для любой базы.

  1. Выгрузите базу: Администрирование → Выгрузить информационную базу... в файл .dt. Для файловой базы дополнительно скопируйте каталог с файлом 1Cv8.1CD целиком, пока база закрыта.
  2. Для клиент-серверной базы сделайте резервную копию средствами СУБД (MS SQL или PostgreSQL). Выгрузка .dt на большой базе идёт долго и при повреждённых данных может завершиться ошибкой.
  3. Предупредите пользователей и завершите их сеансы.
  4. Для файловой базы проверьте файл через chdbfl.exe с отключённым флажком исправления. Если физические ошибки есть, сначала разберитесь с ними.
  5. Откройте Конфигуратор под пользователем с правом администрирования и запустите тестирование.

Без копии базы тестирование в режиме исправления не запускайте: часть изменений необратима.

Как выгнать пользователей из базы

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

Тип базыКак завершить сеансы
ФайловаяПопросить всех выйти. В типовых конфигурациях на БСП: в пользовательском режиме Администрирование → Обслуживание → Блокировка работы пользователей
Клиент-сервернаяТа же блокировка из пользовательского режима или блокировка начала сеансов в свойствах базы в консоли кластера серверов

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

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

Галки проверок: реиндексация, целостность и пересчёт итогов

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

Реиндексация таблиц информационной базы

Удаляет и заново строит индексы. Лечит медленные отборы и ошибки вида «нарушение уникальности индекса», которые появляются после сбоев.

Ставить: почти всегда. Операция безопасна для данных, она не меняет сами записи.

Проверка логической целостности

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

Ставить: всегда. Без неё утилита не узнает, что именно в базе сломано.

Проверка ссылочной целостности

Ищет поля, которые ссылаются на удалённые или несуществующие объекты. Это самый частый источник «битых» значений после прямого удаления объектов, неудачного обмена или ручной правки данных.

Ставить: всегда, когда есть подозрение на <Объект не найден>. При включении этой проверки логическая выполняется тоже.

Пересчёт итогов

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

Ставить: когда расходятся остатки или после аварии. На базе в 50–100 ГБ пересчёт итогов может занять несколько часов, закладывайте время.

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

Только проверка или исправление: когда включать режим исправления

Внизу окна переключатель режима:

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

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

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

Для этого блока три варианта.

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

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

Что делать при частичной потере данных объектов

Это случай, когда объект есть, но часть его данных повреждена: например, у документа потеряна табличная часть или шапка.

ВариантЧто произойдётРиск
Создавать объектыУтилита восстановит объект из того, что осталосьОбъект может оказаться неполным, его нужно проверить
Удалять объектыПовреждённый объект будет удалён вместе с движениямиДанные пропадают безвозвратно
Не изменятьНичего не меняетсяОшибка остаётся

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

Сжатие и реструктуризация таблиц базы

Эти две галки трогают физическое хранение данных, поэтому идут отдельно от проверок.

Сжатие таблиц информационной базы

Удаляет из таблиц освобождённое место, оставшееся после удаления записей. Для файловой базы это заметно уменьшает размер 1Cv8.1CD: после удаления помеченных объектов за несколько лет файл может сжаться на десятки процентов.

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

Реструктуризация таблиц информационной базы

Полностью пересоздаёт таблицы и переносит в них данные. Самая долгая операция, по времени она может превышать все остальные вместе.

Ставить, когда:

  • обычная проверка не помогла, а ошибки повторяются;
  • обновление конфигурации прервалось на реструктуризации;
  • файловая база после сбоя работает нестабильно.

Если места на диске мало, реструктуризация не дойдёт до конца: ей нужно примерно столько же свободного места, сколько занимает база.

Итоги регистров и их оптимизация

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

Какие галки ставить в типовых ситуациях

Ниже рабочие наборы под частые задачи. Первым идёт запуск «Только проверка», вторым — исправление.

СитуацияРеиндексацияЛогическаяСсылочнаяИтогиСжатиеРеструктуризация
Плановая профилактика раз в квартал✅✅✅✅✅ (файловая)—
Не сходятся остатки✅✅—✅——
<Объект не найден> в документах✅✅✅✅——
База разбухла после удаления объектов✅✅——✅—
Ошибки после сбоя питания или прерванного обновления✅✅✅✅✅✅
Что показал первый запуск в режиме «Только проверка»?

Запуск из командной строки

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

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -TestOnly /Out"D:\Logs\check.txt"

Путь к 1cv8.exe подставьте свой, по номеру установленной платформы. Для клиент-серверной базы вместо /F указывают /S"сервер\имябазы".

Основные ключи после /IBCheckAndRepair:

  • -ReIndex — реиндексация;
  • -LogIntegrity — логическая целостность, -LogAndRefsIntegrity — логическая и ссылочная;
  • -RecalcTotals — пересчёт итогов;
  • -IBCompression — сжатие таблиц;
  • -Rebuild — реструктуризация;
  • -TestOnly — только проверка, без исправления;
  • -BadRefCreate, -BadRefClear, -BadRefNone — что делать с битыми ссылками;
  • -BadDataCreate, -BadDataDelete — что делать при частичной потере данных.

Протокол из файла /Out проверяйте утром до начала работы. Пароль в bat-файле храните на сервере с ограниченным доступом.

Частые ошибки при тестировании и исправлении

  • ❌ Сразу запускать исправление. Без первого прохода «Только проверка» вы не знаете, что утилита собирается менять.
  • ❌ Прерывать зависший процесс. На большой базе тестирование может молчать часами, особенно на пересчёте итогов и реструктуризации. Снятие процесса через диспетчер задач в момент записи в таблицы способно повредить базу сильнее исходной проблемы. Сначала проверьте, растёт ли нагрузка на диск и процессор.
  • ❌ Лечить клиент-серверную базу только утилитой 1С. Если повреждены страницы данных на уровне СУБД, 1С их не исправит. Сначала проверка средствами СУБД.
  • ❌ Не сохранять протокол. Окно сообщений очищается при следующем запуске. Скопируйте его в файл: по нему потом ищут, какие объекты восстановлены или очищены.
  • ❌ Запускать на сетевом диске. Для файловой базы на сетевой папке тестирование идёт медленнее, а обрыв связи прерывает его посередине. Если возможно, скопируйте базу на локальный диск, проверьте и верните обратно.
Сколько времени идёт тестирование и исправление базы 1С?
Файловая база на 2–5 ГБ проверяется за 10–40 минут. Клиент-серверная на 100 ГБ с пересчётом итогов и реструктуризацией может работать 6–10 часов и дольше. Основное время уходит на итоги и реструктуризацию.
Можно ли запустить тестирование, если пользователи работают в базе?
Нет. Утилите нужен монопольный режим. Без пересчёта структуры можно только пересчитать итоги через «Управление итогами» в пользовательском режиме.
Как часто делать профилактическое тестирование?
Для активной файловой базы разумно раз в квартал и после каждого аварийного отключения. Для клиент-серверной профилактика идёт в основном средствами СУБД, тестирование 1С запускают при явных ошибках.
Что делать с элементами «Объект не найден» после исправления?
Найдите их поиском по наименованию в нужном справочнике, посмотрите места использования и замените на правильные элементы. Если правильный элемент восстановить нельзя, оставьте заглушку и переименуйте её понятно для пользователей.
Тестирование помогло, а через неделю ошибки вернулись. Почему?
Причина повреждений осталась: сбоящий диск, нестабильная сеть до файловой базы, обмен с внешней системой, который присылает ссылки на удалённые объекты. Проверьте журнал регистрации и состояние дисков.