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

· 10 мин

Содержание

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

Типичная ситуация: после отключения света бухгалтер открывает базу, а отчёт по 60 счёту показывает отрицательное сальдо там, где его быть не может, или документ не проводится с ошибкой про битую ссылку. Это классический повод проверить целостность структуры и данных базы 1С. Механизм общий для платформы, поэтому порядок одинаков для БП 3.0, ЗУП 3.1, УТ 11 и любой другой конфигурации.

Когда нужна диагностика структуры базы данных 1С

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

Признаки, что пора проверять базу:

  • 🔌 база была открыта в момент сбоя питания, падения сервера или обрыва сети до сетевой папки;
  • 🔗 в формах и отчётах видны строки вида <Объект не найден> с набором цифр;
  • 📉 остатки и обороты в отчётах не сходятся с данными документов;
  • ⛔ база не открывается или падает при открытии конкретного списка или документа;
  • 🐢 файловая база резко замедлилась, хотя объём данных почти не вырос;
  • 📦 ошибка при выгрузке в .dt или при обновлении конфигурации.

Плановая проверка тоже имеет смысл: перед обновлением на крупный релиз, перед свёрткой базы, перед переходом с файлового варианта на клиент-серверный.

Что именно проверяет платформа

Под «структурой» в 1С понимают несколько слоёв. Их полезно различать, потому что лечатся они разными инструментами.

Что поврежденоЧем проверятьГде запускать
Физический файл 1Cv8.1CD (страницы, служебные блоки)chdbfl.exeПапка bin платформы, база закрыта
Индексы таблицРеиндексацияКонфигуратор, «Тестирование и исправление»
Логическая целостность (служебные поля, связи записей)Проверка логической целостностиТам же
Ссылки на удалённые или несуществующие объектыПроверка ссылочной целостностиТам же
Итоги регистров накопления и бухгалтерииПересчёт итоговТам же
Расхождение конфигурации и структуры таблицРеструктуризация таблиц, обновление конфигурации БДТам же / меню Конфигурация

Команда Конфигурация → Проверка конфигурации… к целостности данных отношения не имеет. Она ищет ошибки в коде модулей и в метаданных, а не в таблицах базы.

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

Режим «Тестирование и исправление» требует монопольного доступа. Пока в базе есть хоть один сеанс, запуск не начнётся.

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

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

Варианты копии:

  1. Файловая база. Закрыть все сеансы и скопировать папку базы целиком, вместе с 1Cv8.1CD. Это самый надёжный способ для повреждённой базы, потому что выгрузка .dt может упасть как раз на битых данных.
  2. Выгрузка в .dt. В Конфигураторе: Администрирование → Выгрузить информационную базу…. Подходит, если база выгружается без ошибок.
  3. Клиент-серверная база . Полная резервная копия средствами СУБД (MS SQL Server, PostgreSQL). Её делает администратор сервера.

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

  • в файловой базе — попросить всех выйти, проверить, что нет открытых сеансов, и закрыть «зависшие» процессы 1cv8.exe на компьютерах пользователей;
  • в клиент-серверной — через консоль администрирования серверов: заблокировать начало сеансов для базы и завершить активные сеансы.

Принудительное завершение сеансов обрывает работу пользователей без сохранения. Делайте это после рабочего дня или по согласованию, заранее предупредив людей.

Место и время

Реиндексация и сжатие создают временные копии таблиц. На диске с базой держите свободное место не меньше текущего размера 1Cv8.1CD. Полное тестирование базы на 5–10 ГБ идёт от получаса до нескольких часов, поэтому планируйте окно на вечер или выходной.

Как запустить проверку целостности в Конфигураторе 1С

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

Флажки и что они делают

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

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

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

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

"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogIntegrity -LogAndRefsIntegrity -RecalcTotals -TestOnly /Out "D:\Logs\check.txt"

Подставьте свой номер платформы в путь. Ключ -TestOnly означает «только тестирование». Без него платформа сразу исправит найденное, поэтому убирайте его только после разбора отчёта и создания копии.

Пароль в bat-файле открытым текстом — риск. Заведите для регламентных заданий отдельного пользователя с правами администратора и храните файл там, куда нет доступа у обычных сотрудников.

Какой режим исправления выбрать

После тестирования в окне становятся важны две группы переключателей. Они определяют, как платформа поступит с найденными проблемами.

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

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

При частичной потере данных объектов:

  • «Создавать объекты» — восстановить объект с тем, что удалось прочитать;
  • «Удалять объекты» — удалить повреждённые объекты;
  • «Не изменять» — оставить как есть.
Что вы увидели в протоколе тестирования?

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

Разбор отчёта о найденных ошибках

Протокол выводится в окно служебных сообщений Конфигуратора (или в файл, если задан /Out). Каждая запись указывает таблицу или объект метаданных и тип проблемы.

Как читать протокол:

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

Если протокол пустой, а проверка завершилась сообщением об успешном окончании, база по этим проверкам здорова. Проблему тогда ищут в коде конфигурации, в правах или в самих данных учёта.

Сохраните протокол до исправления. Скопируйте текст окна сообщений в файл. После исправления он понадобится, чтобы найти и проверить затронутые документы.

Автоматическое и ручное исправление ошибок структуры

Автоматическое исправление

  1. Убедитесь, что копия сделана и проверена: папка скопирована, размер файла совпадает.
  2. Снова откройте Администрирование → Тестирование и исправление….
  3. Оставьте те же флажки, переключите режим на «Тестирование и исправление».
  4. Выберите действия для битых ссылок и потери данных.
  5. Нажмите «Выполнить».
  6. После завершения запустите «Только тестирование» ещё раз. Чистый протокол на втором проходе — признак, что исправление сработало.

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

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

  1. Закройте все сеансы базы.
  2. Запустите chdbfl.exe из папки bin установленной платформы, например C:\Program Files\1cv8\8.3.24.1586\bin\chdbfl.exe.
  3. Укажите путь к файлу 1Cv8.1CD.
  4. Первый прогон — без флажка исправления, чтобы увидеть объём повреждений.
  5. Второй прогон — с флажком исправления обнаруженных ошибок.
  6. После утилиты обязательно выполните тестирование и исправление в Конфигураторе.

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

Ручная доработка после исправления

Автомат закрывает технический долг, но не учётный. Что сделать руками:

  • 🔍 найти объекты-заглушки: в справочниках они отображаются как «Объект не найден» с идентификатором; открыть список, отсортировать по наименованию или поискать по этой фразе;
  • 🔄 заменить ссылки на заглушки правильными элементами — обработкой поиска и замены значений (входит в БСП, в типовых конфигурациях доступна через Все функции) или вручную в документах;
  • 🗑️ после замены пометить заглушки на удаление и удалить штатно;
  • 📑 перепровести документы, затронутые исправлением, если по ним менялись реквизиты, влияющие на движения;
  • ✅ сформировать оборотно-сальдовую ведомость и сравнить с отчётом до сбоя или со сданной отчётностью.

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

Если структура не совпадает с конфигурацией

Отдельный случай — ошибки при открытии базы о несоответствии конфигурации базы данных и основной конфигурации. Здесь помогают:

  1. Конфигурация → Обновить конфигурацию базы данных — применяет изменения основной конфигурации к структуре таблиц.
  2. Если обновление падает, — тестирование с флажком «Реструктуризация таблиц информационной базы».
  3. Если и это не помогает, — загрузка последней исправной выгрузки .dt на новую пустую базу и перенос данных за период после копии.

Если ошибки остаются после исправления

Повторный прогон снова находит ошибки? Порядок действий:

  1. Проверить диск: в Windows команда chkdsk D: /f для тома с базой (выполняется при закрытой базе, для системного тома — после перезагрузки). Битые сектора будут портить базу снова и снова.
  2. Выгрузить базу в .dt и загрузить в новую пустую базу: Администрирование → Загрузить информационную базу…. Загрузка пересоздаёт все таблицы с нуля и часто убирает то, что не лечит тестирование.
  3. Для клиент-серверной базы попросить администратора СУБД проверить базу средствами сервера (в MS SQL Server — DBCC CHECKDB). Проверку 1С стоит запускать уже после неё.
  4. Обновить платформу до актуального релиза той же ветки: часть ошибок тестирования связана с известными проблемами конкретных сборок.

Загрузка .dt полностью заменяет данные в базе-приёмнике. Загружайте только в новую пустую базу, а не поверх рабочей.

Профилактика: как держать базу 1С целостной

Большинство повреждений файловой базы связано с аварийным закрытием и с сетью. Отсюда правила:

  • 🔋 ИБП на компьютере или сервере, где лежит файловая база, с корректным завершением работы при разряде;
  • 🌐 не открывать файловую базу по Wi-Fi и через VPN: обрыв соединения в момент записи — прямой путь к повреждению. Для удалённой работы — терминальный доступ или веб-публикация;
  • 👥 файловый вариант рассчитан на небольшое число одновременных пользователей; при росте нагрузки — переход на клиент-серверный вариант;
  • 💾 ежедневная резервная копия с проверкой восстановления хотя бы раз в квартал;
  • 🧹 тестирование «Только тестирование» раз в месяц или раз в квартал, ночью, из командной строки с протоколом в файл;
  • 🗄️ для клиент-серверной базы — регламент обслуживания СУБД: обновление статистики и перестроение индексов средствами SQL-сервера;
  • 🛑 не удалять объекты непосредственно: только пометка на удаление и штатное удаление с контролем ссылок.
Ежемесячная проверка базы
Выполнено: 0 / 6

Частые вопросы

Можно ли запускать тестирование, пока бухгалтеры работают?
Нет. Режим «Тестирование и исправление» требует монопольного доступа, поэтому в базе не должно быть других сеансов. Планируйте проверку на нерабочее время.
Чем «Проверка конфигурации» отличается от «Тестирования и исправления»?
«Проверка конфигурации» ищет ошибки в модулях и метаданных. «Тестирование и исправление» проверяет таблицы базы и данные. При битых документах и расхождениях в отчётах нужен второй режим.
Сколько длится проверка структуры базы 1С?
Зависит от размера базы и диска. Небольшая база проверяется за минуты, база на десятки гигабайт с реструктуризацией — несколько часов.
Нужно ли делать сжатие таблиц в клиент-серверной базе?
Обычно нет. Место в клиент-серверной базе освобождает СУБД, и обслуживание делают её средствами. Сжатие полезно прежде всего файловой базе.
Почему после исправления в справочнике появились странные элементы?
Это заглушки, созданные режимом «Создавать объекты» вместо битых ссылок. Замените ссылки на правильные элементы, затем пометьте заглушки на удаление.