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

· 9 мин

Содержание

Тестирование и исправление в 1С:Предприятие 8.3 запускают из Конфигуратора: Администрирование → Тестирование и исправление.... Нужен монопольный доступ к базе, свежая резервная копия и пользователь с правами администратора. Из обычного пользовательского режима эту процедуру не запустить.

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

Когда нужно тестирование и исправление базы 1С

Процедура проверяет внутреннюю целостность данных и, если разрешено, исправляет найденное. Это не лекарство от всего. Запускайте её по конкретным признакам:

  • 🔗 в документах и справочниках видны битые ссылки вида <Объект не найден> (123:a1b2...);
  • 📊 остатки в отчётах не сходятся с оборотами, хотя документы проведены верно;
  • 💥 база аварийно закрылась: выключили свет, «упал» сервер, закончилось место на диске;
  • 🐢 после массового удаления данных база заметно потолстела и замедлилась;
  • ⚙️ при открытии формы или проведении появляется ошибка про индекс или неуникальные значения.

Если же база просто не открывается из-за повреждения файла 1Cv8.1CD, Конфигуратор до неё не доберётся. Тогда сначала идёт утилита chdbfl.exe (о ней ниже), а уже потом тестирование и исправление.

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

Подготовка базы данных к тестированию и исправлению

Тестирование и исправление может удалять объекты и очищать ссылки. Откатить это «кнопкой» нельзя. Поэтому подготовка — обязательная часть, а не формальность.

  1. Сделайте резервную копию. В Конфигураторе: Администрирование → Выгрузить информационную базу... — получится файл .dt. Для файловой базы дополнительно скопируйте сам файл 1Cv8.1CD при закрытой программе. Для клиент-серверной — сделайте копию средствами СУБД.
  2. Выгоните всех пользователей. Процедуре нужен монопольный доступ. Предупредите коллег заранее: их сеансы будут закрыты, несохранённые документы пропадут.
  3. Остановите регламентные задания и обмены на время работы. Иначе фоновый сеанс помешает установить монопольный режим.
  4. Проверьте место на диске. Реструктуризация и сжатие пересоздают таблицы, и временно базе может понадобиться объём, сравнимый с её текущим размером.
  5. Запланируйте окно. Небольшая файловая база проверяется за минуты, база в десятки гигабайт — часами. Вечер пятницы или выходной — нормальный выбор.

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

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

Как запустить тестирование и исправление в Конфигураторе

Шаг 1. Откройте базу в режиме Конфигуратора

В окне запуска 1С:Предприятие выделите нужную базу в списке и нажмите кнопку Конфигуратор. Введите имя и пароль пользователя с правами администратора. В режиме 1С:Предприятие (пользовательском) пункта для тестирования нет — даже у администратора.

Шаг 2. Откройте окно процедуры

В меню Конфигуратора выберите Администрирование → Тестирование и исправление.... Конфигурацию открывать не нужно, процедура работает с данными, а не с метаданными.

Шаг 3. Отметьте проверки

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

  • ✅ проверка логической целостности;
  • ✅ проверка ссылочной целостности;
  • ✅ пересчёт итогов;
  • ✅ реиндексация таблиц.

Шаг 4. Выберите режим и действия при ошибках

Переключатель режима: Тестирование и исправление или Только тестирование. Во втором случае база не меняется, вы получаете только отчёт.

При исправлении задайте две реакции:

СитуацияВариантыЧто выбрать обычно
Ссылки на несуществующие объектыСоздавать объекты / Очищать ссылки / Не изменятьСоздавать объекты — потом их видно и можно разобрать вручную
Частичная потеря данных объектовСоздавать объекты / Удалять объекты / Не изменятьСоздавать объекты; удалять — только осознанно

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

Шаг 5. Ограничение по времени и точка прерывания

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

Шаг 6. Запустите и дождитесь окончания

Нажмите Выполнить. Конфигуратор попросит монопольный режим; если кто-то ещё в базе — получите отказ. По окончании результат появится в окне служебных сообщений Конфигуратора.

Режимы и флажки: тестирование, реструктуризация, сжатие

Под одним пунктом меню спрятано шесть разных операций. Их легко путать, особенно реструктуризацию.

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

Чем этот флажок отличается от реструктуризации при обновлении

Многие путают флажок «Реструктуризация таблиц информационной базы» с реструктуризацией при обновлении конфигурации. Это разные вещи:

  • 🔄 при обновлении (Конфигурация → Обновить конфигурацию базы данных) платформа меняет структуру таблиц под новые метаданные: добавляет поля, создаёт таблицы новых объектов;
  • 🧱 в тестировании структура не меняется. Таблицы пересоздаются в той же структуре, данные переписываются в новые. Это лечит физический «мусор» внутри таблиц.

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

Для клиент-серверной базы сжатие таблиц почти ничего не даёт: местом управляет СУБД. Там используйте её собственные средства обслуживания и проверки целостности (для MS SQL Server — DBCC CHECKDB).

Запуск тестирования и исправления из командной строки

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

Пример для файловой базы — только тестирование с записью отчёта в файл:

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

Пример для клиент-серверной базы — исправление с пересчётом итогов и лимитом времени:

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /DisableStartupDialogs /Out"D:\Logs\repair.log" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -BadRefCreate -BadDataCreate -UseStartPoint -TimeLimit:004:00

Номер версии в пути замените на свой — посмотрите папку C:\Program Files\1cv8\.

Что значат ключи:

КлючСоответствует в окне
-ReIndexРеиндексация таблиц
-LogIntegrityТолько логическая целостность
-LogAndRefsIntegrityЛогическая и ссылочная целостность
-RecalcTotalsПересчёт итогов
-IBCompressionСжатие таблиц
-RebuildРеструктуризация таблиц
-TestOnlyРежим «Только тестирование»
-BadRefCreate / -BadRefClear / -BadRefNoneБитые ссылки: создавать / очищать / не изменять
-BadDataCreate / -BadDataDeleteЧастичная потеря данных: создавать / удалять
-UseStartPointПродолжить с точки прерывания
-TimeLimit:hhh:mmОграничение времени

Связку удобно поставить в Планировщик заданий Windows на ночь. Перед ней в том же скрипте делайте выгрузку .dt командой /DumpIB"путь\файл.dt" в режиме DESIGNER.

Пароль в bat-файле лежит открытым текстом. Храните скрипт в папке с доступом только для администратора и заведите для обслуживания отдельного пользователя 1С.

Если в этот момент в базе кто-то работает, пакетный запуск завершится с ошибкой монопольного режима. Проверяйте файл из /Out утром, а не только факт «задание отработало».

Утилита chdbfl.exe для файловой базы

Когда файл базы повреждён физически, Конфигуратор может не открыть её вовсе. Для файловых баз в комплекте платформы есть отдельная утилита chdbfl.exe. Она лежит в папке bin установленной версии, рядом с 1cv8.exe.

Как ей пользоваться:

  1. Закройте базу у всех пользователей. Утилита работает только с неиспользуемым файлом.
  2. Скопируйте 1Cv8.1CD в надёжное место.
  3. Запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD.
  4. Поставьте флажок исправления обнаруженных ошибок, если хотите не только проверку.
  5. Нажмите Выполнить и дождитесь итогового сообщения.

После chdbfl.exe обязательно запустите обычное тестирование и исправление в Конфигураторе. Утилита лечит файловую структуру, а логику данных — ссылки, итоги — проверяет уже Конфигуратор.

Для клиент-серверной базы chdbfl.exe не применяется: физическим хранением занимается СУБД.

Как читать журнал проверки и исправлять критические ошибки

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

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

Диагностика: выберите симптом

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

Если не помогло

  • 🔁 Повторите процедуру с флажком реструктуризации таблиц, если не включали его.
  • 💾 Восстановите базу из последней исправной копии и перенесите изменения за потерянный период вручную.
  • 📦 Выгрузите базу в .dt и загрузите в новую пустую базу: при загрузке таблицы создаются заново.
  • 🛠️ Если ошибка повторяется после каждого обмена или обновления, проблема не в данных, а в источнике. Её решают в обмене или конфигурации, а не повторными проверками.

Частые вопросы о тестировании и исправлении в 1С

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