Тестирование и исправление информационной базы 1С 8.3: Конфигуратор, chdbfl и сервер

· 11 мин

Содержание

Исправление ошибок базы в 1С 8.3 запускают в Конфигураторе: Администрирование → Тестирование и исправление..., режим «Тестирование и исправление», кнопка «Выполнить». Перед запуском нужна резервная копия и монопольный доступ: все пользователи должны выйти из базы. Для файловой базы, которая не открывается вовсе, сначала проверяют сам файл утилитой chdbfl.exe из каталога платформы.

Процедура общая для платформы: одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и любой другой конфигурации на 8.3. Разница есть только между файловым и клиент-серверным вариантом, и о ней ниже отдельный раздел.

Когда исправление ошибок базы действительно нужно

Тестирование и исправление — не профилактика «на всякий случай». Это лечение конкретных симптомов. Запускать его стоит, если вы видите:

  • 🔴 сообщения вида Нарушение целостности структуры конфигурации или Файл базы данных поврежден при входе;
  • 🔴 в документах и справочниках вместо значений стоит <Объект не найден> с длинным идентификатором;
  • 🔴 остатки в отчётах не сходятся с движениями документов, а перепроведение не помогает;
  • 🔴 база падает при открытии одного и того же списка или документа;
  • 🔴 база была открыта в момент аварийного отключения питания, сбоя диска или «падения» сервера.

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

1. Подготовка: копия, выход пользователей, монопольный режим

Резервная копия

Тестирование с исправлением меняет данные необратимо: удаляет «битые» записи, очищает ссылки, создаёт объекты-заглушки. Без копии откатиться будет некуда.

Как сделать копию:

Вариант базыСпособ копииКогда подходит
ФайловаяСкопировать каталог базы целиком (главный файл — 1Cv8.1CD)Всегда, даже если база не открывается
Файловая или сервернаяКонфигуратор: Администрирование → Выгрузить информационную базу... (файл .dt)Если база открывается в Конфигураторе
СервернаяРезервная копия средствами СУБД (SQL Server, PostgreSQL)Основной способ для сервера

Если повреждён сам файл 1Cv8.1CD, выгрузка в .dt может прерваться с ошибкой. Тогда копируйте файл: это единственная гарантированная копия «как есть».

Выход пользователей

Исправление требует монопольного доступа. Пока в базе есть хоть один сеанс, Конфигуратор не начнёт проверку.

Что сделать:

  1. Предупредите пользователей и выберите время, когда в базе никто не работает : вечер, выходной.
  2. В Бухгалтерии, ЗУП и других конфигурациях на БСП включите блокировку: Администрирование → Обслуживание → Блокировка работы пользователей. Задайте код разрешения, чтобы зайти самому.
  3. Проверьте фоновые и регламентные задания: они тоже держат сеанс. Для серверной базы их блокируют в консоли кластера (подробно — в разделе про клиент-сервер).
  4. Закройте свои окна 1С:Предприятия, кроме Конфигуратора.

Чтобы войти в заблокированную базу самому, добавьте к параметрам запуска ключ /UC<код>, например /UCservis.

Место на диске

При реструктуризации и сжатии платформа создаёт временные копии таблиц. Держите свободным место не меньше размера самой базы. Для файловой базы на 8 ГБ это минимум 8–10 ГБ на том же диске.

2. Что можно исправить, не выходя из режима 1С:Предприятие

Полноценное тестирование базы доступно только в Конфигураторе. Но часть проблем с данными решается из пользовательского режима, без монопольного доступа и без прав на Конфигуратор.

Инструменты типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) собраны в Администрирование → Обслуживание:

  • 🔧 Управление итогами и агрегатами — пересчёт итогов регистров. Помогает, если отчёты по остаткам показывают странные суммы.
  • 🔧 Удаление помеченных объектов — чистит то, что помечено на удаление, и показывает, кто ссылается на объект.
  • 🔧 Поиск и удаление дублей — объединяет задвоенных контрагентов, номенклатуру и т. п.
  • 🔧 Журнал регистрации — показывает, какая операция и у какого пользователя вызвала ошибку.

В Бухгалтерии дополнительно есть «Экспресс-проверка ведения учёта» в разделе отчётов. Она ищет учётные, а не технические ошибки: незакрытые счета, пропущенные документы, неверные остатки.

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

3. Тестирование и исправление базы в Конфигураторе

Это основной способ запустить исправление ошибок в 1С. Порядок такой.

Запуск

  1. Запустите 1С, выберите базу и нажмите Конфигуратор. Войдите пользователем с правами администратора.
  2. Откройте Администрирование → Тестирование и исправление....
  3. Отметьте нужные проверки (таблица ниже).
  4. В переключателе внизу выберите «Тестирование и исправление». Режим «Тестирование» только покажет ошибки и ничего не поменяет.
  5. Задайте действия для найденных проблем (следующий подраздел).
  6. Нажмите Выполнить и дождитесь окончания. Прогресс и итог выводятся в окне служебных сообщений.

Какие проверки отмечать

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

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

Как отвечать на найденные проблемы

Для ссылок на несуществующие объекты платформа предлагает три варианта:

  • Создавать объекты — на месте пропавшего элемента появится объект-заглушка. Связи в документах сохранятся, заглушку потом можно заполнить или заменить.
  • Очищать ссылки — поле в документе станет пустым. Документ может перестать проводиться, пока его не заполнят.
  • Не изменять — ошибка останется, только попадёт в протокол.

Для частичной потери данных объектов выбор такой: Создавать объекты, Удалять объекты или Не изменять.

Для рабочей учётной базы безопаснее выбирать «Создавать объекты» в обоих случаях. Удаление объектов и очистка ссылок убирают информацию, которую потом придётся восстанавливать из копии вручную.

Запуск из командной строки

Для регламентного обслуживания проверку удобно запускать без окна, например ночью через планировщик 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 "сервер\имябазы".

Перед нажатием «Выполнить»
Выполнено: 0 / 5

4. Утилита chdbfl.exe для файловой базы

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

Где найти

Утилита лежит в каталоге bin установленной платформы, например:

C:\Program Files\1cv8\8.3.25.1374\bin\chdbfl.exe

Если платформ установлено несколько, берите ту же версию, на которой работает база.

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

  1. Убедитесь, что базу никто не открыл: ни пользователи, ни Конфигуратор, ни фоновые задания. Утилита работает только с закрытым файлом.
  2. Запустите chdbfl.exe (лучше от имени администратора).
  3. В поле с именем файла укажите путь к 1Cv8.1CD в каталоге базы.
  4. Отметьте флажок «Исправлять обнаруженные ошибки». Без него утилита только покажет проблемы.
  5. Нажмите Выполнить.

На базе 2–5 ГБ проверка занимает от нескольких минут до получаса, на больших базах дольше.

Что дальше

chdbfl.exe чинит только физическую структуру файла: страницы, блоки, внутренние таблицы. Логические ошибки в данных он не видит. Поэтому после него, если база открылась, обязательно запустите тестирование и исправление в Конфигураторе.

Если chdbfl.exe сообщает о повреждениях, которые не может исправить, не запускайте его повторно по кругу. Сначала проверьте диск, на котором лежит база: повторяющиеся повреждения файла часто идут от сбойного накопителя или нестабильной сетевой папки.

5. Исправление ошибок в клиент-серверной базе

В серверном варианте данные хранит СУБД, поэтому chdbfl.exe здесь неприменим. Тестирование в Конфигураторе работает, но порядок подготовки другой.

Блокировка сеансов в консоли кластера

  1. Откройте консоль администрирования серверов 1С и найдите базу в списке информационных баз кластера.
  2. В свойствах базы включите блокировку начала сеансов и блокировку регламентных заданий. Укажите код разрешения.
  3. Завершите оставшиеся сеансы в узле «Сеансы» этой базы.

Принудительное завершение сеансов обрывает работу пользователей: несохранённые документы пропадут. Делайте это после предупреждения и вне рабочего времени. Рабочие процессы и службу сервера 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.

В протоколе ищите:

  • какие таблицы были повреждены (по имени видно справочник, документ или регистр);
  • сколько создано объектов-заглушек и сколько ссылок очищено;
  • сообщения о том, что исправить не удалось.

Объекты-заглушки

Если вы выбрали «Создавать объекты», в справочниках появятся элементы без нормального наименования. Их видно по пустому или служебному представлению.

Что с ними сделать:

  1. Откройте нужный справочник и отсортируйте по наименованию: заглушки окажутся в начале списка.
  2. Для каждого найдите, где он используется (в БСП — «Поиск ссылок на объект»).
  3. Заполните реквизиты по данным из копии базы или замените ссылку на правильный элемент.

Проверка учёта

После исправления повторно проведите проблемные документы за период и сверьте ключевые показатели с копией базы: остатки по кассе и банку, расчёты с контрагентами, ОСВ за последний закрытый месяц. Если цифры разошлись, у вас есть копия для сравнения.

Повторный прогон

Запустите режим «Тестирование» без исправления ещё раз. Чистый протокол — признак того, что база восстановлена. Если ошибки повторяются в тех же таблицах, повреждение глубже: нужна реструктуризация, загрузка из .dt в новую пустую базу или восстановление из последней исправной копии.

Диагностика: выберите симптом

7. Как не доводить базу до повреждений

Большинство повреждений файловых баз связано с внешними причинами. Их можно убрать заранее.

  • 💾 Регулярные копии. Ежедневная копия плюс хранение нескольких поколений. Повреждение могут заметить через неделю, и вчерашняя копия уже будет «битой».
  • 🔌 ИБП на сервере или компьютере с базой. Обрыв питания во время записи — классическая причина повреждения 1Cv8.1CD.
  • 🛡️ Исключение каталога базы из проверки антивирусом. Антивирус, блокирующий файл во время записи, вызывает ошибки и замедление.
  • 🌐 Осторожно с сетевыми папками. Файловая база в общей папке при нестабильной сети страдает чаще. Для 5–10 и более одновременных пользователей разумно переходить на клиент-серверный вариант.
  • 🗓️ Плановое обслуживание. Раз в месяц или квартал — тестирование в режиме проверки через командную строку ночью, с протоколом в файл.
  • 🚪 Корректный выход. Не закрывайте 1С через диспетчер задач и не выключайте компьютер с открытой базой.

Частые вопросы по исправлению ошибок 1С

Сколько длится тестирование и исправление базы?
Зависит от размера базы и набора проверок. Небольшая файловая база проверяется за 10–30 минут, база на десятки гигабайт с реструктуризацией — несколько часов.
Можно ли прервать тестирование, если оно идёт слишком долго?
Лучше не прерывать. Остановка посередине исправления может оставить таблицы в промежуточном состоянии. Если всё же пришлось, восстановите базу из копии и запустите проверку заново.
Нужно ли запускать исправление после каждого обновления конфигурации?
Нет. Обновление само выполняет реструктуризацию нужных таблиц. Тестирование имеет смысл, если после обновления появились ошибки данных.
Какие права нужны для запуска тестирования и исправления?
Пользователь с административными правами в базе и возможностью входа в Конфигуратор. Для серверной базы ещё нужен доступ к консоли кластера, чтобы выгнать сеансы.
Поможет ли исправление базы при ошибке в отчёте или обработке?
Обычно нет. Если ошибка в коде модуля, тестирование данных её не уберёт: нужен разбор текста ошибки, проверка расширений и обновлений конфигурации.