Как проверить базу 1С на ошибки и исправить её без потери данных
Содержание
Тестирование и исправление в 1С запускают из Конфигуратора: Администрирование → Тестирование и исправление. Режим проверяет таблицы базы, индексы, ссылки между объектами и итоги регистров, а найденные ошибки исправляет по выбранным правилам. Перед запуском нужна свежая резервная копия и монопольный доступ: все пользователи должны выйти из базы.
Для файловой базы есть второй инструмент — утилита chdbfl.exe. Она работает без Конфигуратора и выручает, когда база не открывается вовсе. Обе процедуры относятся к платформе 8.3 и одинаковы для Бухгалтерии, ЗУП, УТ и других конфигураций.
Что делает тестирование базы и когда его запускать
Режим не «чинит программу», а наводит порядок в данных. Он ищет повреждения, которые копятся после аварийного выключения, сбоев сети, переполненного диска или прерванного обновления.
Типичные поводы запустить проверку:
- 🔌 компьютер или сервер выключился во время записи в базу;
- ⛔ при открытии документа или отчёта появляется
<Объект не найден>с цифрами в скобках; - 📉 отчёты показывают остатки, которые не сходятся с документами;
- 🐢 файловая база заметно выросла и стала медленнее после массового удаления;
- 🔄 впереди обновление конфигурации , а база давно не проверялась;
- 💥 ошибки вида
Файл базы данных поврежденилиОшибка формата потока.
Если база работает стабильно, запускать тестирование каждый день не нужно. Разумный ритм для небольшой файловой базы — раз в месяц и перед каждым обновлением.
Инструменты проверки 1С: что выбрать
У платформы три способа проверить информационную базу. Выбор зависит от того, открывается ли база и нужен ли запуск по расписанию.
| Инструмент | Когда подходит | Ограничения |
|---|---|---|
Конфигуратор, Администрирование → Тестирование и исправление | Обычная плановая проверка, все варианты исправления | Нужен вход в Конфигуратор и монопольный режим |
chdbfl.exe | Файловая база не открывается, Конфигуратор падает | Только файловые базы, проверяет физическую целостность файла |
Пакетный запуск 1cv8.exe DESIGNER /IBCheckAndRepair | Ночная проверка по расписанию | Нужно аккуратно задать параметры и лог |
Конфигуратор
Это основной инструмент. В нём доступны все проверки: реиндексация, логическая и ссылочная целостность, пересчёт итогов, сжатие и реструктуризация таблиц.
Утилита chdbfl.exe
Лежит в папке bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin\chdbfl.exe. В окне укажите путь к файлу 1Cv8.1CD, отметьте флажок исправления ошибок и нажмите «Выполнить». Утилита не трогает логику данных, она проверяет структуру самого файла базы.
Если версия платформы на компьютере не одна, берите chdbfl.exe из той же папки, которой открывается база.
Пакетный режим
Тот же режим тестирования, но без интерфейса. Подходит для ночного задания в Планировщике Windows (пример команды — ниже).
Как запустить тестирование и исправление в Конфигураторе
Подготовка
- Попросите всех выйти из базы. В клиент-серверном варианте проверьте сеансы в консоли администрирования кластера.
- Сделайте копию. Для файловой базы достаточно скопировать папку с
1Cv8.1CD. Для серверной — выгрузка.dtили резервная копия средствами СУБД. - Проверьте свободное место на диске: при сжатии и реструктуризации платформа создаёт временные копии таблиц. Запас — не меньше размера базы.
Не запускайте исправление без резервной копии: режим «Удалять объекты» стирает данные безвозвратно.
Выбор проверок
Откройте базу в Конфигураторе, затем Администрирование → Тестирование и исправление. В окне отметьте нужное:
- Реиндексация таблиц информационной базы — пересобирает индексы. Помогает при медленных отборах и ошибках поиска.
- Проверка логической целостности — проверяет внутреннюю структуру данных.
- Проверка ссылочной целостности — ищет ссылки на объекты, которых нет в базе.
- Пересчёт итогов — заново считает итоги регистров накопления и бухгалтерии.
- Сжатие таблиц информационной базы — убирает пустое место после удалений (для файловой базы).
- Реструктуризация таблиц информационной базы — пересоздаёт таблицы. Самая долгая операция.
Ниже выберите режим: «Тестирование и исправление» или «Только тестирование». Для первой проверки разумно начать с «Только тестирования»: увидите масштаб проблем, ничего не меняя.
Что делать с битыми ссылками
Для ссылок на несуществующие объекты платформа предлагает три варианта:
| Вариант | Что произойдёт | Когда выбирать |
|---|---|---|
| Создавать объекты | Появятся пустые «заглушки» вместо потерянных элементов | Почти всегда: данные сохраняются, заглушку потом можно заполнить |
| Очищать ссылки | Поле в документе станет пустым | Если ссылки точно мусорные |
| Не изменять | Ошибка останется, будет только в отчёте | Для диагностики |
Для частично утраченных объектов варианты похожие: создавать, удалять или не изменять. Выбирайте «Удалять» только когда понимаете, какие объекты пропадут.
Длительность и ограничение по времени
На базе в 2 ГБ полный набор проверок занимает от 10 минут до часа, зависит от диска. Для больших баз в окне есть ограничение по времени и продолжение с сохранённой точки: проверку можно разбить на несколько ночей.
Типичные ошибки в базе 1С и как их исправить
Не каждая ошибка лечится тестированием. Ниже — что помогает в каждом случае.
1Cv8.1CD. Запустите chdbfl.exe с исправлением, затем полное тестирование в Конфигураторе.%APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8, запустите снова. Не помогло — тестирование с реиндексацией.Очистку кэша делайте при закрытой программе. Если удалить папки во время работы, файлы будут заняты, а сеанс может завершиться с ошибкой.
Когда тестирование не поможет
Режим исправляет структуру данных, но не учётные ошибки. Он не найдёт документ, проведённый не тем числом, задвоенного контрагента или неверный счёт в проводке. Для таких задач нужны отчёты самой конфигурации, например экспресс-проверка ведения учёта в Бухгалтерии.
Не поможет он и при ошибках в коде доработок. Если сбой повторяется на одном и том же документе после каждой проверки, причина, скорее всего, в модуле. Посмотрите журнал регистрации (Администрирование → Журнал регистрации в Конфигураторе): там видно, какой пользователь, в какой момент и на каком объекте получил ошибку. Это сужает поиск до одной формы или одной обработки.
Проверка базы перед обновлением конфигурации
Обновление меняет структуру таблиц. Если в базе уже есть повреждения, обновление может прерваться на середине, и откатываться придётся с копии.
Порядок перед обновлением:
- Выгрузите базу в
.dtчерезАдминистрирование → Выгрузить информационную базу. Сам факт успешной выгрузки уже проверяет читаемость данных. - Запустите тестирование: реиндексация, логическая и ссылочная целостность, пересчёт итогов.
- Если в базе есть доработки, проверьте конфигурацию:
Конфигурация → Проверка конфигурации. Она покажет ошибки модулей до того, как их «унаследует» новая версия. - Посмотрите подключённые расширения: после обновления они могут перестать применяться.
- Обновляйте только после чистого отчёта тестирования.
Для крупной базы удобнее сначала обновить копию. Загрузите .dt в новую пустую базу, проведите обновление на ней и проверьте ключевые отчёты. Рабочую базу трогайте, когда копия прошла без ошибок.
Автоматизированное тестирование в 1С
Тестирование данных и тестирование доработок — разные задачи. Первое ищет повреждения в базе, второе проверяет, что после изменения кода программа считает правильно.
Автотесты окупаются, если:
- 🛠 конфигурация доработана и обновляется вручную, через сравнение-объединение;
- 👥 в проекте несколько программистов;
- 📆 обновления выходят часто, а ручная проверка ключевых операций занимает дни.
Чем пользуются на практике:
| Инструмент | Что проверяет |
|---|---|
| Тест-клиент и менеджер тестирования платформы | Действия пользователя в интерфейсе: открыть форму, заполнить, провести |
| Vanessa Automation | Сценарии на языке Gherkin («Дано — Когда — Тогда»), записывает действия пользователя |
| «1С:Сценарное тестирование» | Сценарии проверки типовых операций для конфигураций на базе БСП |
| Ручной регресс по чек-листу | Небольшие базы без доработок |
Для типовой базы без доработок полноценные автотесты обычно избыточны. Достаточно после обновления провести пару документов каждого ключевого вида и сравнить отчёты с прошлым месяцем.
Пакетная проверка по расписанию
Автоматизировать можно и тестирование данных. Пример команды для файловой базы:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogAndRefsIntegrity -RecalcTotals -BadRefCreate -BadDataCreate /Out "D:\Logs\test.log"
Флаг -TestOnly включает режим только проверки без исправления. Лог из /Out смотрите утром: если в нём есть ошибки, решайте вручную.
Пароль в bat-файле лежит открытым текстом. Создайте для регламента отдельного пользователя и закройте доступ к папке со скриптом. Задание ставьте на ночь: если в базе кто-то работает, монопольный режим не получится и проверка не запустится.
Как исправить базу 1С и не потерять данные
Главный риск — не сама ошибка, а торопливое исправление. Несколько правил практика:
- 📦 Две копии вместо одной. Одна до любых действий, вторая после успешной проверки. Если через неделю всплывёт проблема, будет с чем сравнить.
- 🧪 Сначала «Только тестирование». Отчёт показывает, сколько битых ссылок и на какие объекты. Сотни ошибок в одном справочнике — повод разобраться в причине, а не жать «исправить».
- 🔢 По одной операции за раз. Пересчёт итогов отдельно, реструктуризация отдельно. Так понятно, какая операция дала эффект или поломку.
- 🧾 Сверка до и после. Сформируйте оборотно-сальдовую ведомость или основные остатки до тестирования и после. Цифры должны совпасть.
- 🔍 Поиск заглушек. После варианта «Создавать объекты» в справочниках появляются элементы с наименованием вида «Объект не найден». Найдите их отбором по наименованию и заполните или замените ссылки.
Если после исправления база не открывается, не запускайте тестирование повторно. Восстановите копию и попробуйте другой вариант исправления или начните с chdbfl.exe.
Для серверной базы часть проблем решается на стороне СУБД: проверка целостности базы и перестроение индексов средствами самой СУБД. Это работа администратора сервера, и согласуйте её заранее: на время обслуживания пользователи работать не смогут.
Регламент проверки базы 1С
Небольшой регламент избавляет от аварийного тестирования в разгар отчётного периода. Отмечайте пункты по мере выполнения:
Раз в квартал добавьте полный цикл со сжатием и реструктуризацией. Для файловой базы это заметно уменьшает размер файла, если за квартал много удаляли.
Частые вопросы
Можно ли запустить тестирование, пока в базе работают пользователи?
Чем «Тестирование и исправление» отличается от «Проверки конфигурации»?
Почему после тестирования в справочниках появились странные элементы?
Помогает ли тестирование, если 1С просто медленно работает?
Где посмотреть результат проверки?
/Out.