Как проверить и починить информационную базу 1С через Конфигуратор и chdbfl
Содержание
Тестирование и исправление базы 1С запускают в Конфигураторе: Администрирование → Тестирование и исправление…. Режим требует монопольного доступа, поэтому все пользователи должны выйти из базы, а перед стартом обязательно делается резервная копия. Для файловой базы с повреждённым файлом 1Cv8.1CD сначала прогоняют утилиту chdbfl.exe, а уже потом штатную проверку.
Типичная ситуация: утром бухгалтер открывает ОСВ, а в оборотах по 60 счёту вместо контрагента стоит <Объект не найден>. Или отчёт строится с ошибкой, хотя вчера всё работало. В таких случаях проверка и исправление информационной базы — первый и самый безопасный инструмент. Порядок ниже рассчитан на платформу 8.3 и подходит для любой типовой конфигурации: БП 3.0, ЗУП 3.1, УТ 11, ERP. Механизм платформенный, от конфигурации он не зависит.
1. Подготовка базы 1С к тестированию и исправлению
Исправление меняет данные: удаляет записи, создаёт объекты-заглушки, перестраивает таблицы. Откатить это можно только из копии.
Без свежей резервной копии исправление не запускайте.
Что сделать до запуска
- 👥 Предупредите пользователей и назначьте окно. Для базы до 5 ГБ хватит часа, для 50 ГБ и больше закладывайте вечер или выходной.
- 💾 Сделайте копию:
- файловая база — остановите работу и скопируйте весь каталог с
1Cv8.1CD. Это надёжнее выгрузки, потому что копируется «как есть», вместе с ошибкой; - клиент-серверная база
— полный бэкап средствами СУБД (
.bakв MS SQL,pg_dumpв PostgreSQL); - дополнительно можно выгрузить
.dtчерезАдминистрирование → Выгрузить информационную базу…. Но при серьёзном повреждении выгрузка сама падает с ошибкой, поэтому на неё одну не полагайтесь.
- файловая база — остановите работу и скопируйте весь каталог с
- 🔑 Проверьте, что у вашей учётной записи есть права администратора в базе.
- 💽 Освободите место на диске. Для сжатия и реструктуризации нужно примерно столько же свободного места, сколько занимает сама база.
- 📝 Запишите номер платформы (
Справка → О программе). Если проверка зависнет, этот номер пригодится при поиске причины.
Если база настолько повреждена, что Конфигуратор не открывается, пропустите штатную проверку и начните с раздела про chdbfl.exe.
2. Как запустить тестирование и исправление в монопольном режиме
Монопольный режим означает, что в базе нет ни одного сеанса, кроме вашего. Проверка не начнётся, если открыт хотя бы один клиент, фоновое задание или сеанс обмена.
Как выгнать пользователей
- 🔒 В конфигурациях на БСП:
Администрирование → Обслуживание → Блокировка работы пользователей. Задайте время начала, текст сообщения и код разрешения. Сеансы завершатся сами. - 🖥 В клиент-серверной базе — через консоль администрирования серверов: найдите базу в кластере, откройте «Сеансы» и завершите оставшиеся.
- 📄 В файловой базе проверьте, что никто не держит открытым каталог. Сеансы видны в Конфигураторе:
Администрирование → Активные пользователи.
Принудительное завершение сеанса обрывает работу человека: несохранённый документ пропадёт. Делайте это после предупреждения и в согласованное время.
Запуск
- Откройте базу в режиме Конфигуратор под администратором.
- Выберите
Администрирование → Тестирование и исправление…. - Отметьте нужные проверки (подробно — в следующем разделе).
- Выберите режим: Тестирование и исправление или Только тестирование.
- Нажмите Выполнить и дождитесь окна с итогом. Протокол выводится в окно служебных сообщений Конфигуратора.
Если появилось сообщение о том, что монопольный доступ установить невозможно, кто-то ещё работает в базе. Чаще всего это забытое фоновое задание или «висящий» сеанс обмена с сайтом.
3. Флажки проверки: что делает каждый и сколько это стоит по времени
В окне шесть основных проверок. Ставить всё подряд без разбора не нужно: часть операций идёт долго и не каждая полезна в вашем случае.
| Проверка | Что делает | Когда нужна | Время |
|---|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Медленные отчёты, ошибки поиска | Среднее |
| Проверка логической целостности | Ищет нарушения внутренней структуры таблиц | Всегда при сбоях | Небольшое |
| Проверка ссылочной целостности | Находит ссылки на удалённые объекты | <Объект не найден> в документах и отчётах | Большое |
| Пересчёт итогов | Пересчитывает итоги регистров | Неверные остатки и обороты | Большое на крупных регистрах |
| Сжатие таблиц | Убирает «пустоты» после удаления данных | Файловая база сильно разрослась | Среднее |
| Реструктуризация таблиц | Полностью пересоздаёт таблицы | Тяжёлые повреждения, когда остальное не помогло | Самое большое |
Режим: только проверка или с исправлением
Только тестирование ничего не меняет и показывает список проблем. С него стоит начинать, если вы не понимаете масштаб повреждения.
Тестирование и исправление сразу применяет выбранные действия. Для каждого типа ошибок задаётся правило.
Что делать с битыми ссылками
При найденных ссылках на несуществующие объекты:
- ✅ Создавать объекты — платформа создаёт объект-заглушку с тем же идентификатором. Документы остаются целыми, а заглушку потом можно найти и заменить нормальным элементом. Это самый безопасный вариант для учётной базы.
- ❌ Очищать ссылки — поле в документе станет пустым. Пропадёт информация о том, какой контрагент или номенклатура там стояли.
- ⏸ Не изменять — ошибка останется, но попадёт в протокол.
При частичной потере данных объектов выбор такой же: создавать или удалять. Удаление убирает объект целиком вместе с движениями, поэтому без уверенности его не выбирают.
На большой базе проверку можно ограничить по времени и потом продолжить с того места, где она остановилась. Это удобно, когда технологическое окно — всего пара часов за ночь.
4. Тестирование файловой и клиент-серверной базы 1С: в чём разница
Окно в Конфигураторе одно и то же, но работа под ним разная.
Файловая база
Все данные лежат в одном файле 1Cv8.1CD. Ошибки в нём бывают двух уровней:
- 🧩 логические — нарушены связи между объектами. Их лечит штатное тестирование;
- 💥 физические — повреждена сама структура файла после сбоя питания, «упавшей» сетевой папки или антивируса. Конфигуратор при этом часто не открывается, а штатная проверка падает.
Для физических повреждений есть утилита chdbfl.exe. Она лежит в каталоге платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.
Порядок работы с ней:
- Закройте все сеансы и скопируйте файл базы.
- Запустите
chdbfl.exeот имени администратора Windows. - Укажите путь к
1Cv8.1CD. - Сначала запустите проверку без флажка исправления, посмотрите результат.
- Если ошибки есть, поставьте флажок исправления обнаруженных ошибок и запустите ещё раз.
- После успешной работы утилиты откройте Конфигуратор и выполните штатное тестирование.
Если база лежит на сетевом диске, скопируйте её на локальный диск и проверяйте копию. Работа утилиты по сети медленная, а обрыв связи во время исправления добавит новых повреждений.
Клиент-серверная база (MS SQL Server, PostgreSQL)
Здесь данные хранит СУБД, и физическую целостность отвечает она же. Поэтому задачи делятся:
| Задача | Чем делать |
|---|---|
| Ссылочная и логическая целостность данных 1С | Тестирование в Конфигураторе |
| Пересчёт итогов регистров | Тестирование в Конфигураторе |
| Физическая целостность страниц данных | DBCC CHECKDB в MS SQL, средства PostgreSQL |
| Индексы и статистика | План обслуживания СУБД |
| Сжатие | Средства СУБД; флажок сжатия в 1С здесь не главный инструмент |
На крупной SQL-базе проверка ссылочной целостности идёт часами. Её запускают на копии базы, развёрнутой на тестовом сервере: так рабочая база не простаивает, а вы заранее видите масштаб проблем.
Перед тестированием SQL-базы полезно пройти DBCC CHECKDB. Если СУБД сообщает о повреждённых страницах, сначала разбираются с ними, иначе 1С будет спотыкаться о нечитаемые данные.
5. Автоматическое тестирование базы через командную строку
Ручная проверка требует сидеть у экрана. Пакетный режим позволяет запустить её ночью по расписанию.
Конфигуратор умеет выполнять тестирование без открытия окна по ключу /IBCheckAndRepair. Пример для файловой базы:
@echo off
set V8="C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe"
set LOG=D:\1C\logs\check_%date:~-4%%date:~3,2%%date:~0,2%.txt
%V8% DESIGNER /F"D:\1C\Buh" /N"Администратор" /P"пароль" ^
/IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -BadRefCreate ^
/Out %LOG%
Для клиент-серверной базы вместо /F указывается /S"сервер\имя_базы".
Что значат ключи из примера:
-ReIndex— реиндексация;-LogAndRefsIntegrity— проверка логической и ссылочной целостности;-RecalcTotals— пересчёт итогов;-BadRefCreate— для битых ссылок создавать объекты;/Out— файл протокола, его потом читают.
Есть и ключ -TestOnly — только проверка без исправлений. Полный список параметров с актуальным синтаксисом приведён в документации к вашей версии платформы, в разделе о параметрах командной строки запуска.
Как поставить проверку на расписание
- Сохраните скрипт в файл, например
D:\1C\scripts\check.bat. - Откройте Планировщик заданий Windows и создайте задачу.
- Запуск — от учётной записи, у которой есть доступ к каталогу базы.
- Время — после ночного бэкапа и после установки блокировки сеансов.
- Утром проверяйте файл протокола.
Пароль в bat-файле лежит открытым текстом. Создайте для обслуживания отдельного пользователя 1С и закройте доступ к каталогу со скриптами.
Пакетная проверка тоже требует монопольного доступа. Если ночью работает обмен или регламентное задание, скрипт просто не запустит проверку. Отключите их на время окна обслуживания.
6. Разбор протокола и частые ошибки при исправлении
После проверки в окне служебных сообщений остаётся протокол. Читать его стоит до того, как пользователи вернутся в базу.
Что встречается в протоколе
- 🔗 Битые ссылки — сообщения о ссылках на несуществующие объекты с указанием таблицы. При режиме «Создавать объекты» на их месте появятся элементы-заглушки.
- 📊 Расхождение итогов — регистр пересчитан. Если остатки после этого изменились, значит, раньше отчёты показывали неверные цифры.
- 🧱 Нарушение структуры — повреждения на уровне таблиц. Если они повторяются после исправления, переходите к реструктуризации или
chdbfl.exe.
Что делать с созданными объектами
Заглушки создаются с пустым наименованием. Найти их можно в списке справочника: отсортируйте по наименованию или отберите пустые. Дальше два пути:
- Восстановить наименование и реквизиты по первичным документам.
- Заменить заглушку на правильный элемент через обработку поиска и замены ссылок, а заглушку пометить на удаление.
Ошибки, которые делают сами администраторы
- Запускают исправление без копии и выбирают «Очищать ссылки».
- Ставят все шесть флажков на базу в 100 ГБ за час до начала рабочего дня.
- Лечат файловую базу прямо на сетевой папке.
- Не читают протокол и не узнают, что пересчёт итогов изменил остатки за закрытый период.
7. Профилактика: регламент проверки и исправления базы 1С
Тестирование — инструмент лечения, а не ежедневная процедура. Регулярная профилактика снижает шанс, что оно понадобится в спешке.
| Что | Как часто | Чем |
|---|---|---|
| Резервная копия | Ежедневно | Копия каталога или бэкап СУБД |
| Пробное восстановление копии | Раз в месяц | Развернуть на тестовом месте и открыть |
| Тестирование без исправления | Раз в квартал или перед обновлением | Конфигуратор или скрипт с -TestOnly |
| Обслуживание индексов и статистики (SQL) | Еженедельно | План обслуживания СУБД |
| Проверка свободного места и диска | Ежемесячно | Средства ОС |
Что защищает файловую базу
- 🔌 ИБП на сервере или компьютере, где лежит база.
- 🛡 Исключение каталога базы из проверки антивируса.
- 🌐 Стабильная сеть. При 5–7 одновременных пользователях и больше файловую базу лучше перевести на клиент-серверный вариант или веб-публикацию.
- 🚫 Запрет на принудительное выключение компьютера, пока открыта 1С.
Тестирование перед обновлением конфигурации — хорошая привычка. Обновление на базе с битыми ссылками может завершиться ошибкой на этапе обработчиков, а разбираться с этим посреди обновления сложнее.