Запуск тестирования и исправления информационной базы 1С:Предприятие 8.3
Содержание
Тестирование и исправление в 1С:Предприятие 8.3 запускают из Конфигуратора: Администрирование → Тестирование и исправление.... Нужен монопольный доступ к базе, свежая резервная копия и пользователь с правами администратора. Из обычного пользовательского режима эту процедуру не запустить.
Обычно к ней приходят, когда база начала «сыпаться»: отчёты показывают неверные остатки, в документах появились <Объект не найден>, а программа падает при открытии журнала. Ниже — порядок запуска, смысл каждого флажка, команда для ночного обслуживания и что делать с ошибками в журнале проверки.
Когда нужно тестирование и исправление базы 1С
Процедура проверяет внутреннюю целостность данных и, если разрешено, исправляет найденное. Это не лекарство от всего. Запускайте её по конкретным признакам:
- 🔗 в документах и справочниках видны битые ссылки вида
<Объект не найден> (123:a1b2...); - 📊 остатки в отчётах не сходятся с оборотами, хотя документы проведены верно;
- 💥 база аварийно закрылась: выключили свет, «упал» сервер, закончилось место на диске;
- 🐢 после массового удаления данных база заметно потолстела и замедлилась;
- ⚙️ при открытии формы или проведении появляется ошибка про индекс или неуникальные значения.
Если же база просто не открывается из-за повреждения файла 1Cv8.1CD, Конфигуратор до неё не доберётся. Тогда сначала идёт утилита chdbfl.exe (о ней ниже), а уже потом тестирование и исправление.
Профилактически процедуру полезно гонять раз в месяц-квартал на копии базы в режиме «Только тестирование». Это даёт ранний сигнал о проблемах без риска что-то изменить в рабочих данных.
Подготовка базы данных к тестированию и исправлению
Тестирование и исправление может удалять объекты и очищать ссылки. Откатить это «кнопкой» нельзя. Поэтому подготовка — обязательная часть, а не формальность.
- Сделайте резервную копию. В Конфигураторе:
Администрирование → Выгрузить информационную базу...— получится файл.dt. Для файловой базы дополнительно скопируйте сам файл1Cv8.1CDпри закрытой программе. Для клиент-серверной — сделайте копию средствами СУБД. - Выгоните всех пользователей. Процедуре нужен монопольный доступ. Предупредите коллег заранее: их сеансы будут закрыты, несохранённые документы пропадут.
- Остановите регламентные задания и обмены на время работы. Иначе фоновый сеанс помешает установить монопольный режим.
- Проверьте место на диске. Реструктуризация и сжатие пересоздают таблицы, и временно базе может понадобиться объём, сравнимый с её текущим размером.
- Запланируйте окно. Небольшая файловая база проверяется за минуты, база в десятки гигабайт — часами. Вечер пятницы или выходной — нормальный выбор.
Не запускайте исправление на единственном экземпляре базы без резервной копии. Если режим «Удалять объекты» снесёт документы с частично потерянными данными, вернуть их можно будет только из копии.
Если база сильно повреждена, сначала прогоните процедуру на копии. Посмотрите, что она предлагает удалить, и только потом решайте, запускать ли исправление на рабочей базе.
Как запустить тестирование и исправление в Конфигураторе
Шаг 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.
Как ей пользоваться:
- Закройте базу у всех пользователей. Утилита работает только с неиспользуемым файлом.
- Скопируйте
1Cv8.1CDв надёжное место. - Запустите
chdbfl.exe, укажите путь к файлу1Cv8.1CD. - Поставьте флажок исправления обнаруженных ошибок, если хотите не только проверку.
- Нажмите
Выполнитьи дождитесь итогового сообщения.
После chdbfl.exe обязательно запустите обычное тестирование и исправление в Конфигураторе. Утилита лечит файловую структуру, а логику данных — ссылки, итоги — проверяет уже Конфигуратор.
Для клиент-серверной базы chdbfl.exe не применяется: физическим хранением занимается СУБД.
Как читать журнал проверки и исправлять критические ошибки
После выполнения в окне сообщений Конфигуратора появится список. Последняя строка — итог: проверка завершена или прервана. Сохранить список можно через контекстное меню окна сообщений, при пакетном запуске всё уже лежит в файле /Out.
Типовые сообщения в журнале выглядят так: «Обнаружены ссылки на несуществующий объект», «Нарушена логическая целостность», «Неуникальные значения индекса». Рядом указывается таблица или объект метаданных — по нему понятно, где искать проблему.
После любого исправления сделайте контрольный прогон в режиме «Только тестирование». Чистый журнал без ошибок — признак, что процедура доведена до конца. Затем проверьте ключевые отчёты: оборотно-сальдовую ведомость, остатки по складам, расчёты с контрагентами.
Если не помогло
- 🔁 Повторите процедуру с флажком реструктуризации таблиц, если не включали его.
- 💾 Восстановите базу из последней исправной копии и перенесите изменения за потерянный период вручную.
- 📦 Выгрузите базу в
.dtи загрузите в новую пустую базу: при загрузке таблицы создаются заново. - 🛠️ Если ошибка повторяется после каждого обмена или обновления, проблема не в данных, а в источнике. Её решают в обмене или конфигурации, а не повторными проверками.