Диагностика информационной базы 1С 8.3: физика, ссылки, итоги и журнал
Содержание
Проверить базу данных 1С на ошибки можно двумя инструментами: утилитой chdbfl.exe (физическая целостность файла базы) и режимом Администрирование → Тестирование и исправление в Конфигураторе (логика, ссылки, итоги, индексы). Оба требуют, чтобы в базе не было пользователей, и оба запускают только после резервной копии.
Типичная ситуация: в понедельник отчёт по 60-му счёту не бьётся с оборотно-сальдовой ведомостью, в документах вместо контрагента висит <Объект не найден> (123:a1b2...), а утром база упала с Ошибка формата потока. Это разные поломки, и проверять их нужно в правильном порядке: сначала «железо» файла, потом логика данных, потом учётные итоги.
Подготовка базы к проверке и тестированию
Проверка с исправлением меняет данные необратимо. Если программа решит «удалить объекты» с битыми данными, вернуть их можно только из копии.
Перед любым исправлением сделайте резервную копию и убедитесь, что она разворачивается.
Порядок подготовки:
- Договоритесь о времени. Все пользователи должны выйти: тестированию и исправлению нужен монопольный доступ. Для базы на 10–20 ГБ закладывайте от часа до нескольких часов.
- Отключите регламентные задания и обмены, которые могут подключиться к базе в процессе (синхронизация с сайтом, обмен с УТ, загрузка банка).
- Сделайте копию:
- 📁 файловая база — скопируйте каталог базы целиком, главное — файл
1Cv8.1CD; - 🗄 клиент-серверная — полный бэкап средствами СУБД (MS SQL или PostgreSQL);
- 📦 дополнительно — выгрузка в
.dtчерезАдминистрирование → Выгрузить информационную базув Конфигураторе.
- 📁 файловая база — скопируйте каталог базы целиком, главное — файл
- Проверьте свободное место. Реиндексация и сжатие создают временные файлы; держите на диске хотя бы двойной объём базы.
- Запишите версию платформы и путь к базе: они понадобятся для пакетного запуска и для отчёта, если придётся звать специалиста.
Если база повреждена так, что .dt не выгружается, копия файла 1Cv8.1CD всё равно делается обычным копированием. Именно она спасает, когда исправление пошло не так.
Шаг 1. Физическая проверка файловой базы утилитой chdbfl
Для файловой базы начинайте с chdbfl.exe. Она проверяет структуру самого файла 1Cv8.1CD: страницы, заголовки таблиц, индексы. Если файл повреждён физически, логическое тестирование в Конфигураторе может просто упасть.
Где лежит утилита:
C:\Program Files\1cv8\8.3.2x.xxxx\bin\chdbfl.exe
Номер каталога — ваша версия платформы.
Как запустить:
- Убедитесь, что базу никто не открыл (ни пользователь, ни Конфигуратор, ни обмен).
- Запустите
chdbfl.exe, в поле имени файла укажите путь к1Cv8.1CD. - Сначала запустите проверку без флажка «Исправлять обнаруженные ошибки» — так вы увидите масштаб.
- Если ошибки найдены, сделайте свежую копию файла и повторите с флажком исправления.
Что означает результат:
| Сообщение | Что значит | Дальше |
|---|---|---|
| Ошибок не обнаружено | Файл физически цел | Переходите к шагу 2 |
| Ошибки найдены и исправлены | Повреждённые страницы восстановлены или отброшены | Обязательно шаг 2: часть записей могла потеряться |
| Утилита падает или зависает | Сильное повреждение | Работайте с копией, восстанавливайте из бэкапа |
Для клиент-серверной базы chdbfl.exe не подходит: файла 1Cv8.1CD там нет, физическое хранение — забота СУБД.
Шаг 2. Режим «Тестирование и исправление» в Конфигураторе
Это главный инструмент проверки базы данных 1С на логические ошибки. Он одинаково работает для файловых и серверных баз.
Запуск:
- Откройте базу в режиме Конфигуратор.
- Выберите
Администрирование → Тестирование и исправление.... - Отметьте проверки и режим, нажмите «Выполнить».
Что отмечать
| Флажок | Что делает | Когда включать |
|---|---|---|
| Реиндексация таблиц информационной базы | Перестраивает индексы | Тормоза, «задвоения» в списках, ошибки поиска |
| Проверка логической целостности | Сверяет внутреннюю структуру таблиц | Почти всегда |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты | «Объект не найден», битые реквизиты |
| Пересчёт итогов | Перестраивает итоговые таблицы регистров | Отчёты не сходятся с документами |
| Сжатие таблиц информационной базы | Убирает пустое место в файле | Файловая база, после массовых удалений |
| Реструктуризация таблиц | Полностью пересоздаёт таблицы | Редко, по прямой необходимости: долго и тяжело |
Режим: только тестирование или с исправлением
- 🔍 «Тестирование» — программа находит и выводит проблемы в окно сообщений, ничего не меняя.
- 🛠 «Тестирование и исправление» — находит и сразу исправляет по выбранным правилам.
Разумная практика — сначала прогнать в режиме «Тестирование», посмотреть список, а потом запустить исправление уже на копии или после свежего бэкапа.
Пакетный запуск без интерфейса
Для ночной проверки или большой базы удобнее командная строка:
"C:\Program Files\1cv8\8.3.2x.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -TestOnly /Out"D:\Logs\check.txt"
Ключи:
/F— путь к файловой базе; для серверной —/S"сервер\имя_базы";-TestOnly— только тестирование; уберите его, чтобы включить исправление;-LogAndRefsIntegrity— логическая и ссылочная целостность вместе (-LogIntegrity— только логическая);-BadRefCreate,-BadRefClear,-BadRefNone— что делать с битыми ссылками;-BadDataCreate,-BadDataDelete— что делать с частично потерянными объектами;/Out— файл, куда пишется результат.
Если сомневаетесь в каком-то ключе для своей версии платформы, сверьтесь со справкой по параметрам командной строки 1cv8.exe, она есть в документации к платформе.
Шаг 3. Ссылочная целостность: битые ссылки и «Объект не найден»
Ссылочная целостность нарушена, когда документ или справочник ссылается на элемент, которого в базе уже нет. Внешне это выглядит как <Объект не найден> (85:b3c1...) в поле контрагента, номенклатуры или договора.
Откуда берутся битые ссылки:
- ❌ удаление объекта напрямую, минуя контроль ссылок (обработками, обменом, через прямые запросы к СУБД);
- ❌ сбой обмена, когда документ пришёл, а справочник — нет;
- ❌ физическое повреждение файла, после которого
chdbfl.exeотбросил часть записей; - ❌ загрузка данных из внешних источников без проверки.
При включённой проверке ссылочной целостности Конфигуратор спрашивает, что делать в двух ситуациях.
Ссылки на несуществующие объекты:
| Вариант | Результат | Риск |
|---|---|---|
| Создавать объекты | Появляются элементы-заглушки, ссылки сохраняются | Минимальный: данные видны, заглушку можно заполнить |
| Удалять ссылки | Поле очищается | Документ теряет реквизит, могут сломаться проводки |
| Не изменять | Только отчёт в окне сообщений | Нет, но и исправления нет |
Частичная потеря данных объектов: «Создавать объекты», «Удалять объекты» или «Не изменять».
Для учётной базы почти всегда выбирайте «Создавать объекты». Заглушку потом легко найти, понять по документам, кто это был, и заполнить реквизиты. Удалённую ссылку или удалённый документ так не вернёшь.
Найти созданные заглушки просто: они появляются в справочниках с наименованием вида «Объект не найден» и номером. Отфильтруйте список по этому слову и разберите каждую.
Шаг 4. Пересчёт итогов и регистров
Если оборотно-сальдовая ведомость не совпадает с карточкой счёта, а остатки на складе в отчёте расходятся с документами, вероятная причина — испорченные итоги регистров. Регистры хранят движения и отдельно — посчитанные итоги, и вторые иногда «отстают».
Варианты пересчёта:
- В Конфигураторе — флажок «Пересчёт итогов» в окне тестирования. Пересчитываются все регистры, нужен монопольный доступ.
- В режиме предприятия — в типовых конфигурациях на БСП:
Администрирование → Обслуживание, обработка «Управление итогами и агрегатами». Там можно пересчитать итоги и установить период , по который они рассчитаны.
Пересчёт итогов чинит хранение, но не учёт. Если сам документ проведён неверно, итоги посчитаются правильно по неправильным движениям. Для бухгалтерских ошибок в БП 3.0 есть отдельный инструмент: Отчеты → Анализ учета → Экспресс-проверка. Он ищет учётные нарушения (не закрытые счета, пересортицу, нарушения последовательности), а не повреждения базы.
После пересчёта итогов и исправления ссылок в бухгалтерских базах часто нужно перепровести документы за период и заново закрыть месяц. Делайте это после сверки, а не вслепую за весь год.
Шаг 5. Файловая и клиент-серверная база: в чём разница проверки
Набор флажков в Конфигураторе одинаковый, но то, что реально происходит, и чем дополнять проверку, — разное.
| Действие | Файловая база | Клиент-серверная база |
|---|---|---|
| Физическая целостность | chdbfl.exe | Средства СУБД: DBCC CHECKDB в MS SQL, проверка и REINDEX в PostgreSQL |
| Реиндексация | Конфигуратор | Конфигуратор или регламент СУБД (план обслуживания) |
| Сжатие таблиц | Даёт заметный эффект | Почти бесполезно: место освобождает СУБД |
| Логическая и ссылочная целостность | Конфигуратор | Конфигуратор |
| Пересчёт итогов | Конфигуратор или «Управление итогами» | То же |
| Монопольный доступ | Все вышли из базы | Сеансы базы завершены, блокировка установлена в консоли кластера |
Для MS SQL физическую проверку запускают из SQL Server Management Studio:
DBCC CHECKDB ('Buh') WITH NO_INFOMSGS;
Если команда сообщает об ошибках согласованности, восстановление лучше делать из бэкапа СУБД. Режимы с потерей данных (REPAIR_ALLOW_DATA_LOSS) — последняя мера и только на копии.
Для серверной базы монопольный режим удобнее обеспечить через консоль администрирования кластера: в свойствах базы включить блокировку начала сеансов, затем завершить активные сеансы. Завершение сеансов обрывает работу пользователей без сохранения — делайте это в согласованное окно, предупредив людей.
Регламентные планы обслуживания СУБД (реиндексация, обновление статистики) снимают большую часть «тормозов» серверной базы. Запускать ради этого полное тестирование в Конфигураторе каждую неделю не нужно.
Шаг 6. Журнал регистрации: ищем, откуда взялись ошибки
Исправить повреждение — полдела. Если не найти причину, через месяц всё повторится. Первоисточник — журнал регистрации.
Где открыть:
- в Конфигураторе —
Администрирование → Журнал регистрации; - в режиме предприятия типовых конфигураций —
Администрирование → Обслуживание → Журнал регистрации.
Как искать:
- Задайте период: от последнего дня, когда база работала нормально, до момента сбоя.
- В отборе поставьте уровень «Ошибка», при необходимости добавьте «Предупреждение».
- Отфильтруйте по событию: удаление объектов, изменение данных, ошибки обмена, аварийное завершение сеанса.
- Найдите «объект не найден» по ссылке: в журнале по событию удаления видно, кто и когда удалил элемент.
На что смотреть:
- 🔌 массовые аварийные завершения сеансов — признак обрывов сети, перезагрузок или «падений» сервера;
- 🔄 ошибки обмена в одно и то же время — проблема в узле обмена или в правилах;
- 🗑 удаление объектов пользователем с полными правами в обход пометки на удаление;
- ⏱ длинные транзакции, прерванные сбоем.
Для файловой базы частая причина повреждений — работа по сети через общую папку при нестабильном соединении или выключение компьютера, на котором лежит база, во время записи. Если в журнале видны аварийные завершения сеансов и база при этом сетевая, задумайтесь о переходе на серверный вариант или веб-публикацию.
Если проверка не помогла
Бывает, что тестирование и исправление проходит, а проблема остаётся или база не открывается совсем. Варианты по нарастанию радикальности:
- Выгрузить и загрузить
.dt. Выгрузка в.dtи загрузка в новую пустую базу пересобирает всё хранилище. Часто лечит то, что не взяло тестирование. - Проверить конфигурацию, а не данные. Ошибки вида «Нарушение целостности структуры конфигурации» связаны с метаданными. Здесь поможет
Конфигурация → Проверка конфигурацииили обновление из исходного файла поставки. - Восстановить из резервной копии и дозанести документы, введённые после неё. Это часто быстрее, чем ручная починка сотен заглушек.
- Отдать базу специалисту с логом тестирования, выгрузкой журнала регистрации и версией платформы.
Не запускайте исправление повторно по кругу на одной и той же испорченной базе. Каждый проход с вариантом «Удалять» может отрезать ещё часть данных. Всегда возвращайтесь к копии.
Частые вопросы
Как часто проверять базу 1С на ошибки?
Можно ли работать в базе во время тестирования?
chdbfl.exe нужен монопольный доступ. Пользователи и обмены должны быть отключены.Сколько длится тестирование и исправление?
Чем «Проверка конфигурации» отличается от тестирования базы?
Что делать, если тестирование зависло на одной таблице?
chdbfl.exe или СУБД — зависание часто означает физическое повреждение.