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