При обслуживании сильно доработанных, нетиповых конфигураций процесс обновления может занимать часы или даже дни. Возникает логичный вопрос: можно ли развернуть резервную копию рабочей базы, спокойно обновить и протестировать конфигурацию на ней, а затем просто перенести полученный файл конфигурации (.cf) в рабочую базу через меню «Конфигурация — Загрузить конфигурацию из файла»? Разберем эту методику детально, проанализируем технические нюансы платформы 1С:Предприятие 8, возможные риски и правила безопасного обновления.
Рассмотрим типовой сценарий, с которым сталкивается разработчик нетиповой конфигурации. Если выполнять сравнение и объединение конфигураций непосредственно на боевой базе, то на время анализа, разрешения конфликтов и тестирования придется либо останавливать работу пользователей, либо рисковать стабильностью системы. Чтобы избежать длительного простоя, применяют следующий рабочий процесс:
.cf.F7).Такой подход действительно широко применяется и существенно сокращает технологическое окно простоя рабочей базы, однако требует строгого соблюдения ряда технических правил.
Выясним причину, по которой некоторые специалисты категорически предостерегают от использования команды «Загрузить конфигурацию из файла». Дело заключается в механизме идентификации метаданных платформой 1С.
Платформа сопоставляет объекты метаданных (справочники, документы, реквизиты, табличные части) с реальными таблицами и полями в базе данных СУБД не по строковым именам (синонимам или идентификаторам), а по внутренним уникальным идентификаторам — UUID.
Проанализируем опасную ситуацию:
UUID.UUID, система посчитает, что старый объект был удален, а новый — создан.Главное правило контроля: при нажатии F7 в окне «Реорганизация информации» всегда внимательно проверяем список планируемых изменений. Если в списке присутствуют непредусмотренные операции удаления реквизитов или таблиц, принимать изменения нельзя ни в коем случае. Это свидетельствует о расхождении внутренних идентификаторов.
Разберем различия между созданием копии через средства СУБД и выгрузкой в файл .dt. Использование дампа СУБД (SQL backup) является наиболее надежным и быстрым вариантом для клиент-серверных баз. Выгрузка и последующая загрузка базы через файл .dt на больших объемах данных занимает значительно больше времени и создает дополнительную нагрузку на дисковую подсистему. Однако с точки зрения структуры метаданных и сохранения UUID объектов оба способа являются валидными копиями исходной базы, если в процессе работы структура не подвергалась независимым правкам.
Критически важно: пока на тестовой копии идет подготовка релиза, в рабочей базе категорически запрещено менять состав метаданных (добавлять реквизиты, справочники, изменять структуру данных). Если изменения вносятся и в рабочую базу, и в копию параллельно, то при последующей загрузке .cf произойдет рассинхронизация.
Обратим внимание на работу Библиотеки стандартных подсистем (БСП). Если рабочая база отстает от целевого релиза на несколько версий, накатывание одного итогового .cf не освобождает от процедур обновления данных:
Удалить..., которые разработчики типовой конфигурации уже окончательно вырезали в финальной версии. Это приведет к аварийной остановке обновления данных. Для типовых и околотиповых конфигураций переходы следует выполнять по цепочке рекомендованных релизов.Рассмотрим способы, позволяющие минимизировать риски потери данных и сократить время простоя:
UUID.Подведем итог: обновлять доработанную базу через подготовку .cf на тестовой копии допустимо и эффективно при условии, что в рабочей базе параллельно не менялась структура метаданных, перед применением изменений в окне реструктуризации проверено отсутствие случайных удалений колонок, а перед началом работ обязательно создан свежий бэкап рабочей базы данных.