ТИИБ в 1С 8.3: как проверить и вылечить информационную базу без потерь

· 10 мин

Содержание

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

Частое заблуждение — что ТИИБ «безопасная кнопка», которую можно жать при любом сбое. Это не так. В режиме исправления программа сама удаляет или создаёт объекты, чтобы восстановить целостность. Если запустить её на рабочей базе без копии и с неправильными настройками, часть документов можно потерять безвозвратно.

Процедура одинакова для всех конфигураций на платформе 8.3: Бухгалтерии, ЗУП, УТ, ERP. От конфигурации зависят только последствия исправления, а не путь меню.

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

Без подготовки ТИИБ либо не запустится, либо сделает хуже. Перед стартом нужно четыре вещи.

1. Резервная копия. Для файловой базы самый надёжный вариант — скопировать весь каталог с файлом 1Cv8.1CD, пока база закрыта. Выгрузка в .dt (Администрирование → Выгрузить информационную базу) тоже подходит, но на повреждённой базе она сама может упасть с ошибкой. Копия файла от этого не зависит.

Запускайте исправление на копии базы, а не на рабочем экземпляре. Убедились, что результат вас устраивает, — тогда повторяете на рабочей базе или просто подменяете её исправленной копией.

2. Монопольный доступ. Пока в базе работает хотя бы один сеанс, Конфигуратор не начнёт тестирование. Что проверить:

  • 👥 список сеансов в Конфигураторе: Администрирование → Активные пользователи;
  • 🔄 фоновые задания и сеансы обмена — их тоже нужно остановить;
  • 🖥️ для клиент-серверной базы — сеансы в консоли администрирования кластера.

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

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

4. Права администратора. Пункт меню доступен пользователю с административными правами. Под обычным бухгалтером вы его не увидите.

Как открыть базу в Конфигураторе и запустить тестирование

Пошагово:

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

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

Конфигуратор не нужно перезапускать после каждой попытки, если ошибка была только из-за сеансов: достаточно освободить базу и нажать «Выполнить» ещё раз.

Какие флажки ставить при тестировании и исправлении

Окно разбито на две части: что проверять и что делать с найденными проблемами.

Проверки

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

Для клиент-серверной базы флажок сжатия неактуален: за физическое хранение отвечает СУБД, и обслуживать её нужно средствами самой СУБД.

Режим работы

  • 🔍 Только тестирование — программа ничего не меняет, только пишет отчёт. Хорош для первого прохода, чтобы понять масштаб проблем.
  • 🛠️ Тестирование и исправление — найденные проблемы исправляются по выбранным правилам.

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

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

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

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

  • Создавать объекты — повреждённые данные восстанавливаются в виде заглушки.
  • Удалять объекты — объект удаляется целиком.

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

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

Запуск тестирования и исправления из командной строки

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

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

Подставьте свой путь к платформе и каталогу базы. Для серверной базы вместо /F указывают /S "сервер\имя_базы".

Основные ключи после /IBCheckAndRepair:

КлючЧто включает
-ReIndexреиндексацию
-LogIntegrityтолько логическую целостность
-LogAndRefsIntegrityлогическую и ссылочную целостность
-RecalcTotalsпересчёт итогов
-IBCompressionсжатие (файловая база)
-Rebuildреструктуризацию
-TestOnlyтолько тестирование, без исправлений
-BadRefCreate / -BadRefClear / -BadRefNoneсоздавать / очищать / не изменять битые ссылки
-BadDataCreate / -BadDataDeleteсоздавать / удалять объекты с потерей данных
-TimeLimit:hhh:mmограничить время выполнения
-UseStartPointпродолжить с места, где тестирование прервалось

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

Связка -TimeLimit и -UseStartPoint выручает на больших базах: проверка идёт по ночам по несколько часов и каждую следующую ночь продолжается с места остановки.

Сколько длится проверка и можно ли её прервать

Время зависит от размера базы, диска и набора флажков. Ориентиры для файловой базы на SSD:

  • 📦 база до 1–2 ГБ — обычно от нескольких минут до получаса;
  • 📦 база 5–10 ГБ — может занять несколько часов;
  • 🐢 реструктуризация и реиндексация — самые долгие этапы.

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

Не снимайте процесс 1cv8.exe через диспетчер задач во время исправления. Прерванная на середине запись может испортить базу сильнее, чем исходная проблема. Если время ограничено, задайте его заранее ключом -TimeLimit в пакетном режиме.

Не запускайте ТИИБ на базе, лежащей в сетевой папке. Сетевой сбой посреди процедуры — частая причина нового повреждения. Скопируйте базу на локальный диск сервера, проверьте там и верните обратно.

Как прочитать результат: служебные сообщения и журнал регистрации

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

  • 🔗 сообщения о ссылках на несуществующие объекты с указанием таблицы и объекта;
  • 🧩 сообщения о нарушении логической целостности и о том, что с ним сделано;
  • 📊 сведения о пересчёте итогов по регистрам.

Текст окна выделите и скопируйте в файл. Без этого через неделю никто не вспомнит, какие объекты пострадали.

Что проверить в базе после исправления

  1. Найдите созданные заглушки. Битые ссылки в формах выглядят как <Объект не найден> с числовым идентификатором. Если выбран вариант «Создавать объекты», вместо них появятся пустые элементы без наименования. Отфильтруйте справочники по пустому наименованию и заполните или замените их.
  2. Откройте журнал регистрации: в Конфигураторе — Администрирование → Журнал регистрации, в типовых конфигурациях — в разделе Администрирование режима Предприятия. Отберите события уровня «Ошибка» за последние дни до сбоя. Так проще найти причину: падение обмена, обрыв сети, аварийное завершение сеанса.
  3. Сверьте ключевые итоги с данными до исправления. Для учётной базы это остатки по основным счетам или регистрам. Если цифры разошлись, значит, исправление удалило или изменило документы, и их нужно восстановить из копии.

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

Ошибки при тестировании и исправлении базы и что с ними делать

Ниже — ситуации, на которых процедура чаще всего застревает. Выберите свой симптом.

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

Утилита chdbfl.exe: когда она нужнее ТИИБ

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

Порядок работы:

  1. Закройте все сеансы базы.
  2. Запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD.
  3. Отметьте флажок исправления обнаруженных ошибок и нажмите «Выполнить».
  4. После неё запустите обычный ТИИБ в Конфигураторе.

Разница простая. chdbfl.exe чинит файл на уровне страниц и таблиц, а ТИИБ — данные с точки зрения платформы: ссылки, итоги, связи объектов. При ошибке «файл базы данных поврежден» начинать стоит именно с chdbfl.exe.

Клиент-серверная база

На сервере физическую целостность обеспечивает СУБД. Для MS SQL Server её проверяют командой DBCC CHECKDB в Management Studio, для PostgreSQL используют штатные средства обслуживания. ТИИБ на серверной базе по-прежнему полезен для ссылочной целостности и пересчёта итогов, а реиндексацию удобнее поручить регламентному плану обслуживания СУБД.

Профилактика: как реже обращаться к тестированию и исправлению

Большинство повреждений возникает не «само», а из-за конкретных событий. Против каждого есть своя мера.

Причина поврежденияЧто делать
Отключение питания во время записиИБП на сервере и рабочей станции с файловой базой
Файловая база в сетевой папке, работа по Wi-FiПерейти на клиент-серверный вариант или публикацию через веб-сервер
Антивирус проверяет файл базы на летуДобавить каталог базы в исключения антивируса
Сбой дискаСледить за состоянием диска, держать базу на SSD
Прерванное обновление конфигурацииОбновлять только после резервной копии и не прерывать процесс

Регламент, который реально работает:

  • 💾 ежедневная резервная копия с хранением нескольких последних версий;
  • 🔍 раз в месяц — ТИИБ в режиме «Только тестирование» по ночам в пакетном режиме;
  • 🧹 для файловой базы — сжатие таблиц раз в квартал или после массового удаления данных;
  • 🧪 раз в квартал — пробное восстановление из копии на тестовом компьютере.

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

Регламент обслуживания базы
Выполнено: 0 / 5

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

Можно ли запустить тестирование и исправление из режима Предприятия?
Нет. ТИИБ доступен только в Конфигураторе или в пакетном режиме через ключ /IBCheckAndRepair. В Предприятии есть отдельные обработки, например поиск и удаление битых ссылок, но полной проверки там нет.
Как часто нужно делать тестирование и исправление базы?
По сбою — сразу, на копии. Для профилактики достаточно проверки в режиме «Только тестирование» раз в месяц. Исправлять без повода не нужно.
Удалит ли ТИИБ мои документы?
Только если выбран вариант «Удалять объекты» для объектов с потерей данных. С вариантом «Создавать объекты» документы остаются, а вместо утерянных данных появляются заглушки.
Почему после ТИИБ база стала меньше?
Сработало сжатие таблиц: из файла убрано пустое место, оставшееся после удаления данных. Сами данные не пропали.
Помогает ли ТИИБ от ошибки «Ошибка формата потока»?
Иногда. Сначала очистите кэш клиента. Если ошибка возникает при открытии базы, проверьте файл утилитой chdbfl.exe, а затем запустите ТИИБ.