Рано или поздно каждый администратор или разработчик 1С сталкивается с необходимостью проведения регламентных работ в конфигураторе. Речь идет о процедуре Тестирование и исправление (ТиИ). У новичков часто возникает вопрос: в какой последовательности отмечать пункты в окне настройки и можно ли запускать все операции одновременно? В этой статье мы подробно разберем внутренние механизмы этого процесса, выясним, как платформа определяет очередность задач, и научимся правильно готовить базу к обслуживанию.
Прежде чем мы приступим к разбору технических пунктов, рассмотрим критически важное правило, которое упоминалось в обсуждении: перед любым запуском ТиИ необходимо сделать резервную копию базы данных. Процедуры тестирования и исправления вносят необратимые изменения в структуру и данные таблиц. Если в процессе произойдет сбой электропитания или критическая ошибка СУБД, база может оказаться полностью неработоспособной.
Проанализируем ситуацию: для файловой базы достаточно скопировать файл 1Cv8.1CD, для клиент-серверной — создать бэкап средствами MS SQL Server или PostgreSQL. Только убедившись в наличии актуальной копии, мы можем переходить к работе в конфигураторе.
Существует распространенное заблуждение, что если отметить все галочки в меню "Тестирование и исправление", то платформа начнет выполнять их хаотично или неэффективно. На самом деле, разработчики 1С уже предусмотрели оптимальный алгоритм. Независимо от того, в каком порядке вы нажимаете кнопки в интерфейсе, конфигуратор всегда выполняет задачи в строго определенной логической последовательности:
Таким образом, мы выяснили, что можно смело отмечать все необходимые пункты сразу — платформа сама выстроит их в правильную очередь.
Рассмотрим подробнее каждый пункт, чтобы понимать, что именно происходит под капотом системы во время выполнения регламента.
Индексы — это специальные служебные таблицы, которые позволяют 1С быстро находить нужные данные. Со временем индексы могут "раздуваться" или повреждаться. Проанализируем пример: если база начала заметно тормозить при поиске или проведении документов, реиндексация — первое, что стоит сделать. Она полностью очищает старые индексы и создает их заново.
Выясним причину появления ошибок типа "Объект не найден". Это происходит, когда один объект ссылается на другой, который был удален без контроля ссылочной целостности. В окне ТиИ мы можем выбрать варианты действий при обнаружении таких проблем:
Неопределено или ПустаяСсылка).Для корректного исправления рекомендуется выбирать "Создавать объекты", так как это позволит в дальнейшем отследить, какие именно данные были потеряны.
Это наиболее ресурсоемкая операция. Проанализируем механизм: платформа для каждой таблицы метаданных создает временную таблицу с новой структурой, переносит туда все данные, удаляет старую таблицу и переименовывает новую. Это помогает исправить самые сложные ошибки на уровне физического хранения данных. Если база данных работает нестабильно или выдает ошибки SQL, реструктуризация часто является единственным спасением.
Посмотрим на пример работы файловой базы .1CD. Когда вы удаляете записи из таблиц, физический размер файла на диске не уменьшается — место просто помечается как "свободное". Сжатие позволяет физически удалить эти пустоты, значительно уменьшив размер файла базы данных.
Важно: для серверных баз (SQL) этот пункт практически бесполезен. Сжатие базы данных (Shrink) в этом случае лучше выполнять средствами самой СУБД.
Как справедливо замечено в сообщениях форума, на базах размером в сотни гигабайт запуск полного ТиИ может парализовать работу компании на несколько суток. Выясним, как поступать в таких ситуациях:
chdbfl.exe. Эта утилита исправляет физические ошибки файла базы данных. Если файл поврежден на физическом уровне, ТиИ может просто зависнуть или "убить" базу окончательно.Разберем по шагам правильный порядок действий для системного администратора:
chdbfl.exe (находится в папке bin установленной платформы). Исправляем ошибки, если они найдены.Рассмотрим ситуацию, когда тестирование прерывается по времени. Как указано в сообщении 8, если база большая и вы не успеваете завершить процесс в технологическое окно, можно запускать пункты по очереди. Например, сначала выполнить только РеиндексацияТаблиц, а в следующий раз — ПроверкаСсылочнойЦелостности. Это позволит контролировать время простоя системы.
Таким образом, мы проанализировали основные аспекты тестирования и исправления. Главный вывод: платформа сама заботится о последовательности, но ответственность за сохранность данных и предварительную проверку физической целостности файла лежит на администраторе.