Диагностика информационной базы 1С 8.3: что проверять, чем и в каком порядке
Содержание
Проверить базу 1С 8.3 на ошибки можно штатно: откройте Конфигуратор, выберите Администрирование → Тестирование и исправление, отметьте реиндексацию, логическую и ссылочную целостность, пересчёт итогов и запустите сначала режим «Только проверка». Для файловой базы с подозрением на физическое повреждение до этого прогоните утилиту chdbfl.exe, для серверной — проверку средствами СУБД.
Порядок важнее набора инструментов. Сначала копия, потом диагностика без изменений, и только потом исправление. Если перепутать шаги, «лечение» может удалить данные, которые ещё можно было спасти.
Подготовка к проверке базы: копия, права и монопольный режим
Тестирование с исправлением меняет данные. Поэтому перед любым исправлением сделайте резервную копию и проверьте, что она открывается.
Какую копию делать:
- 📁 Файловая база — скопируйте весь каталог базы, главное — файл
1Cv8.1CD. При физическом повреждении это надёжнее выгрузки:.dtиз повреждённой базы может не сформироваться. - 💾 Выгрузка .dt —
Конфигуратор → Администрирование → Выгрузить информационную базу. Если выгрузка падает с ошибкой, это уже диагноз: в базе есть повреждённые записи. - 🗄️ Серверная база — полная резервная копия средствами СУБД (MS SQL Server или PostgreSQL). Её делает администратор сервера БД.
Что нужно для запуска:
- Пользователь с ролью «Полные права» или правом администрирования.
- Монопольный режим. Тестирование и исправление не стартует, пока в базе есть другие сеансы.
- Окно времени. Большая база проверяется часами, на это время работа в ней останавливается.
Завершение чужих сеансов обрывает работу пользователей: несохранённые документы пропадут. Предупредите людей заранее и проводите проверку вечером или в выходной.
Для серверной базы сеансы завершают в консоли администрирования кластера. Перед этим стоит установить блокировку начала сеансов в свойствах информационной базы, чтобы никто не зашёл повторно во время проверки.
Штатные средства 1С для проверки информационной базы
Тестирование и исправление в Конфигураторе
Это главный инструмент. Путь: Конфигуратор → Администрирование → Тестирование и исправление.
| Флажок | Что делает | Когда нужен |
|---|---|---|
| Реиндексация таблиц информационной базы | Перестраивает индексы | Ошибки поиска, неверная сортировка, дубли в списках |
| Проверка логической целостности | Проверяет структуру таблиц и записей | Почти всегда |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты | «Объект не найден» в документах и справочниках |
| Пересчёт итогов | Пересчитывает итоги регистров | Остатки в отчётах не сходятся с движениями |
| Сжатие таблиц | Убирает пустые записи | В основном для файловой базы, после массового удаления |
| Реструктуризация таблиц | Пересоздаёт таблицы | Крайний случай, долго |
Режим выбирается переключателем:
- 🔍 Только проверка — ничего не меняет, выводит список проблем в окно служебных сообщений.
- 🛠️ Проверка и исправление — исправляет найденное по заданным правилам.
Для битых ссылок есть варианты «Создавать объекты», «Очищать ссылки», «Не изменять». На первом проходе выбирайте «Создавать объекты»: программа создаст элементы-заглушки, и вы увидите, куда вели ссылки. Очистка ссылок стирает эту информацию безвозвратно.
Для очень больших баз включите ограничение времени выполнения и продолжение с контрольной точки. Проверку можно разбить на несколько ночей.
Проверка конфигурации
Ошибки бывают не только в данных, но и в коде. Конфигуратор → Конфигурация → Проверка конфигурации ищет синтаксические ошибки в модулях, ссылки на несуществующие объекты метаданных, нарушение логической целостности конфигурации. Это полезно после ручных доработок и объединения конфигураций.
Пакетный запуск из командной строки
Тестирование можно запускать без открытия Конфигуратора, например по расписанию:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -TestOnly /Out"D:\Logs\check.txt" /DisableStartupMessages
Ключ -TestOnly включает режим «Только проверка». Результат пишется в файл из параметра /Out. Для серверной базы вместо /F указывают /S"сервер\имя_базы".
Проверки внутри типовых конфигураций
В БП 3.0 и других конфигурациях на БСП есть сервисы уровня данных:
- 🧹
Администрирование → Обслуживание → Корректировка данных— поиск и удаление дублей, удаление помеченных объектов. - 📊 В БП 3.0
Отчёты → Анализ учета → Экспресс-проверка— ищет учётные ошибки: неверные остатки, пропущенные регламентные операции.
Это уже не техническая целостность, а логика учёта. Но частая жалоба «база с ошибками» оказывается именно такой.
Журнал регистрации: где искать следы ошибок
Журнал регистрации показывает, что и когда сломалось. В интерфейсе «Такси» он открывается через Администрирование → Обслуживание → Журнал регистрации, в Конфигураторе — через Администрирование → Журнал регистрации.
Как читать:
- Установите отбор по уровню «Ошибка».
- Сузьте период до дня, когда появилась проблема.
- Сгруппируйте по событию и пользователю — повторяющиеся ошибки сразу видны.
- Откройте запись: в комментарии будет текст исключения и модуль, где оно возникло.
Что настораживает:
- ❗ Повторяющееся
Ошибка формата потока— повреждены кэш или данные. - ❗ Аварийные завершения сеансов без действий пользователя.
- ❗ Ошибки записи одного и того же документа у разных людей.
- ❗ Массовые удаления, которых никто не делал.
Сам журнал хранится в каталоге 1Cv8Log: у файловой базы — внутри каталога базы, у серверной — в каталоге кластера srvinfo\reg_1541\<GUID базы>\1Cv8Log. Если журнал разросся до гигабайтов, его можно сократить в окне журнала регистрации в Конфигураторе, предварительно сохранив старые записи в файл.
Производительность и «узкие места»: отдельная диагностика
Тормоза — тоже ошибка, но тестирование и исправление её не найдёт. Здесь нужны другие инструменты.
Технологический журнал
Он пишет то, чего нет в журнале регистрации: исключения платформы, ожидания на блокировках, взаимоблокировки, долгие запросы. Включается файлом logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\.
Минимальная настройка для сбора исключений:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1C_TechLog\excp" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Параметр history задаёт срок хранения в часах. Для поиска блокировок добавляют события TLOCK, TTIMEOUT и TDEADLOCK.
Журнал со всеми событиями за несколько часов занимает десятки гигабайт и нагружает диск. Включайте только нужные события и выключайте сбор после диагностики.
Консоль кластера и Windows
Для серверного варианта откройте консоль администрирования кластера: в списке сеансов видно, кто держит базу, сколько памяти и времени занимает вызов. Монитор ресурсов Windows покажет, что упирается: процессор, диск или память.
| Симптом | Куда смотреть |
|---|---|
| Всё медленно у всех | Нагрузка на диск и память сервера, размер tempdb в MS SQL |
| Медленно в одном отчёте | Технологический журнал, события долгих запросов |
| «Конфликт блокировок при выполнении транзакции» | События TLOCK, TTIMEOUT |
| Файловая база тормозит после чисток | Сжатие таблиц в тестировании и исправлении |
Внешние утилиты для глубокой проверки базы 1С
chdbfl.exe — физическая проверка файловой базы
Утилита лежит в каталоге bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe. Она проверяет сам файл 1Cv8.1CD на уровне страниц и структур, чего Конфигуратор не делает.
Порядок:
- Закройте все сеансы базы, включая Конфигуратор.
- Сделайте копию каталога базы.
- Запустите
chdbfl.exe, укажите путь к1Cv8.1CD. - Первый раз запустите без флажка «Исправлять обнаруженные ошибки».
- Если ошибки найдены — повторите с флажком, затем выполните тестирование и исправление в Конфигураторе.
Типичный сценарий: база не открывается с сообщением Файл базы данных поврежден. Сначала chdbfl, потом штатное тестирование.
Проверка на стороне СУБД
За физическую целостность серверной базы отвечает СУБД, и проверять её нужно там же:
- 🗄️ MS SQL Server — команда
DBCC CHECKDBпо базе в SQL Server Management Studio. - 🐘 PostgreSQL — расширение
amcheckили утилитаpg_amcheck(PostgreSQL 14 и новее) для проверки индексов и таблиц.
DBCC CHECKDB (N'buh_base') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Пустой вывод означает, что ошибок нет. Сообщения об ошибках согласованности — повод остановиться и передать базу администратору СУБД. Режимы исправления с потерей данных запускают только после полной копии и только осознанно.
Сторонние инструменты
Есть утилиты сторонних разработчиков, которые читают 1Cv8.1CD напрямую и позволяют вытащить таблицы из базы, которую платформа не открывает. Это инструмент последнего шанса: работайте только с копией файла.
Вирусы и вредоносный код: что проверить в базе и вокруг неё
Антивирус внутри 1С не нужен, но угрозы для базы реальны.
Что проверить:
- 🦠 Файлы базы и копий — шифровальщики чаще всего портят именно
.1CDи.dt. Признак: файл не открывается, рядом лежат файлы со странным расширением и запиской. - 📎 Внешние обработки и отчёты — файлы
.epfи.erfвыполняют произвольный код. Посмотрите список вАдминистрирование → Печатные формы, отчеты и обработки: и дополнительные обработки, и расширения. - 👤 Пользователи — нет ли незнакомых учётных записей с полными правами.
- 🛡️ Защита от опасных действий — в карточке пользователя этот флажок должен быть включён у всех, кроме администраторов. Тогда платформа предупреждает перед выполнением потенциально опасного кода.
Добавляйте каталог базы в исключения сканирования «на лету»: постоянная проверка файла 1Cv8.1CD замедляет работу и иногда блокирует его. Но копии регулярно проверяйте полностью, а резервные хранилища держите отдельно от рабочего сервера.
1Cv8.1CD. Копия каталога → chdbfl.exe без исправления → с исправлением → тестирование и исправление в Конфигураторе./ClearCache), если не помогло — тестирование и исправление.TLOCK и TDEADLOCK.Регулярная проверка базы 1С: как предотвратить ошибки
Типичные причины повреждения файловой базы — аварийное отключение питания, обрывом сети при работе по общей папке и переполненным диском. Регламент закрывает эти риски.
| Операция | Как часто | Чем |
|---|---|---|
| Резервная копия | Ежедневно | Копирование каталога / средства СУБД |
| Проверка, что копия восстанавливается | Раз в месяц | Развернуть в тестовую базу |
| Тестирование «Только проверка» | Раз в месяц | Пакетный запуск по расписанию |
| Обслуживание индексов и статистики СУБД | Еженедельно | План обслуживания MS SQL, VACUUM ANALYZE в PostgreSQL |
| Просмотр журнала регистрации по ошибкам | Еженедельно | Отбор по уровню «Ошибка» |
| Обновление платформы и конфигурации | По выходу релизов | Сначала на копии |
Ещё несколько правил:
- 🔌 Источник бесперебойного питания для сервера с файловой базой.
- 🌐 Файловая база по сети — не более нескольких пользователей. Если людей больше, переходите на клиент-серверный вариант или веб-публикацию.
- 💽 Свободное место на диске — с запасом не меньше размера самой базы: проверке и реструктуризации нужны временные файлы.
Когда звать специалиста: признаки серьёзного повреждения
Самостоятельная проверка оправдана, пока ошибки локальные и тестирование проходит до конца. Остановитесь и передайте базу специалисту, если:
- ⛔ тестирование и исправление прерывается с ошибкой или зависает на одном и том же месте;
- ⛔ chdbfl находит десятки и сотни ошибок, а после исправления база всё равно не открывается;
- ⛔
DBCC CHECKDBсообщает об ошибках согласованности; - ⛔ после исправления исчезли документы или обнулились остатки;
- ⛔ резервной копии нет, а база — единственный экземпляр.
В последнем случае не запускайте исправление вообще, пока не снята копия «как есть». Каждая попытка лечения меняет файл, и шансы восстановить данные снижаются.
Частые вопросы
Можно ли проверять базу, пока в ней работают пользователи?
DBCC CHECKDB можно запускать без остановки работы, но последний создаёт нагрузку на сервер.Сколько длится тестирование и исправление?
Нужно ли запускать chdbfl для серверной базы?
1Cv8.1CD файловой базы. Для серверной физическую целостность проверяют средствами СУБД.