Получить консультацию

Тестирование и исправление базы 1С 8. Ставим флажки осознанно

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

Содержание

Бывает так, что из-за программного или аппаратного сбоя, аварийного прерывания работы или еще по ряду причин, в базе 1С начинают накапливаться ошибки. До поры они могут быть незаметными, но со временем симптомы проявляются все отчетливее. Вот лишь некоторые из них:

  • Расходятся цифры в отчетах на границе периодов — например, на конец января остаток по товару 100 штук, а на 1 февраля — 50 штук. При этом документов в последней секунде января нет. Связано это чаще всего с нарушением таблицы итогов по остаткам.
  • При сортировке данные сортируются криво — например, сортируем документы по дате, а даты идут вперемешку, или сортируем номенклатуру по наименованию, а наименования не по алфавиту. Такая ошибка возникает при повреждении таблиц индексов
  • При попытке открытия, редактирования или проведения система выдает ошибки, которые не связаны с некорректным программным кодом — например, платформа типовая на поддержке, все должно работать, но начинают сыпаться ошибки.
  • Появляются данные с названием начинающемся на «Объект не найден…» — это результат некорректно удаленных документов или поврежденной ссылочной логики
  • При входе под определенным пользователем 1С вылетает, а под другими все ОК.

на самом деле, проблем и ошибок много, и для разных баз они могут быть совершенно разными, вплоть до того, что 1С в принципе отказывается запускаться или вылетает. В большинстве случаев причина — физическое повреждение базы данных или рассогласование логической целостности (например, платформа должна была удалить данные из двух таблиц синхронно, но по какой-то причине удалила только из одной, и т.п.).

Все болит, ничего не помогает!

Если мы словили ошибку времени выполнения — отладчик в руки и вперед! А что делать, если причина ошибки не локализуется и от нас не зависит? Верно! Воспользоваться средствами диагностики! Вообще, средств диагностики и исправления ошибок, связанных именно с платформой и БД, не так много.

  • Собственно, «Тестирование и исправление» — герой нашей статьи.
  • Утилита для файловых баз — chdbfl.exe
  • Средства СУБД для клиент-серверных баз, если тестирование от 1С не помогает.
  • Очистка кэша — тоже следует использовать как средство исправления ошибок.

Тестирование и исправление ИБ средствами встроенной утилиты

Запускается данная утилита из конфигуратора, через меню Администрирование, в котором следует выбрать пункт «Тестирование и исправление». Откроется окно утилиты:

Тестирование и исправление информационной базы 1С 8

Какие же флажки следует ставить и для чего?

Первое и главное — сделать резервную копию базы. Так как если вы будете не просто запускать не просто тестирование, а еще и исправление выявленных ошибок, данная операция будет необратима, и если что-то пойдет не так, все может стать еще хуже 🙂

Реиндексация таблиц информационной базы

Данная галочка отвечает за перестроение индексов у таблиц базы данных. Вообще, индексы — это предмет отдельного обсуждения, и здесь я упомяну лишь, что часть индексов создается платформой, а другая часть — нашими умелыми ручками разработчиков 1С. Индексы нужны для ускорения поиска данных и повышения производительности 1С при работе с данными. И вот этот флажок «Реиндексация таблиц» отвечает за то, что утилита заново физически пересчитает все индексы, чтобы они не расходились с индексируемыми исходными таблицами. Также, полное перестроение индексов может привести к значительной оптимизации их работы и ускорению всей системы в целом.
Небольшое дополнение — этот флажок больше подходит для файловых баз, так как для клиент-серверных 1С рекомендует реиндексацию делать средствами самой СУБД (MS SQL Server, PostgreSQL и т.д.) Например, можно почитать тут: https://its.1c.ru/db/metod8dev#content:5837:hdoc:p4

Проверка логической целостности информационной базы

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

Проверка ссылочной целостности информационной базы

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

  • При включении этого флажка становятся доступными три варианта обработки ошибочных ссылок — Создавать объекты — будут создаваться пустые объекты-заглушки, которые затем можно заполнить
  • Очищать ссылки — некорректные ссылки будут просто очищены
  • Не изменять — утилита лишь проинформирует о наличии «битых» ссылок, но сама ничего предпринимать не будет.
Частичная потеря данных объекта — суть похожа, но битые ссылки являются обязательными с точки зрения целостности ИБ. Например, реквизит «Владелец» для подчиненного справочника. В этом случае просто очистить ссылку нельзя, и необходимо принять решение — удалить поврежденный объект, создать объект-пустышку, либо ничего не изменять.

Пересчет итогов

Итоги — это отдельные таблицы в ИБ, которые хранят рассчитанные на основе движений итоги по регистрам бухгалтерии, накопления и периодических регистров сведений. Простейший пример — мы начали учет в январе; за январь у нас 100 движений приход и 100 движений расход. Когда мы хотим сформировать отчет, к примеру, по остаткам на 15 февраля, платформа получает уже рассчитанные итоги за январь, досчитывает по таблице движений остатки до 15 февраля, и возвращает эти остатки. Если бы итогов не было, нам бы каждый раз пришлось анализировать все движения с начала времен, что сильно замедлило бы работу.

Но в процессе работы, в таблицах итогов накапливаются нулевые значения, которые замедляют обработку данных для соответствующих регистров. Кроме того, в результате сбоев, выключения электричества и т.п., таблица итогов может не соответствовать движениям, которые эти итоги сформировали. Например, два движения в приход 10 шт, но в итогах не 20шт, как ожидается, а 10.

Для того, чтобы привести в соответствие итоги и движения, а также для оптимизации таблиц итогов, и используется утилита со включенным флажком «Пересчет итогов».

Сжатие таблиц информационной базы

Данный флажок доступен только для файлового варианта, так как при использовании сервера 1С, за управление физическими таблицами и выделение места на диске под них отвечает СУБД. При удалении данных из базы 1С, платформа для экономии ресурсов и времени не удаляет физически данные из СУБД. Они остаются в таблицах, но со специальной пометкой, чтобы платформа 1С их не использовала. В результате объем файла БД со временем увеличивается за счет этих скрытых объектов. Сжатие таблиц ИБ физически удаляет такие объекты.

Реструктуризация таблиц информационной базы

Если включена данная опция, то утилита для каждой таблицы в СУБД создаст копию с такой же структурой, и переместит данные из старой таблицы в новую. Аналогичная процедура реструктуризации происходит при изменении структуры конфигурации.

Пересоздание автономной конфигурации

Этот флажок предназначен для создания автономной конфигурации для мобильного клиента с автономным режимом. Эта возможность появилась в платформе начиная с версии 8.3.16. Если вкратце, часть критичного функционала, который должен быть доступен оффлайн, можно вынести в автономную конфигурацию, которая будет использоваться мобильным клиентом, если основной сервер не доступен. Подробнее можно почитать здесь:
https://wonderland.v8.1c.ru/blog/mobilnyy-klient-s-avtonomnym-rezhimom/

Нюансы

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

На этом статья подходит к концу! Спасибо что дочитали, и удачи!

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

двенадцать − два =

К НАЧАЛУ