Ситуация, когда после успешного «накатывания» конфигурации из файла .cf в базе 1С:ERP или «1С:Комплексная автоматизация» внезапно исчезают целые разделы интерфейса, является классической ловушкой для администраторов и разработчиков. В этой статье мы подробно разберем, почему команда «Загрузить конфигурацию из файла» может быть деструктивной, как восстановить пропавшие данные и какой механизм обновления следует использовать, чтобы избежать подобных проблем в будущем.
Для начала проанализируем, чем отличается операция «Загрузить конфигурацию из файла» от привычного «Сравнить, объединить с конфигурацией из файла». Когда мы используем полную загрузку, платформа 1С полностью замещает структуру метаданных текущей базы структурой из файла. При этом происходит подмена внутренних уникальных идентификаторов (UUID) объектов.
Если файл .cf был получен не из этой же информационной базы (или ее прямого предка/потомка), для системы это выглядит так: старые объекты (справочники, подсистемы, роли) были удалены, а вместо них созданы новые с теми же именами, но другими внутренними ссылками. Рассмотрим подробнее, к чему это приводит в тяжелых решениях на базе БСП (Библиотеки стандартных подсистем):
ИдентификаторыОбъектовМетаданных. На нем завязана вся логика прав доступа, видимости интерфейса и работы фоновых заданий. При полной загрузке связи между реальными метаданными и этим справочником разрываются.Первым делом выясним причину на логическом уровне. Часто разделы пропадают просто потому, что система «забыла», что те или иные подсистемы включены. Проанализируем настройки программы:
Если манипуляции с функциональными опциями не помогли, значит, проблема глубже — в справочнике идентификаторов метаданных. В современных конфигурациях этот справочник должен обновляться автоматически, но при «жесткой» загрузке .cf этот механизм может дать сбой. Разберем, как заставить систему пересчитать эти данные.
Самый надежный способ — запустить информационную базу в пользовательском режиме с параметром командной строки. Это принудительно инициирует процедуры обновления. В параметрах запуска (в окне выбора баз нажать «Изменить» -> «Далее» -> «Дополнительные параметры запуска») пропишем следующую команду:
/C ЗапуститьОбновлениеИнформационнойБазы
После запуска система выполнит все регламентные процедуры обновления, включая заполнение справочника ИдентификаторыОбъектовМетаданных. Это должно вернуть связи между подсистемами и интерфейсом.
Если доступа к параметрам запуска нет, мы можем воспользоваться программным вызовом из консоли кода или внешней обработки:
// Программное обновление справочника идентификаторов
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(Истина, Ложь);
В ERP права доступа и видимость разделов определяются профилями. При подмене конфигурации связи между ролями в профилях и объектами метаданных могут «биться». Посмотрим на пример решения этой ситуации:
Иногда проблема кроется не в базе, а на стороне клиента. Проанализируем ситуацию с кэшем. Если разделы пропали только у одного пользователя или на одном рабочем месте, выполним следующие действия:
Чтобы не сталкиваться с подобными «сюрпризами», разберем правильный алгоритм внесения изменений в рабочую базу 1С:ERP:
Конфигурация -> Сравнить, объединить с конфигурацией из файла. Это сохраняет UUID существующих объектов и позволяет контролировать, какие именно изменения вносятся.Конфигурация -> Поддержка -> Обновить конфигурацию. Это гарантирует правильную последовательность выполнения скриптов обновления данных.Загрузить конфигурацию из файла можно использовать только в одном случае: если вы загружаете .cf, выгруженный из ТОЙ ЖЕ САМОЙ базы (например, при переносе изменений из копии, которая была сделана с этого же оригинала и где идентификаторы объектов гарантированно совпадают).Важный момент: Если вы уже загрузили конфигурацию и данные (документы, справочники) начали «отваливаться» или ссылки стали «Объект не найден», немедленно восстановите базу из резервной копии. Загрузка «чужого» .cf может привести к необратимой порче ссылочной целостности данных, которую не всегда удается исправить даже тестированием и исправлением.
Подводя итог, отметим: в ERP интерфейс — это не просто набор картинок, а сложная динамическая система, зависящая от констант, прав и метаданных. Рассмотренные нами шаги по обновлению идентификаторов и проверке функциональных опций помогают в 90% случаев, если структура метаданных не была критически нарушена.