Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 19:09

Тестирование и исправление информационных баз

Автор Боня, 15 июл 2008, 10:49

0 Пользователей и 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, потом вставлен из Буфера Обмена в любом текстовом редакторе и сохранен в виде файла или распечатан на принтере. Параллельно с выводом в окно сообщений оно отмечается в Мониторе пользователей (см. гл. «Монитор пользователей), где его можно просмотреть впоследствии.

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


Боня

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

Здесь из каждого сообщения приведена переменная часть, по которой их легко опознать. Реально в них, в частности, включается и название этапа тестирования.

Если в сообщении указан только тип значения (поля, реквизита и т. д.), это просто означает, что его значение не соответствует ограничениям, наложенным в системе 1С:Предприятие на это тип данных.

Объявления в сообщениях о сделанных исправления имеют силу для режима исправления, но не для режима тестирования.


Боня

Проверка физической целостности
Сообщение
Объяснение

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


Боня

Открытие доступа к таблице
Сообщение
Объяснение

Создана таблица
Выдается в режиме тестирования и исправления, если отсутствует файл таблицы

Не удалось открыть файл
Ошибка при открытии файла таблицы. Файл может отсутствовать, или произошла ошибка при его создании в режиме тестирования и исправления, или таблица может быть открыта другим приложением. Тестирование завершается с сообщением о неисправимой ошибке


Боня

Проверка заголовка файла таблицы
Сообщение
Объяснение

Неверная длина заголовка dbf-файла

Длина записи не соответствует ожидаемой

Ошибка в имени поля <номер>

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

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

Не сошлось наименование поля <номер>

Не сошлись типы полей <номер>

Не сходится количество полей
Информация о поле вступает в конфликт со словарем данных, содержащемся в DD-файле. Тестирование завершается с сообщением о неисправимой ошибке


Боня

Проверка содержимого записи
Сообщение
Объяснение

Неверный признак удаленности записи
Флаг удаленности записи имеет недопустимое значение. В режиме тестирования и исправления записи ставится признак «удалена»


Боня

Проверка содержимого поля
Сообщение
Объяснение

Неверное содержимое

Неверное содержимое поля Numeric

Неверное содержимое логического поля

Неверное содержимое поля даты
Содержимое поля неверно с точки зрения текстового поля хранения в таблице значений определенного типа. В режиме тестирования и исправления содержимое поля «очищается» в соответствии с типом хранимого значения.


Боня

Проверка таблиц(ы) XX
Сообщение
Объяснение

Запись YYY. Поле ZZZ.
Содержимое поля не соответствует типу поля

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

Нет в журнале документов
Существует запись о заголовочной части документа, у которой нет соответствующей записи в журнале документов

Нет ответной заголовочной части
Существует запись в журнале документов, у которой нет соответствующей записи о заголовочной части документа


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск