Тестирование и исправление 1С

В процессе работы системы 1С:Предприятие могут возникать различные внештатные ситуации – отключение питания компьютера «зависание» операционной системы, сбои оборудования и прочее. Такие ситуации, возникшие в процессе записи изменений в таблицы информационной базы системы 1С:Предприятие, могут привести к некорректному состоянию информационной базы. Внешние проявления некорректного состояния информационной базы могут быть различными, вплоть до невозможности запуска 1С:Предприятия.

Процедура «Тестирование и исправление информационных баз» предназначена для диагностики и устранения ошибочных состояний информационных баз, имеющих как формат DBF, так и формат MS SQL Server 6.5, при любом составе установленных компонент системы 1С:Предприятие.

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

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

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

Записи в базовых таблицах образуются, модифицируются и удаляются в результате работы пользователей, исполнения модулей.

Содержание производных таблиц определяется состоянием базовых и полностью может быть восстановлено при выполнении процедур пересчета итогов. Во время выполнения тестирования второго уровня происходит сканирование записей базовых таблиц и проверка содержимого полей на корректность с точки зрения системы 1С:Предпритияе, а не управления базами данных в dbf-формате, как это происходило на предыдущем уровне. Например, поле, объявленное в заголовке dbf-файла как строковое, может рассматриваться системой 1С:Предприятие как ссылка на конкретный элемент конкретного справочника. Содержимое такого поля формируется по правилам, определяемым системой 1С:Предприятие. Естественно, содержание такого поля имеет более существенные ограничения, чем способна наложить система управления базами данных, и тестирование содержимого на этом уровне представляет собой отдельную задачу. По окончании сканирования всех записей таблицы происходит ее реиндексация. Также на этом уровне происходит проверка логической связки «журнал документов — документ —табличная часть документа».

Логическая целостность таблиц, входящих в состав информационной базы, осуществляется совокупностью проверок третьего уровня. На этом уровне тестируются внутренние связи таблиц, определяемые системой 1С:Предприятие, проверяется фактическое существование элементов данных, на которые имеются ссылки в полях записей. Также па этом уровне происходит анализ записей о периодических реквизитах справочников и бухгалтерских счетов (если установлена компонента «Бухгалтерский учет»).

 По окончании проверок производится полный пересчет итогов. Конкретный состав пересчитываемых итогов зависит от состава установленных компонент и набора типов используемых тестируемой информационной базой объектов.

Запуск процедуры
ВНИМАНИЕ!!! Все изменения, сделанные в таблицах информационной базы в процессе тестирования, будут необратимыми. Поэтому перед запуском процедуры рекомендуется сделать резервную копию информационной базы на случай, если ее выполнение не приведет к желаемому результату и потребуется помощь специалиста.

Для запуска процедуры нужно в меню «Администрирование» выбрать пункт «Тестирование и исправление ИБ…». Появится окно «Тестирование и исправление информационной базы».

По умолчанию установлены все этапы тестирования, кроме упаковки таблиц информационной базы. Установки можно изменить.

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

Упаковка таблиц информационной базы — это дополнительная возможность, имеющая отношение не к целостности базы, а к ее величине (и, соответственно, скорости работы). Дело в том, что для экономии времени записи, удаляемые из информационной базы, на самом деле физически не уничтожаются, а считаются удаленными (не путать с пометкой на удаление!) и пропускаются при чтении (иначе при каждом удалении приходилось бы сдвигать все записи после удаляемой на ее место, что занимало бы много времени). Перед архивированием информационной базы, чтобы не занимать лишнего места, или вообще при дефиците места на диске, полезно физически стереть все удаленные записи, сдвинув оставшиеся записи на их места.

Кнопка «Настройка» предоставляет доступ к диалогу «Настройка исправления информационной базы». В нем нужно определить две настройки. Первая определяет, должна ли программа при обнаружении ссылок на несуществующие объекты создавать эти объекты, или удалять ссылки. Можно также отказаться от исправлений ошибок этого типа. Если задать создание объектов, потом можно будет просмотреть их и, если какие-то из них на самом деле не нужны, корректно удалить вместе со ссылками. Для этого можно в режиме 1С:Предприятия воспользоваться поиском ссылок на объекты, или просто начать удалять объект: в качестве первого этапа перед удалением производится контроль ссылок, специально чтобы не нарушить ссылочную целостность базы.

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

Определив эти две настройки, необходимо нажать кнопку «OK» для продолжения процесса запуска с измененными настройками. Нажатие кнопки «Отмена» позволяет отказаться от изменений.

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

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

В процессе тестирования информационной базы строка состояния используется процедурой для вывода информации о выполняемой в данный момент проверке.

Все изменения, внесенные в таблицы информационной базы, фиксируются в окне сообщений. По окончании процесса тестирования текст из этого окна может быть выделен (целиком или фрагментарно) и сохранен в Буфере Обмена MS Windows, потом вставлен из Буфера Обмена в любом текстовом редакторе и сохранен в виде файла или распечатан на принтере. Параллельно с выводом в окно сообщений оно отмечается в Мониторе пользователей (см. гл. «Монитор пользователей), где его можно просмотреть впоследствии.

Выход из процедуры осуществляется нажатием кнопки «Выход».