Прежде чем запускать проверку базу данных, обязательно нужно сделать ее резервную копию. В файловой версии необходимо скопировать всю папку с базой данных, в SQL версии желательно сделать копию средствами SQL. Также ,на всякий случай, если может зайти в Конфигукратор перестрахуемся и выгрузим в DT файл. В конфигураторе нужно выбрать в меню опцию Администрирование → Выгрузить информационную базу.
Перед тестированием и исправлением копия делается обязательно, поскольку при исправлении выполняются необратимые изменения данных.
Обычно резервные копии нужно делать регулярно, лучше всего – ежедневно и на носитель отличный от основного.Подойдет внешний жесткий диск или отдельный компьютер.
Исправление информационной базы внутренними средствами программы
После того, как сделана резервная копия, откроем базу в режиме Конфигуратора. Выбираем опцию меню Администрирование → Тестирование и исправление информационной базы.
В открывшемся окне нужно проставить галочки (рис.1).
Но лучше не делать этого: не все операции, перечисленные в меню, необходимы при ремонте после аварии.
Рис.1. Окно тестирования и исправления 1с 8 с проставленными галочками во всех пунктах. Так делать НЕ НАДО:
Если отметить все пункты, запустится долгий процесс. Результаты тестирования и исправления отображается в нижней части окна. После выполнения действий нужно щелкнуть по кнопке Закрыть.
Выполнить все – не самый лучший вариант! Квалифицированные пользователи выполняют действия поэтапно и выборочно.
Этапы исправления
Рассмотрим все пункты меню Тестирование и исправление.
- Реиндексация таблиц информационной базы;
- Проверка логической целостности;
- Проверка ссылочной целостности;
- Пересчет итогов;
- Сжатие таблиц;
- Реструктуризация таблиц.
Первый этап, Реиндексация таблиц информационной базы, помогает решить 90% проблем. Что происходит в процессе реиндексации?
Внесение данных в справочники, создание новых документов сопровождается их автоматическим упорядочиванием. Названия выстраиваются по алфавиту, документы – по датам и т.д. При этом физический порядок следования записей не меняется. Записи выводятся на экран в определенном порядке, потому что им присвоены номера (индексы), и соответствие индекса физическому номеру записи содержится в таблицах индексов.
Индексы очень важны:
- Поиск в индексированных таблицах происходит во много раз быстрее, чем в неиндексированных;
- Индексный номер – это уникальный «код» записи, по индексам выполняется связь между записями из разных таблиц;
- Индексные таблицы – это каркас информационной базы; без них программа 1с не работает.
Нарушение индексных таблиц приводит к хаосу в представлении документов. Может, например, засветиться документ, в котором отсутствуют наименования товаров, но есть их количество.
Каждая новая запись сопровождается изменениями в таблицах индексов: например, после внесения в справочник записи, начинающейся на букву А, ей будет присвоен один из первых индексов, а все остальные индексные номера будут изменены. Небольшая пауза, возникающая после внесения новой записи, связана с пересчетом индексов; чем больше база, тем заметнее пауза.
Создание документа и записей в нем приводит в движение несколько индексных таблиц (иногда несколько десятков). Фактически, реиндесация таблиц в 1с ведется постоянно во время работы с данными. Но в рабочем режиме индексируются каждый раз одна или несколько таблиц, а при Тестировании и исправлении выполняется полная индексация всех таблиц, и этот процесс, для больших баз, занимает длительное время.
Итак, при переиндексации происходят такие процессы:
- Записи заново ранжируются и упорядочиваются;
- Восстанавливается связь между таблицами и другими объектами;
- Во многих случаях – восстанавливается работа программы.
После переиндексации можно проверить – восстановилась ли работоспособность базы.
Следующий этап – проверка логической целостности. Проверяется соответствие реальной структуры информационной базы и ее описания в Конфигурации (наличие объектов, наличие связей между объектами). Эта проверка зачастую сообщает об ошибках даже в работающей базе, не следует паниковать при таких сообщениях. Однако это повод для обращения за консультацией к специалисту.
Проверка ссылочной целостности «прозванивает» связи между объектами. Иногда в таблице используется ссылка на отсутствующий объект, например на удаленный документ. Ссылочную целостность принято восстанавливать вручную, по списку, полученному в результате проверки. Иногда ссылочная целостность нарушена на «заброшенных участках» — в старых неактуальных документах. Тогда на них просто не обращают внимания.
Пересчет итогов – длительная и рискованная процедура. В 1с производится пересчет результатов в штатном режиме, но он ведется не «от начала времен», а с начала месяца. Итоговые значения отслеживаются в регистрах, это ускоряет работу. Если включить пересчет итогов в режиме тестирования и исправления, то пересчет совершится от момента создания базы, причем правильные текущие значения регистров могут «поплыть» из-за давно удаленных или исправленных «задним числом» документов. В результате длительная работа по пересчету не принесет пользы.
Если нет необходимости, то от пересчета итогов лучше воздержаться.
Сжатие таблиц – это процедура физического удаления записей, которые были помечены на удаление и перестали выводиться на экран. Таких записей может быть очень много, они без пользы раздувают объем базы данных.
Сжатие таблиц – полезная функция, хотя ее выполнять не обязательно.
Реструктуризация таблиц – операция, актуальная при переходе на новую версию программы. При реструктуризации создаются пустые таблицы с форматом, заданным в конфигурации, и в них переносится, запись за записью, информация из старых таблиц. В новых таблицах могут быть расширены поля, добавлены новые поля. Реструктуризация – это операция, которая должна подготовить информационную базу для работы по-новому, и она абсолютно необходима при обновлениях .
Если никакие версии не менялись, то реструктуризация не нужна, эта длительная процедура ничего не добавит и не изменит.
Итак, при исправлении «упавшей» программы необходимы и полезны опции:
- Реиндексация таблиц информационной базы
- Проверка логической целостности
- Проверка ссылочной целостности
Что делать, если не удается запустить Тестирование и исправление?
Если база сильно повреждена и даже в Конфигуратор не удается войти, остается еще одна возможность восстановления: воспользуйтесь утилитой chdbfl.exe. Файл можно найти в папке Bin каталога установки программы.
Подведем итоги. Если программа не запускается после аварийного прерывания работы, нужно сделать следующее:
- Сделать резервную копию;
- Попытаться войти через Конфигуратор и воспользоваться опцией Тестирование и исправление;
- Если в Конфигуратор не удается войти, найти программу exe и попытаться спасти данные при помощи этой программы;
- Если все попытки не дают результата, нужно обратиться за помощью к специалистам;
- В случае невосстановимой потери данных установить последнюю работоспособную резервную копию;
- Если резервное копирование не выполнялось – восстанавливать данные по первичным документам и бумажным распечаткам.
Удачное восстановление данных происходит не всегда. Страховкой от потери данных является ежедневное резервное копирование: если информационная база повреждена, можно вернуться на день назад и быстро восстановить потерянные записи.
Для составления статьи применялась информация с blog.it-terminal.ru