Тестирование и исправление информационной базы 1С 8.3: Конфигуратор, chdbfl и сервер
Содержание
Исправление ошибок базы в 1С 8.3 запускают в Конфигураторе: Администрирование → Тестирование и исправление..., режим «Тестирование и исправление», кнопка «Выполнить». Перед запуском нужна резервная копия и монопольный доступ: все пользователи должны выйти из базы. Для файловой базы, которая не открывается вовсе, сначала проверяют сам файл утилитой chdbfl.exe из каталога платформы.
Процедура общая для платформы: одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и любой другой конфигурации на 8.3. Разница есть только между файловым и клиент-серверным вариантом, и о ней ниже отдельный раздел.
Когда исправление ошибок базы действительно нужно
Тестирование и исправление — не профилактика «на всякий случай». Это лечение конкретных симптомов. Запускать его стоит, если вы видите:
- 🔴 сообщения вида
Нарушение целостности структуры конфигурацииилиФайл базы данных поврежденпри входе; - 🔴 в документах и справочниках вместо значений стоит
<Объект не найден>с длинным идентификатором; - 🔴 остатки в отчётах не сходятся с движениями документов, а перепроведение не помогает;
- 🔴 база падает при открытии одного и того же списка или документа;
- 🔴 база была открыта в момент аварийного отключения питания, сбоя диска или «падения» сервера.
Если ошибка возникает в одной обработке после обновления, а база в целом открывается нормально — дело скорее в коде конфигурации или расширения. Тестирование базы такую ошибку не исправит.
1. Подготовка: копия, выход пользователей, монопольный режим
Резервная копия
Тестирование с исправлением меняет данные необратимо: удаляет «битые» записи, очищает ссылки, создаёт объекты-заглушки. Без копии откатиться будет некуда.
Как сделать копию:
| Вариант базы | Способ копии | Когда подходит |
|---|---|---|
| Файловая | Скопировать каталог базы целиком (главный файл — 1Cv8.1CD) | Всегда, даже если база не открывается |
| Файловая или серверная | Конфигуратор: Администрирование → Выгрузить информационную базу... (файл .dt) | Если база открывается в Конфигураторе |
| Серверная | Резервная копия средствами СУБД (SQL Server, PostgreSQL) | Основной способ для сервера |
Если повреждён сам файл 1Cv8.1CD, выгрузка в .dt может прерваться с ошибкой. Тогда копируйте файл: это единственная гарантированная копия «как есть».
Выход пользователей
Исправление требует монопольного доступа. Пока в базе есть хоть один сеанс, Конфигуратор не начнёт проверку.
Что сделать:
- Предупредите пользователей и выберите время, когда в базе никто не работает : вечер, выходной.
- В Бухгалтерии, ЗУП и других конфигурациях на БСП включите блокировку:
Администрирование → Обслуживание → Блокировка работы пользователей. Задайте код разрешения, чтобы зайти самому. - Проверьте фоновые и регламентные задания: они тоже держат сеанс. Для серверной базы их блокируют в консоли кластера (подробно — в разделе про клиент-сервер).
- Закройте свои окна 1С:Предприятия, кроме Конфигуратора.
Чтобы войти в заблокированную базу самому, добавьте к параметрам запуска ключ /UC<код>, например /UCservis.
Место на диске
При реструктуризации и сжатии платформа создаёт временные копии таблиц. Держите свободным место не меньше размера самой базы. Для файловой базы на 8 ГБ это минимум 8–10 ГБ на том же диске.
2. Что можно исправить, не выходя из режима 1С:Предприятие
Полноценное тестирование базы доступно только в Конфигураторе. Но часть проблем с данными решается из пользовательского режима, без монопольного доступа и без прав на Конфигуратор.
Инструменты типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) собраны в Администрирование → Обслуживание:
- 🔧 Управление итогами и агрегатами — пересчёт итогов регистров. Помогает, если отчёты по остаткам показывают странные суммы.
- 🔧 Удаление помеченных объектов — чистит то, что помечено на удаление, и показывает, кто ссылается на объект.
- 🔧 Поиск и удаление дублей — объединяет задвоенных контрагентов, номенклатуру и т. п.
- 🔧 Журнал регистрации — показывает, какая операция и у какого пользователя вызвала ошибку.
В Бухгалтерии дополнительно есть «Экспресс-проверка ведения учёта» в разделе отчётов. Она ищет учётные, а не технические ошибки: незакрытые счета, пропущенные документы, неверные остатки.
Если журнал регистрации показывает ошибку в одном документе, попробуйте сначала его перепровести. Если не помогает и ошибка повторяется на разных объектах — переходите к Конфигуратору.
3. Тестирование и исправление базы в Конфигураторе
Это основной способ запустить исправление ошибок в 1С. Порядок такой.
Запуск
- Запустите 1С, выберите базу и нажмите Конфигуратор. Войдите пользователем с правами администратора.
- Откройте
Администрирование → Тестирование и исправление.... - Отметьте нужные проверки (таблица ниже).
- В переключателе внизу выберите «Тестирование и исправление». Режим «Тестирование» только покажет ошибки и ничего не поменяет.
- Задайте действия для найденных проблем (следующий подраздел).
- Нажмите Выполнить и дождитесь окончания. Прогресс и итог выводятся в окне служебных сообщений.
Какие проверки отмечать
| Проверка | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц | Перестраивает индексы | Ошибки поиска, сортировки, медленные списки |
| Проверка логической целостности | Проверяет структуру таблиц и данных | Почти всегда |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты | <Объект не найден> в документах |
| Пересчёт итогов | Перестраивает итоги регистров | Остатки не сходятся с движениями |
| Сжатие таблиц | Освобождает место после удалений | Файловая база сильно «распухла» |
| Реструктуризация таблиц | Пересоздаёт таблицы базы | Серьёзные повреждения, база падает |
Первый прогон по повреждённой базе делайте со всеми галочками, кроме реструктуризации. Её включайте, если без неё ошибки остаются: на большой базе она идёт часами.
Как отвечать на найденные проблемы
Для ссылок на несуществующие объекты платформа предлагает три варианта:
- Создавать объекты — на месте пропавшего элемента появится объект-заглушка. Связи в документах сохранятся, заглушку потом можно заполнить или заменить.
- Очищать ссылки — поле в документе станет пустым. Документ может перестать проводиться, пока его не заполнят.
- Не изменять — ошибка останется, только попадёт в протокол.
Для частичной потери данных объектов выбор такой: Создавать объекты, Удалять объекты или Не изменять.
Для рабочей учётной базы безопаснее выбирать «Создавать объекты» в обоих случаях. Удаление объектов и очистка ссылок убирают информацию, которую потом придётся восстанавливать из копии вручную.
Запуск из командной строки
Для регламентного обслуживания проверку удобно запускать без окна, например ночью через планировщик Windows:
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -LogIntegrity -RecalcTotals -BadRefCreate -BadDataCreate /Out "D:\Logs\check.log" /DisableStartupDialogs
/IBCheckAndRepair— запуск тестирования и исправления;-LogIntegrity— логическая целостность,-ReIndex— реиндексация,-RecalcTotals— пересчёт итогов,-IBCompression— сжатие;-TestOnly— только проверка без исправления;-BadRefCreateи-BadDataCreate— создавать объекты для битых ссылок и потерянных данных;/Out— файл, куда пишется протокол.
Номер версии в пути подставьте свой. Для серверной базы вместо /F указывается /S "сервер\имябазы".
4. Утилита chdbfl.exe для файловой базы
Если файловая база не открывается даже в Конфигураторе, начинайте не с него, а с проверки физической целостности файла. Для этого в комплекте платформы есть chdbfl.exe.
Где найти
Утилита лежит в каталоге bin установленной платформы, например:
C:\Program Files\1cv8\8.3.25.1374\bin\chdbfl.exe
Если платформ установлено несколько, берите ту же версию, на которой работает база.
Как запустить проверку
- Убедитесь, что базу никто не открыл: ни пользователи, ни Конфигуратор, ни фоновые задания. Утилита работает только с закрытым файлом.
- Запустите
chdbfl.exe(лучше от имени администратора). - В поле с именем файла укажите путь к
1Cv8.1CDв каталоге базы. - Отметьте флажок «Исправлять обнаруженные ошибки». Без него утилита только покажет проблемы.
- Нажмите Выполнить.
На базе 2–5 ГБ проверка занимает от нескольких минут до получаса, на больших базах дольше.
Что дальше
chdbfl.exe чинит только физическую структуру файла: страницы, блоки, внутренние таблицы. Логические ошибки в данных он не видит. Поэтому после него, если база открылась, обязательно запустите тестирование и исправление в Конфигураторе.
Если chdbfl.exe сообщает о повреждениях, которые не может исправить, не запускайте его повторно по кругу. Сначала проверьте диск, на котором лежит база: повторяющиеся повреждения файла часто идут от сбойного накопителя или нестабильной сетевой папки.
5. Исправление ошибок в клиент-серверной базе
В серверном варианте данные хранит СУБД, поэтому chdbfl.exe здесь неприменим. Тестирование в Конфигураторе работает, но порядок подготовки другой.
Блокировка сеансов в консоли кластера
- Откройте консоль администрирования серверов 1С и найдите базу в списке информационных баз кластера.
- В свойствах базы включите блокировку начала сеансов и блокировку регламентных заданий. Укажите код разрешения.
- Завершите оставшиеся сеансы в узле «Сеансы» этой базы.
Принудительное завершение сеансов обрывает работу пользователей: несохранённые документы пропадут. Делайте это после предупреждения и вне рабочего времени. Рабочие процессы и службу сервера 1С для этой процедуры останавливать не нужно.
После этого войдите в Конфигуратор с кодом разрешения (/UC<код>) и запустите Администрирование → Тестирование и исправление... так же, как для файловой базы.
Проверка на стороне СУБД
Физическую целостность серверной базы проверяют средствами самой СУБД:
- 🗄️ Microsoft SQL Server — команда
DBCC CHECKDBпо базе данных 1С. Сначала запускайте без параметров исправления, только чтение. - 🗄️ PostgreSQL — целостность индексов проверяет расширение
amcheck; простой практичный тест — полныйpg_dump: если дамп прошёл без ошибок, все таблицы читаются.
Индексы и статистику на сервере обычно обслуживают регламентно средствами СУБД (план обслуживания SQL Server, VACUUM ANALYZE в PostgreSQL). Для реиндексации большой серверной базы это быстрее, чем галочка в Конфигураторе.
-- SQL Server: проверка без исправления
DBCC CHECKDB ('buh_base') WITH NO_INFOMSGS;
Режимы DBCC CHECKDB с исправлением и потерей данных (REPAIR_ALLOW_DATA_LOSS) запускайте только после полной резервной копии и лучше вместе с администратором СУБД.
Чем серверный вариант отличается на практике
| Действие | Файловая база | Серверная база |
|---|---|---|
| Физическая проверка | chdbfl.exe | Средства СУБД |
| Выгнать пользователей | Блокировка в 1С или закрыть сеансы | Консоль кластера |
| Тестирование данных | Конфигуратор | Конфигуратор |
| Сжатие таблиц | Имеет смысл | Место освобождает СУБД |
| Резервная копия | Копия файла или .dt | Бэкап СУБД или .dt |
6. Разбор результатов и наведение порядка после проверки
Когда проверка закончилась, не спешите открывать базу пользователям.
Протокол
Все найденные и исправленные ошибки выводятся в окно служебных сообщений Конфигуратора. Сохраните его содержимое в файл: щёлкните в окне правой кнопкой мыши и найдите команду сохранения, либо выделите текст и скопируйте его. При запуске из командной строки протокол уже лежит в файле из /Out.
В протоколе ищите:
- какие таблицы были повреждены (по имени видно справочник, документ или регистр);
- сколько создано объектов-заглушек и сколько ссылок очищено;
- сообщения о том, что исправить не удалось.
Объекты-заглушки
Если вы выбрали «Создавать объекты», в справочниках появятся элементы без нормального наименования. Их видно по пустому или служебному представлению.
Что с ними сделать:
- Откройте нужный справочник и отсортируйте по наименованию: заглушки окажутся в начале списка.
- Для каждого найдите, где он используется (в БСП — «Поиск ссылок на объект»).
- Заполните реквизиты по данным из копии базы или замените ссылку на правильный элемент.
Проверка учёта
После исправления повторно проведите проблемные документы за период и сверьте ключевые показатели с копией базы: остатки по кассе и банку, расчёты с контрагентами, ОСВ за последний закрытый месяц. Если цифры разошлись, у вас есть копия для сравнения.
Повторный прогон
Запустите режим «Тестирование» без исправления ещё раз. Чистый протокол — признак того, что база восстановлена. Если ошибки повторяются в тех же таблицах, повреждение глубже: нужна реструктуризация, загрузка из .dt в новую пустую базу или восстановление из последней исправной копии.
chdbfl.exe с исправлением, затем запустите тестирование в Конфигураторе.7. Как не доводить базу до повреждений
Большинство повреждений файловых баз связано с внешними причинами. Их можно убрать заранее.
- 💾 Регулярные копии. Ежедневная копия плюс хранение нескольких поколений. Повреждение могут заметить через неделю, и вчерашняя копия уже будет «битой».
- 🔌 ИБП на сервере или компьютере с базой. Обрыв питания во время записи — классическая причина повреждения
1Cv8.1CD. - 🛡️ Исключение каталога базы из проверки антивирусом. Антивирус, блокирующий файл во время записи, вызывает ошибки и замедление.
- 🌐 Осторожно с сетевыми папками. Файловая база в общей папке при нестабильной сети страдает чаще. Для 5–10 и более одновременных пользователей разумно переходить на клиент-серверный вариант.
- 🗓️ Плановое обслуживание. Раз в месяц или квартал — тестирование в режиме проверки через командную строку ночью, с протоколом в файл.
- 🚪 Корректный выход. Не закрывайте 1С через диспетчер задач и не выключайте компьютер с открытой базой.