При работе с информационными базами «1С: Предприятие 8» могут происходить различные нештатные ситуации – отключение электричества, зависание операционной системы, проблемы с сетью и т.д. Эти проблемы во время записи информации в базу могут послужить причиной некорректной информации в базе.
Проявляться это может в виде зависаний при обращении к определенному объекту базы, невозможности войти в базу, сообщениях об ошибках SDBL и т.д. Для устранения подобных ошибок платформа «1С: Предприятие 8» предоставляет механизм тестирования и исправления информационных баз. Воспользоваться им можно как для файловых информационных баз, так и для клиент-серверных.
Перед запуском тестирования и исправления рекомендуется создать резервную копию базы!
Как запустить процедуру?
Чтобы воспользоваться этим механизмом, нужно открыть информационную базу в режиме Конфигуратор, в меню обратиться к пункту
Администрирование – Тестирование и исправление:
Далее надо установить все галочки (как показано на скриншоте):
-
Реиндексация таблиц информационной базы;
-
Проверка логической целостности информационной базы;
-
Проверка ссылочной целостности информационной базы;
-
Пересчет итогов;
-
Сжатие таблиц информационной базы;
-
Реструктуризация таблиц информационной базы;
-
Тестирование и исправление;
-
Очищать ссылки;
-
Создавать объекты;
Далее нажимаем «Выполнить».
Процедура может длиться до нескольких часов. Терминальный сеанс с запущенным тестированием и исправлением завершать не следует во избежание повреждения информационной базы.
В случае необходимости процедуру можно прервать
нажатием комбинации клавиш Ctrl + Break.
Развернутое описание галочек и действий.
Реиндексация таблиц – это перестроение индексов таблиц, направленное на повышение быстродействия работы базы.
Проверка логической целостности – это целое множество проверок логики базы данных
Проверка ссылочной целостности – это подмножество проверки логической целостности базы данных, существующее для отдельной работы с «битыми» ссылками. Конкретнее будет объяснено ниже по тексту.
Пересчет итогов – расчет итогов таблиц регистров накопления
Сжатие таблиц информационной базы – данный пункт отвечает за уменьшение размера базы после тестирования. Объяснить уменьшение размера базы можно, например, так: когда из базы удаляется объект, он, по сути, остается в базе внутри, но невидимым для конечного пользователя. Сделано это для того, чтобы объект все-таки можно было восстановить уже после полного удаления из базы (хотя мы с таким не встречались). И сжатие таблиц, как раз убирает информацию об удаленных уже объектах из базы данных. От этого таблицы становятся меньше (это всего лишь один пример, как работает сжатие).
Действие «Сжатие таблиц информационной базы» доступно только для файлового варианта. Остальные варианты работают и в файловом и в серверном режиме.
Реструктуризация таблиц – пример можно привести такой: берется таблица № 1, создается копия ее структуры, назовем, как Таблица № 2 и данные из таблицы № 1 копируются порциями в таблицу № 2.
Имеется возможность выполнять только тестирование или тестирование с исправлением.
Пункты настроек по обработке ошибок базы становятся доступными для выбора при варианте обработки «Тестирование и исправление», а также режиме «Проверка ссылочной целостности информационной базы».
Первая настройка: «При наличии ссылок на несуществующие объекты» означает, что в базе будет произведен поиск «битых ссылок» (когда какой-то реквизит ссылается, к примеру, на элемент справочника, а физически данный элемент уже в базе отсутствует. В результате, встречаются записи типа «Объект не найден <……>») и вариант обработки таких ссылок:
-
попытка создать несуществующий объект;
-
очистить «битую» ссылку
-
ничего не изменять.
Вторая настройка: «При частичной потере данных объекта» означает, что данные какого-либо объекта были потеряны, но оставшихся данных вполне хватает для восстановления утраченного. Варианты обработки таких объектов не отличаются по смыслу от вариантов предыдущей настройки.
Процесс тестирования и исправления информационной базы может быть разбит на несколько этапов. При этом доступны следующие возможности:
-
ограничение времени тестирования и исправления;
-
сохранение параметров тестирования между этапами;
-
продолжение прерванного ранее тестирования и исправления;
поддержка тестирования и исправления порциями в командной строке запуска.
Для выполнения тестирования и исправления требуется установка монопольного режима, в базе не должны работать другие пользователи:
События тестирования и исправления фиксируются в журнале регистрации.
Как было указано выше, процедура может быть прервана нажатием комбинации клавиш Ctrl + Break.
1С.8 Параметры консольного вызова тестирования и исправления
DESIGNER(CONFIG в 8.0) Запуск в режиме Конфигуратора.
/@ Путь к файлу с параметрами командной строки.
/F Путь к файловой информационной базе (исключая имя файла).
/S Адрес информационной базы на сервере 1С: Предприятия.
/IBName запуск информационной базы по имени базы в списке информационных баз. При необходимости имя должно быть взято в двойные кавычки. При этом, если имя содержит двойные кавычки, то нужно заменить каждые двойные кавычки на две двойные кавычки. Если в списках баз будет найдено более чем одна база с указанным именем, то пользователю будет выдана ошибка.
/N Имя пользователя, как оно задано в Конфигураторе.
/P пароль пользователя, имя которого указано в параметре /N. Если у пользователя нет пароля, этот параметр можно опустить.
/Out[ -NoTruncate] Задаёт файл для вывода служебных сообщений. Если задано -NoTruncate, файл не очищается (не используется в тонком клиенте). C 8.2.15 файл сообщений открывается в режиме, допускающем совместное чтение, и во время пакетного режима запуска Конфигуратора запись в этот файл выполняется сразу, а не буферизуется.
/UC [код доступа] — позволяет выполнить установку соединения с информационной базой, на которую установлена блокировка установки соединений. Если при установке блокировки задан непустой код доступа, то для установки соединения необходимо в параметре /UC указать этот код доступа.
/DumpIB[ИмяФайла] Выгрузка информационной базы.
/IBCheckAndRepair выполнить тестирование и исправление информационной базы.
- -ReIndexреиндексация таблиц;
- -LogIntegrityпроверка логической целостности или -LogAndRefsIntegrity проверка логической и ссылочной целостности;
- -RecalcTotalsпересчет итогов;
- -IBCompressionсжатие таблиц;
- -Rebuildреструктуризация таблиц информационной базы;
- BadRefCreate создавать объекты или
- BadRefClear очищать объекты или
- BadRefNone не изменять при частичной потере объектов:
- BadDataCreate создавать объекты или
- BadDataDelete удалять объекты или
- BadDataNone не изменять объекты;
-
UseStartPoint использовать сохраненную точку возврата для продолжения тестирования с того места, на котором оно было прервано в предыдущем сеансе;
-
TimeLimit:hhh:mm ограничение максимального времени сеанса тестирования: hhh — количество часов (0..999); mm — количество минут (0..59).
Примеры использования параметров:
C:\Program Files\1cv8\bin\1cv8.exe CONFIG /F"C:\DemoTrd2" /N"Федоров (администратор)" /P"" /IBcheckAndRepair -LogIntegrity
C:\Program Files\1cv82\common\1cestart.exe DESIGNER /S"Server-1C\1C-Work82" /N"Администратор" /P"12345" /IBcheckAndRepair -LogIntegrity