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