Остановка ТиИ в 1С: на каком этапе можно, а на каком лучше дождаться

· 9 мин

Содержание

Безопасно прервать тестирование и исправление базы 1С можно, пока идёт режим «Только тестирование» без исправлений. Если же запущены сжатие или реструктуризация таблиц, обрывать проверку опасно: файл базы остаётся наполовину переписанным. Правильный способ остановить проверку — заранее задать в окне Администрирование → Тестирование и исправление лимит времени, а потом продолжить с места остановки.

Частое заблуждение: «закрою Конфигуратор через Диспетчер задач, а потом запущу проверку заново, и она всё починит». Иногда так и выходит. Но если процесс убит во время сжатия файловой базы, повторная проверка может просто не открыть повреждённый файл. Тогда остаётся только резервная копия.

Когда прерывать проверку базы 1С допустимо, а когда нет

Тестирование и исправление (ТиИ) — это не одна операция, а цепочка этапов. Риск прерывания зависит от того, какой этап идёт прямо сейчас и что он делает с данными.

ЭтапЧто делаетРиск при обрыве
Только тестирование (без исправления)Читает данные и пишет отчёт об ошибках🟢 Низкий: данные не меняются
Реиндексация таблицПерестраивает индексы🟡 Средний: индексы могут остаться битыми, лечится повторной реиндексацией
Проверка логической и ссылочной целостности с исправлениемУдаляет или создаёт объекты, правит ссылки🟡 Средний: часть исправлений применена, часть нет
Пересчёт итоговПересобирает таблицы итогов регистров🟡 Средний: остатки в отчётах неверные до повторного пересчёта
Сжатие таблиц (файловая база)Переписывает файл базы без пустых страниц🔴 Высокий: файл может стать нечитаемым
Реструктуризация таблицПересоздаёт таблицы и копирует в них данные🔴 Высокий: таблицы в промежуточном состоянии

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

Когда прерывать оправдано:

  • 🕐 проверка не уложилась в технологическое окно, а утром пользователи должны начать работу;
  • 💽 на диске заканчивается место (сжатие и реструктуризация требуют свободного объёма, сопоставимого с размером базы);
  • ⚙️ проверку запустили не с теми флажками, например с удалением объектов вместо создания;
  • 🧊 процесс действительно завис, а не просто долго работает (как это отличить — ниже).

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

Штатная остановка через Конфигуратор: лимит времени и продолжение

В актуальных версиях платформы 8.3 в окне Администрирование → Тестирование и исправление есть два параметра, ради которых стоит открыть это окно внимательно:

  1. Ограничение максимального времени выполнения тестирования. Вы задаёте, сколько часов и минут может работать проверка. Когда время выходит, платформа сама останавливает её в безопасной точке.
  2. Продолжение тестирования с места остановки. При следующем запуске проверка не начинается с первой таблицы, а продолжает с той, на которой закончила.

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

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

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

Те же параметры доступны из командной строки. Это удобно для ночного запуска по расписанию:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /IBCheckAndRepair -ReIndex -LogIntegrity -RecalcTotals -TimeLimit:003:00 -UseStartPoint /Out "D:\Logs\tii.log"

Здесь -TimeLimit задаёт лимит в формате часы:минуты, а -UseStartPoint велит продолжить с места прошлой остановки. Путь к 1cv8.exe и номер версии подставьте свои. Полный список ключей смотрите в справке по параметрам командной строки к вашей версии платформы.

Аварийная остановка в файловом режиме

Если лимит времени не задан, а прервать нужно сейчас, остаётся снять процесс. В файловой базе Конфигуратор сам читает и пишет файл 1Cv8.1CD, поэтому обрыв процесса обрывает и запись в этот файл.

Сначала убедитесь, что проверка действительно зависла:

  1. Откройте «Монитор ресурсов» Windows (resmon), вкладку «Диск».
  2. Найдите процесс 1cv8.exe и посмотрите, идёт ли чтение или запись в 1Cv8.1CD.
  3. Загляните в папку базы: если размер файла или время изменения меняются, работа идёт.
  4. Посмотрите загрузку процессора процессом 1cv8.exe в Диспетчере задач.

Если диск и процессор активны, проверка жива, даже когда строка состояния не меняется 20–30 минут. На базе в 30–50 ГБ одна большая таблица может обрабатываться очень долго.

Если активности нет 15–20 минут, а окно Конфигуратора не отвечает:

  1. Выберите момент, когда в строке состояния не сжатие и не реструктуризация.
  2. Попробуйте закрыть окно Конфигуратора обычным способом и подождите пару минут.
  3. Если не закрылось — в Диспетчере задач на вкладке «Подробности» завершите именно тот процесс 1cv8.exe, который запущен в режиме Конфигуратора. Если открыто несколько окон 1С, сверьте по столбцу командной строки.
  4. Не перезагружайте компьютер и не выключайте питание, пока процесс не завершится: кэш записи на диск должен успеть сброситься.

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

Как прервать тестирование и исправление на сервере 1С

В клиент-серверном варианте всю работу выполняет рабочий процесс кластера и СУБД, а Конфигуратор только командует и показывает прогресс. Поэтому закрытие Конфигуратора не останавливает операцию мгновенно: сервер дорабатывает текущую транзакцию или откатывает её.

Порядок действий:

  1. Откройте «Консоль администрирования серверов 1С Предприятия».
  2. Раскройте кластер, затем Информационные базы → ваша база → Сеансы.
  3. Найдите сеанс с приложением «Конфигуратор» и пользователем, который запустил проверку.
  4. Удалите этот сеанс через контекстное меню. Предупредите остальных: если в базе остались другие сеансы, их тоже придётся завершить перед повторной проверкой.
  5. Дождитесь, пока СУБД откатит незавершённую транзакцию. Откат длинной операции может идти столько же, сколько сама операция.

Ход отката удобно смотреть средствами самой СУБД: в Microsoft SQL Server — по активным запросам базы в Management Studio, в PostgreSQL — по представлению pg_stat_activity.

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

💡 В серверной базе реиндексацию и пересчёт статистики лучше поручить самой СУБД: планы обслуживания SQL Server или REINDEX и VACUUM ANALYZE в PostgreSQL. Эти операции идут по таблицам, их проще планировать по времени, а останавливаются они средствами СУБД. ТиИ из Конфигуратора на сервере оставьте для логической и ссылочной целостности и пересчёта итогов.

Что сделать с базой после прерванной проверки

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

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

Шаг 2. Повторите прерванный этап. Запустите ТиИ ещё раз с теми же флажками. Если был включён лимит времени — с продолжением с места остановки. Если обрыв пришёлся на пересчёт итогов, достаточно повторить только его.

Шаг 3. Для файловой базы — физическая проверка. Если база не открывается, а Конфигуратор сообщает о повреждении файла, используйте утилиту chdbfl.exe из папки bin установленной платформы. В ней укажите путь к 1Cv8.1CD, включите исправление ошибок и запустите. Перед запуском скопируйте файл базы: утилита пишет прямо в него.

Шаг 4. Восстановление из резервной копии. Если ни ТиИ, ни chdbfl.exe не помогли, верните копию, сделанную до проверки. Для файловой базы — замените папку с базой, для серверной — восстановите копию средствами СУБД. Данные, введённые после копии, придётся внести заново.

На каком этапе была прервана проверка?

Как спланировать проверку, чтобы её не пришлось обрывать

Большинство вынужденных остановок — следствие того, что проверку запустили «на авось» перед рабочим днём. Это легко предотвратить.

Резервная копия до старта. Для файловой базы — копия папки с 1Cv8.1CD при закрытых сеансах или выгрузка через Администрирование → Выгрузить информационную базу в файл .dt. Для серверной — полная копия средствами СУБД. Без копии любое прерывание превращается в лотерею.

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

Свободное место. Для сжатия и реструктуризации держите на диске свободный объём не меньше размера базы.

Разбивка на части. Не обязательно отмечать все флажки сразу. Например:

КогдаЧто запускать
Ночь 1Реиндексация + проверка логической целостности
Ночь 2Проверка ссылочной целостности + пересчёт итогов
ВыходныеСжатие таблиц (файловая база)

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

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

Ошибки при остановке проверки

Эти промахи встречаются чаще всего и обходятся дороже всего.

  • ❌ Перезагрузка сервера кнопкой. Файловая база на этом сервере может остаться с незаписанными данными в кэше диска. Сначала завершите процесс 1cv8.exe, потом перезагружайте.
  • ❌ Удаление сеанса и сразу новая проверка. В серверной базе откат ещё идёт, а новая проверка либо не получит монопольный доступ, либо будет ждать блокировок. Дождитесь окончания отката в СУБД.
  • ❌ Повтор с другими флажками. После обрыва на исправлении целостности запускают проверку с режимом «Удалять объекты» вместо «Создавать объекты». В результате теряются документы, на которые остались битые ссылки.
  • ❌ Работа пользователей в базе после обрыва пересчёта итогов. Остатки по складу и взаиморасчётам в отчётах неверные, и по ним уже принимают решения. Закройте вход, пока пересчёт не повторён.
  • ❌ Копия «после». Резервную копию делают уже после неудачной проверки и затирают ею последнюю исправную. Храните копию до проверки отдельно, пока не убедитесь, что база в порядке.

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

Сколько ждать, прежде чем считать, что проверка зависла?
Ориентируйтесь не на строку состояния, а на диск и процессор. Если процесс 1cv8.exe 15–20 минут не читает и не пишет файл базы и не грузит процессор, можно считать проверку зависшей.
Можно ли работать в базе, пока идёт тестирование?
Нет. ТиИ требует монопольного доступа, и пользователи не смогут войти в базу до его окончания или прерывания.
Что будет, если прервать проверку в режиме «Только тестирование»?
Данные не пострадают: в этом режиме программа только читает базу и формирует протокол. Потеряется лишь отчёт о найденных ошибках.
Почему после прерывания база открывается, но отчёты показывают странные остатки?
Скорее всего, обрыв пришёлся на пересчёт итогов. Запустите ТиИ ещё раз только с пересчётом итогов, и остатки вернутся к правильным значениям.
Нужно ли запускать chdbfl.exe для серверной базы?
Нет. Утилита работает только с файлом 1Cv8.1CD файловой базы. Целостность серверной базы проверяют средствами СУБД.