Как проверить и починить информационную базу 1С через Конфигуратор и chdbfl

· 10 мин

Содержание

Тестирование и исправление базы 1С запускают в Конфигураторе: Администрирование → Тестирование и исправление…. Режим требует монопольного доступа, поэтому все пользователи должны выйти из базы, а перед стартом обязательно делается резервная копия. Для файловой базы с повреждённым файлом 1Cv8.1CD сначала прогоняют утилиту chdbfl.exe, а уже потом штатную проверку.

Типичная ситуация: утром бухгалтер открывает ОСВ, а в оборотах по 60 счёту вместо контрагента стоит <Объект не найден>. Или отчёт строится с ошибкой, хотя вчера всё работало. В таких случаях проверка и исправление информационной базы — первый и самый безопасный инструмент. Порядок ниже рассчитан на платформу 8.3 и подходит для любой типовой конфигурации: БП 3.0, ЗУП 3.1, УТ 11, ERP. Механизм платформенный, от конфигурации он не зависит.

1. Подготовка базы 1С к тестированию и исправлению

Исправление меняет данные: удаляет записи, создаёт объекты-заглушки, перестраивает таблицы. Откатить это можно только из копии.

Без свежей резервной копии исправление не запускайте.

Что сделать до запуска

  1. 👥 Предупредите пользователей и назначьте окно. Для базы до 5 ГБ хватит часа, для 50 ГБ и больше закладывайте вечер или выходной.
  2. 💾 Сделайте копию:
    • файловая база — остановите работу и скопируйте весь каталог с 1Cv8.1CD. Это надёжнее выгрузки, потому что копируется «как есть», вместе с ошибкой;
    • клиент-серверная база — полный бэкап средствами СУБД (.bak в MS SQL, pg_dump в PostgreSQL);
    • дополнительно можно выгрузить .dt через Администрирование → Выгрузить информационную базу…. Но при серьёзном повреждении выгрузка сама падает с ошибкой, поэтому на неё одну не полагайтесь.
  3. 🔑 Проверьте, что у вашей учётной записи есть права администратора в базе.
  4. 💽 Освободите место на диске. Для сжатия и реструктуризации нужно примерно столько же свободного места, сколько занимает сама база.
  5. 📝 Запишите номер платформы (Справка → О программе). Если проверка зависнет, этот номер пригодится при поиске причины.

Если база настолько повреждена, что Конфигуратор не открывается, пропустите штатную проверку и начните с раздела про chdbfl.exe.

2. Как запустить тестирование и исправление в монопольном режиме

Монопольный режим означает, что в базе нет ни одного сеанса, кроме вашего. Проверка не начнётся, если открыт хотя бы один клиент, фоновое задание или сеанс обмена.

Как выгнать пользователей

  • 🔒 В конфигурациях на БСП: Администрирование → Обслуживание → Блокировка работы пользователей. Задайте время начала, текст сообщения и код разрешения. Сеансы завершатся сами.
  • 🖥 В клиент-серверной базе — через консоль администрирования серверов: найдите базу в кластере, откройте «Сеансы» и завершите оставшиеся.
  • 📄 В файловой базе проверьте, что никто не держит открытым каталог. Сеансы видны в Конфигураторе: Администрирование → Активные пользователи.

Принудительное завершение сеанса обрывает работу человека: несохранённый документ пропадёт. Делайте это после предупреждения и в согласованное время.

Запуск

  1. Откройте базу в режиме Конфигуратор под администратором.
  2. Выберите Администрирование → Тестирование и исправление….
  3. Отметьте нужные проверки (подробно — в следующем разделе).
  4. Выберите режим: Тестирование и исправление или Только тестирование.
  5. Нажмите Выполнить и дождитесь окна с итогом. Протокол выводится в окно служебных сообщений Конфигуратора.

Если появилось сообщение о том, что монопольный доступ установить невозможно, кто-то ещё работает в базе. Чаще всего это забытое фоновое задание или «висящий» сеанс обмена с сайтом.

3. Флажки проверки: что делает каждый и сколько это стоит по времени

В окне шесть основных проверок. Ставить всё подряд без разбора не нужно: часть операций идёт долго и не каждая полезна в вашем случае.

ПроверкаЧто делаетКогда нужнаВремя
Реиндексация таблицПерестраивает индексыМедленные отчёты, ошибки поискаСреднее
Проверка логической целостностиИщет нарушения внутренней структуры таблицВсегда при сбояхНебольшое
Проверка ссылочной целостностиНаходит ссылки на удалённые объекты<Объект не найден> в документах и отчётахБольшое
Пересчёт итоговПересчитывает итоги регистровНеверные остатки и оборотыБольшое на крупных регистрах
Сжатие таблицУбирает «пустоты» после удаления данныхФайловая база сильно разросласьСреднее
Реструктуризация таблицПолностью пересоздаёт таблицыТяжёлые повреждения, когда остальное не помоглоСамое большое

Режим: только проверка или с исправлением

Только тестирование ничего не меняет и показывает список проблем. С него стоит начинать, если вы не понимаете масштаб повреждения.

Тестирование и исправление сразу применяет выбранные действия. Для каждого типа ошибок задаётся правило.

Что делать с битыми ссылками

При найденных ссылках на несуществующие объекты:

  • ✅ Создавать объекты — платформа создаёт объект-заглушку с тем же идентификатором. Документы остаются целыми, а заглушку потом можно найти и заменить нормальным элементом. Это самый безопасный вариант для учётной базы.
  • ❌ Очищать ссылки — поле в документе станет пустым. Пропадёт информация о том, какой контрагент или номенклатура там стояли.
  • ⏸ Не изменять — ошибка останется, но попадёт в протокол.

При частичной потере данных объектов выбор такой же: создавать или удалять. Удаление убирает объект целиком вместе с движениями, поэтому без уверенности его не выбирают.

На большой базе проверку можно ограничить по времени и потом продолжить с того места, где она остановилась. Это удобно, когда технологическое окно — всего пара часов за ночь.

4. Тестирование файловой и клиент-серверной базы 1С: в чём разница

Окно в Конфигураторе одно и то же, но работа под ним разная.

Файловая база

Все данные лежат в одном файле 1Cv8.1CD. Ошибки в нём бывают двух уровней:

  • 🧩 логические — нарушены связи между объектами. Их лечит штатное тестирование;
  • 💥 физические — повреждена сама структура файла после сбоя питания, «упавшей» сетевой папки или антивируса. Конфигуратор при этом часто не открывается, а штатная проверка падает.

Для физических повреждений есть утилита chdbfl.exe. Она лежит в каталоге платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe.

Порядок работы с ней:

  1. Закройте все сеансы и скопируйте файл базы.
  2. Запустите chdbfl.exe от имени администратора Windows.
  3. Укажите путь к 1Cv8.1CD.
  4. Сначала запустите проверку без флажка исправления, посмотрите результат.
  5. Если ошибки есть, поставьте флажок исправления обнаруженных ошибок и запустите ещё раз.
  6. После успешной работы утилиты откройте Конфигуратор и выполните штатное тестирование.

Если база лежит на сетевом диске, скопируйте её на локальный диск и проверяйте копию. Работа утилиты по сети медленная, а обрыв связи во время исправления добавит новых повреждений.

Клиент-серверная база (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 — только проверка без исправлений. Полный список параметров с актуальным синтаксисом приведён в документации к вашей версии платформы, в разделе о параметрах командной строки запуска.

Как поставить проверку на расписание

  1. Сохраните скрипт в файл, например D:\1C\scripts\check.bat.
  2. Откройте Планировщик заданий Windows и создайте задачу.
  3. Запуск — от учётной записи, у которой есть доступ к каталогу базы.
  4. Время — после ночного бэкапа и после установки блокировки сеансов.
  5. Утром проверяйте файл протокола.

Пароль в bat-файле лежит открытым текстом. Создайте для обслуживания отдельного пользователя 1С и закройте доступ к каталогу со скриптами.

Пакетная проверка тоже требует монопольного доступа. Если ночью работает обмен или регламентное задание, скрипт просто не запустит проверку. Отключите их на время окна обслуживания.

6. Разбор протокола и частые ошибки при исправлении

После проверки в окне служебных сообщений остаётся протокол. Читать его стоит до того, как пользователи вернутся в базу.

Что встречается в протоколе

  • 🔗 Битые ссылки — сообщения о ссылках на несуществующие объекты с указанием таблицы. При режиме «Создавать объекты» на их месте появятся элементы-заглушки.
  • 📊 Расхождение итогов — регистр пересчитан. Если остатки после этого изменились, значит, раньше отчёты показывали неверные цифры.
  • 🧱 Нарушение структуры — повреждения на уровне таблиц. Если они повторяются после исправления, переходите к реструктуризации или chdbfl.exe.

Что делать с созданными объектами

Заглушки создаются с пустым наименованием. Найти их можно в списке справочника: отсортируйте по наименованию или отберите пустые. Дальше два пути:

  1. Восстановить наименование и реквизиты по первичным документам.
  2. Заменить заглушку на правильный элемент через обработку поиска и замены ссылок, а заглушку пометить на удаление.
Диагностика: выберите симптом

Ошибки, которые делают сами администраторы

  • Запускают исправление без копии и выбирают «Очищать ссылки».
  • Ставят все шесть флажков на базу в 100 ГБ за час до начала рабочего дня.
  • Лечат файловую базу прямо на сетевой папке.
  • Не читают протокол и не узнают, что пересчёт итогов изменил остатки за закрытый период.

7. Профилактика: регламент проверки и исправления базы 1С

Тестирование — инструмент лечения, а не ежедневная процедура. Регулярная профилактика снижает шанс, что оно понадобится в спешке.

ЧтоКак частоЧем
Резервная копияЕжедневноКопия каталога или бэкап СУБД
Пробное восстановление копииРаз в месяцРазвернуть на тестовом месте и открыть
Тестирование без исправленияРаз в квартал или перед обновлениемКонфигуратор или скрипт с -TestOnly
Обслуживание индексов и статистики (SQL)ЕженедельноПлан обслуживания СУБД
Проверка свободного места и дискаЕжемесячноСредства ОС

Что защищает файловую базу

  • 🔌 ИБП на сервере или компьютере, где лежит база.
  • 🛡 Исключение каталога базы из проверки антивируса.
  • 🌐 Стабильная сеть. При 5–7 одновременных пользователях и больше файловую базу лучше перевести на клиент-серверный вариант или веб-публикацию.
  • 🚫 Запрет на принудительное выключение компьютера, пока открыта 1С.

Тестирование перед обновлением конфигурации — хорошая привычка. Обновление на базе с битыми ссылками может завершиться ошибкой на этапе обработчиков, а разбираться с этим посреди обновления сложнее.

Сколько длится тестирование и исправление базы 1С?
Для файловой базы 2–3 ГБ без реструктуризации обычно хватает 15–40 минут. Базы на десятки гигабайт с пересчётом итогов и ссылочной проверкой проверяются несколько часов. Реструктуризация может увеличить время в разы.
Можно ли запустить проверку, пока бухгалтеры работают?
Нет. Режим требует монопольного доступа. Если без простоя не обойтись, разверните копию базы и проверьте её: так вы узнаете масштаб проблем, не останавливая работу.
Нужно ли тестировать базу после каждого сбоя питания?
Для файловой базы — да, хотя бы в режиме «Только тестирование». Повреждение после сбоя может проявиться не сразу, а через неделю в отчёте.
Что лучше для файловой базы: chdbfl или тестирование в Конфигураторе?
Это разные уровни. Утилита chdbfl.exe проверяет физическую структуру файла, Конфигуратор — логику данных. При серьёзном сбое нужны оба шага: сначала утилита, потом Конфигуратор.
Почему после исправления изменились остатки в отчётах?
Сработал пересчёт итогов. Раньше итоги регистров были неверными, и отчёты показывали ошибочные цифры. Сверьте остатки с первичными документами, особенно за закрытые периоды.