Механизм «Тестирование и исправление» (ТиИ) является мощным встроенным инструментом платформы 1С:Предприятие для поддержания здоровья базы данных. Однако среди администраторов и разработчиков не утихают споры: нужно ли запускать его регулярно «для профилактики» или использовать только тогда, когда в системе уже начались явные сбои? Разберем по шагам все нюансы этого процесса, проанализируем риски и выясним, как правильно обслуживать базы разных типов.
Прежде чем переходить к практике, давайте разберем, на что именно влияет ТиИ. Важно разделять два вида целостности, которые проверяет этот механизм:
1Cv8.1CD) или таблиц в СУБД. На этом уровне проверяется отсутствие «битых» страниц памяти и корректность структуры таблиц. Проанализируем ситуацию: если у вас файловая база, ТиИ выполняет проверку физики, но делает это менее эффективно, чем специализированная утилита chdbfl.exe. Поэтому при серьезных сбоях (например, после отключения электроэнергии) мы сначала рекомендуем использовать внешнюю утилиту, а уже потом переходить к штатному тестированию.Рассмотрим, как меняется подход к тестированию в зависимости от архитектуры хранения данных. Выясним причину, по которой для больших баз профилактическое ТиИ может стать проблемой.
Для файловых баз ТиИ является основным средством профилактики. В условиях отсутствия продвинутых инструментов СУБД, регулярное (например, раз в месяц) тестирование помогает «поджать» базу и перестроить индексы. Однако помните: любая работа в этом режиме требует монопольного доступа, что останавливает работу пользователей.
Для SQL-баз (client-server) ситуация иная. Большинство функций ТиИ, таких как «Реиндексация» или «Сжатие», гораздо эффективнее выполняются средствами самого SQL-сервера (через планы обслуживания: Rebuild Index, Update Statistics). SQL делает это быстрее и зачастую без блокировки всей базы. Поэтому на крупных внедрениях профилактическое ТиИ «со всеми галками» практически не используется из-за огромных временных затрат и нагрузки на дисковую подсистему.
Рассмотрим подробно каждый пункт настройки ТиИ, чтобы понимать, какие галочки действительно нужны именно вам:
Проанализируем ситуацию с обработкой «битых» ссылок. Это самый опасный момент в работе ТиИ. Когда система находит ссылку на несуществующий объект, у вас есть два пути:
Очищать ссылки: 1С просто сотрет упоминание об объекте. Представьте, что в регистре накопления была запись о продаже, но документ-регистратор потерян. При выборе «Очищать» система может удалить запись, и ваш остаток товара изменится непредсказуемо. Внимание: это может привести к необратимой потере аналитики!
Создавать объекты: Это более безопасный путь. Вместо пустого места система создаст элемент справочника или документ с пометкой <Объект не найден>.... Это позволит вам позже по GUID (уникальному идентификатору) понять, что это был за объект, и, возможно, восстановить его из архивной копии.
Вместо того чтобы рисковать рабочей базой, разберем надежную схему, которую используют профессиональные администраторы:
Пример скрипта для запуска тестирования из командной строки:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "D:\Bases\Trade" /N "Admin" /P "Password" /IBCheckAndRepair -Reindex -Log "D:\Logs\repair_log.txt"
Выясним причину еще одной опасности, упомянутой опытными специалистами. В версиях платформы до 8.3.15 существовал баг: при запуске ТиИ могли удаляться данные, хранящиеся в расширениях конфигурации. Платформа считала их «лишними», так как в основной конфигурации их нет. Несмотря на то что в свежих релизах это исправлено, мы рекомендуем: перед глобальным тестированием убедитесь, что ваши расширения подключены корректно и не конфликтуют с основной базой.
Подведем итоги нашего анализа. Механизм ТиИ — это не «волшебная кнопка», которую нужно нажимать каждый день. Это хирургический инструмент.
Для профилактики:
chdbfl.exe.Для исправления:
<Объект не найден>.Помните, что лучшая профилактика — это исправный источник бесперебойного питания (ИБП) для сервера и ежедневно проверяемые бэкапы. Если данные в порядке и сервер работает стабильно, избыточное использование ТиИ может принести больше вреда (в виде временных затрат и рисков очистки данных), чем реальной пользы.