Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

POEIS

.pdf
Скачиваний:
13
Добавлен:
01.04.2015
Размер:
1.59 Mб
Скачать

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

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

В процессе работы системы 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.

 

Ссылка на

При проверке таблицы констант — обнаружена запись о

несуществующий

периодическом реквизите справочника, который не определен в

элемент метаданных

метаданных. При проверке таблицы журнала документов —

 

обнаружена запись о документе, который не определен в

 

метаданных. Такие записи уничтожаются

Нет в журнале

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

документов

соответствующей записи в журнале документов

Нет ответной

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

заголовочной части

соответствующей записи о заголовочной части документа

Проверка значений констант

 

 

Сообщение

Объяснение

Удалена запись о

Было только значение константы, но ее самой не было в списке

константе

констант

Удалена

Было два или более значений у одной непериодической константы

дублирующая запись о

 

константе

 

Проверка периодических реквизитов

 

 

Сообщение

Объяснение

Справочник XXX.

В информационной базе отсутствует объект, являющийся

Элемент YYY.

значением данного реквизита

Реквизит ZZZ.

 

Значение на DDD.

 

Счет XXX. Реквизит

 

ZZZ. Значение на

 

DDD.

 

Справочник XXX.

Не было соответствующего документа

Элемент YYY.

 

Реквизит ZZZ.

 

Значение на DDD.

 

Очищен признак

 

изменения

 

документом

 

Проверка содержания справочников

 

 

Сообщение

Объяснение

Перенесен на 1-й

Отсутствовал элемент, на который данный элемент ссылается, как

уровень

на элемент первого (верхнего) уровня; обнаружено зацикливание

 

по родительскому элементу (ссылки образовали замкнутую

 

цепочку); превышение допустимого уровня вложенности

 

элементов

Убран признак группы

Элемент, находящийся на максимальном (нижнем) уровне

 

вложенности, имел признак группы

Изменено подчинение

Элемент подчиненного справочника, находящийся на нижнем

 

уровне, был подчинен не тому элементу, которому подчинен

 

элемент верхнего уровня; элемент подчиненного справочника был

 

подчинен отсутствующему элементу в справочнике-родителе.

 

Подчинение изменяется следующим образом: начиная с верхнего

 

уровня вложенности подчиненного справочника его элементы

 

понижающихся уровней вложенности подчиняются тем же

 

элементам справочника-родителя, которым подчинены элементы

 

верхних уровней

Удалено подчинение

Справочник не является подчиненным, а справочник-родитель был

 

указан

Элемент XXX.

Реквизит содержит ссылку на отсутствующий в ИБ объект. В

Реквизит YYY

зависимости от режима работы, оставшаяся часть сообщения

 

может содержать информацию по диагностике или диагностике и

Элемент XXX.

исправлению ошибки

Реквизит YYY.

 

Значение на DDD

 

Проверка уникальности внутреннего идентификатора в справочнике

Сообщение Объяснение

Нарушена

уникальность

внутреннего идентификатора в справочнике. Можно исправить только вручную

Проверка содержимого документов

Сообщение

Объяснение

Номер XXX. Реквизит

Реквизит содержит ссылку на отсутствующий в ИБ объект. В

YYY

зависимости от режима работы оставшаяся часть сообщения может

 

содержать информацию по диагностике или диагностике и

 

исправлению ошибки

Проверка уникальности внутреннего идентификатора документов

Сообщение Объяснение

Обнаружено два (или более) документа с одинаковыми идентификаторами. Можно исправить только вручную.

Проверка содержимого движения регистров

Сообщение

Объяснение

Удалена запись о

Имелась запись о движении, вызванном отсутствующим

движении регистра

документом

Документ XXX не

Имелась запись о движении, вызванном не проведенным

проводился. Удалена

документом

запись о движении

 

регистра

 

Документ XXX.

Измерение регистра содержит ссылку на отсутствующий в ИБ

Измерение YYY

объект. В зависимости от режима работы оставшаяся часть

 

сообщения может содержать информацию по диагностике или

 

диагностике и исправлению ошибки

Проверка содержимого планов счетов

 

 

Сообщение

Объяснение

Не принадлежит ни

Неверно указана принадлежность к плану счетов

одному плану счетов

 

Удален признак

Была неверно указана принадлежность к метаданным

принадлежности к

 

метаданным

 

Изменен признак XXX

Свойства счета различались с указанными в метаданных

счета в соответствии с

 

метаданными

 

Не соответствует

Код счета не соответствовал маске плана счетов (формату,

маске плана счетов

определенному для данного плана счетов). Счет удаляется

Отсутствует родитель

Субсчет содержал ссылку на отсутствующий в информационной

 

базе счет-родитель. Такой субсчет удаляется

Изменен признак XXX

Счет и субсчет имели различные свойства. Признак XXX субсчета

 

устанавливается таким, как у его счета-родителя

Исправлен уровень

Для счета (субсчета) был указан неверный уровень. Запись об

 

уровне счета/субсчета исправлена по коду

Счет XXX. Реквизит

Реквизит содержит ссылку на отсутствующий в информационной

YYY

базе объект. В зависимости от режима работы оставшаяся часть

 

сообщения может содержать информацию по диагностике или

Счет XXX. Реквизит

диагностике и исправлению ошибки

YYY. Значение на

 

DDD

 

Изменен список

Конфликт состава субконто у счета и субсчета. Состав субсчета

субконто

приводится в соответствие с составом счета

Проверка уникальности внутреннего идентификатора счетов

 

 

Сообщение

Объяснение

Нарушена

 

уникальность

 

внутреннего

 

идентификатора

 

счетов. Исправляется

 

только вручную.

 

Проверка содержимого проводок

Сообщение

Объяснение

Проводка... —

Информационная база не содержала информации о документе

«висящая»

и/или операции, которому/которой принадлежит проводка (в

 

зависимости от настроек процедуры программа или создает

 

документ и/или операцию, или уничтожает проводку)

Документ XXX не

У документа, на который ссылается проводка, отсутствовал

имеет проводок

признак, что он имеет проводки. Такая проводка уничтожается

Неверный счет

Неверно указан счет дебета или кредита. Проводка уничтожается

Отсутствуют счета

Не указан ни один из счетов. Проводка уничтожается

 

 

Счета с различным

Проводка удаляется

признаком

 

забалансовости

 

Счета из разных

Проводка удаляется

планов счетов

 

Счет не имеет

Простая проводка в единственной корреспонденции содержит счет,

признака

не имеющий признака забалансовости. Проводка удаляется

забалансовости

 

Исправлены

Был конфликт между данными проводки и параметрами счетов

параметры проводки в

 

соответствии с

 

параметрами счетов

 

Счет XXX. Субконто

Субконто содержит ссылку на отсутствующий в информационной

YYY

базе объект. В зависимости от режима работы оставшаяся часть

 

сообщения может содержать информацию по диагностике или

 

диагностике и исправлению ошибки

Реквизит XXX

Реквизит содержит ссылку на отсутствующий в информационной

 

базе объект. В зависимости от режима работы оставшаяся часть

 

сообщения может содержать информацию по диагностике или

 

диагностике и исправлению ошибки

Проверка операций

 

 

 

Сообщение

Объяснение

Операция... —

Информационная база не содержит информации о документе,

«висящая»

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

 

работы, удаляется операция или создается документ

Документ XXX не

У документа, на который ссылается операция, отсутствует признак,

имеет операции

что он имеет операцию. Проводка удаляется

Изменена дата

Документ и операция имели различную дату или время

Изменено время

 

Исправлена

Была нарушена нумерация принадлежащих операции проводок

нумерация проводок

 

Обнулен дебет-счет

Главная проводка сложной проводки имела и дебетовую, и

 

кредитовую части

Обнулен кредит-счет

 

Сделана простой,

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]