Основная страница

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


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

Конфигурация программ семейства «1С:Предприятие» хранится в одном файле 1CV7.MD в каталоге информационной базы данных. При работе в конфигураторе для хранения временной копии конфигурации программа использует каталог MS Windows для хранения временных файлов.

При нехватке места на соответствующем диске может выдаваться предупреждение.

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

Если метаданные не изменялись, а конфигурация изменена, то при сохранении происходит просто перезапись файла конфигурации.

Если метаданные изменялись, программа переходит к процедуре реструктуризации данных.

Опишем последовательность выполнения данной процедуры.

1.      Для проведения реструктуризации создается каталог NEW_STRU, подчиненный каталогу информационной базы (если он еще не существует).

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

3.      В каталоге NEW_STRU создастся файл словаря данных 1CV7.DD, соответствующий новой структуре метаданных. Файл 1CV7.DD содержит описание структур данных и не должен изменяться пользователем.

4.      Выполняется попытка открыть всю существующую информационную базу в основном каталоге, при этом, если отсутствует файл 1CV7.DD, то он создастся. Если какие-либо файлы информационной базы отсутствуют, они создаются.

5.      Выполняется сравнение старых и новых метаданных. Изменения, не влияющие на структуру и состав данных, не анализируются и не отмечаются в списке изменений.

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

При этом в файле RESTRUCT.LOG могут накапливаться сообщения: например, если при преобразовании типа значения преобразование не может быть выполнено однозначно.

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

7.      После выполнения всех действий по реструктуризации выводится диалог со списком сделанных изменений.

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

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

При нажатии кнопки «Принять» продолжается процедура реструктуризации.

8.      В каталог NEW_STRU записывается новый файл 1CV7.MD.

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

9.      Далее выполняется перенос всех файлов в основной каталог.

Начало данного процесса отмечается в протоколе реструктуризации строкой «Copy new files to main directory progress…». Окончание данного процесса отмечается в протоколе строкой «Copy new files to main directory complete…».

Таким образом:

·        если процесс перезаписи еще не начинался, то все данные в основном каталоге являются корректными и соответствуют состоянию до изменения конфигурации;

·        если процесс перезаписи закончился, то все данные в основном каталоге являются корректными и соответствуют сделанным изменениям в конфигурации;

·        если перезапись началась и не закончилась, то все измененные файлы в корректном виде находятся в каталоге NEW_STRU и для приведения системы в рабочее состояние их необходимо переписать в основной каталог.

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

Кроме того, при проведении реструктуризации система диагностирует некоторые изменения, которые требует дополнительного пересчета информации. Например, реквизиту многострочной части документа назначен признак «Итог по колонке». Подобного рода действия не влекут изменений в структуре данных и обрабатываются системой следующим образом.

В процессе реструктуризации при анализе изменений в метаданных при обнаружении подобных изменений они записываются в файл 1SRECALC.CMD. При перезаписи сделанных изменений в основной каталог данный файл также переписывается. После перезаписи, если данный файл содержит информацию о необходимости пересчета, система выполняет нужные действия, после чего данный файл удаляется из основного каталога. Также анализ наличия такого файла выполняется при входе в Конфигуратор для отработки варианта сбоя в процессе пересчета или реструктуризации. В этом случае также выполняются необходимые действия и файл также удаляется.






Перейти  к оглавлению: Конфигурирование и администрирование