При обновлении конфигураций на базе 1С:Предприятие 8.3, особенно таких сложных, как Бухгалтерия государственного учреждения (БГУ) 2.0, пользователи нередко сталкиваются с ситуацией, когда в одной из областей данных пропадают целые разделы меню. Проблема усугубляется тем, что поиск по интерфейсу также не выдает результатов, хотя в других областях базы данных все отображается корректно. Рассмотрим подробно причины возникновения этой ошибки и разберем пошагово методы её устранения.
Для начала проанализируем ситуацию. Если права у пользователя в разных областях одинаковые, но интерфейс различается, проблема может скрываться в трех плоскостях: повреждение справочника Профили групп доступа, некорректное состояние функциональных опций или незавершенное отложенное обновление данных. В БГУ 2.0 видимость разделов жестко привязана к ролям, входящим в профиль, и к константам, отвечающим за включение тех или иных подсистем.
Часто после автоматического обновления предопределенные профили (например, "Администратор") могут потерять связь с ролями конфигуратора или вовсе стать "пустыми" элементами. Профиль в 1С — это не просто название, а набор ролей, определенных в метаданных. Выясним, как восстановить этот список программно.
Попробуем запустить стандартную процедуру обновления поставляемых профилей. Для этого создадим внешнюю обработку и выполним следующий код:
&НаСервере
Процедура ОбновитьПоставляемыеПрофилиНаСервере()
Справочники.ПрофилиГруппДоступа.ОбновитьПоставляемыеПрофили();
КонецПроцедуры
Если стандартный метод не помогает, проанализируем более глубокий подход. Иногда требуется сначала "отвязать" текущий некорректный профиль от предопределенных данных, чтобы система могла создать новый, правильный экземпляр. Рассмотрим пример кода, который очищает имя предопределенных данных у существующего профиля и инициирует создание нового:
&НаСервере
Процедура ИсправитьПрофильАдминистратораНаСервере()
// Находим проблемный профиль
ПрофильОбъект = Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию("Администратор").ПолучитьОбъект();
Если ПрофильОбъект <> Неопределено Тогда
// Снимаем признак предопределенности
ПрофильОбъект.ИмяПредопределенныхДанных = "";
ПрофильОбъект.ОбменДанными.Загрузка = Истина;
ПрофильОбъект.Записать();
// Рекомендуется пометить на удаление или удалить, если нет ссылок
// ПрофильОбъект.Удалить();
КонецЕсли;
// Вызываем принудительное создание поставляемых профилей
Справочники.ПрофилиГруппДоступа.ОбновитьПоставляемыеПрофили();
КонецПроцедуры
Если автоматическое обновление не восстанавливает нужные роли в профиле (например, отсутствует роль Администратор системы), можно создать профиль вручную через код, указав точный ИдентификаторПоставляемыхДанных. Это гарантирует, что система распознает его как системный.
Разберем пример создания элемента справочника ПрофилиГруппДоступа с нужным GUID:
НовыйЭлемент = Справочники.ПрофилиГруппДоступа.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Администратор";
НовыйЭлемент.ИмяПредопределенныхДанных = "Администратор";
// Используем уникальный идентификатор для БСП
НовыйЭлемент.ИдентификаторПоставляемыхДанных = Новый УникальныйИдентификатор("6c4b0307-43a4-4141-9c35-3dd7e9586d41");
НовыйЭлемент.Записать();
// После этого обязательно запускаем обновление
Справочники.ПрофилиГруппДоступа.ОбновитьПоставляемыеПрофили();
После выполнения этого кода обязательно зайдите в справочник и проверьте табличную часть профиля. В ней должны появиться две критически важные роли: Полные права и Администратор системы. Именно отсутствие второй роли часто приводит к "обрезанному" интерфейсу в режиме Такси.
Если с правами всё в порядке, а разделов всё равно нет, проанализируем состояние функциональных опций. В 1С:БГУ 2.0 видимость почти каждого раздела (Налоги, Учет запасов, Обязательства) зависит от того, включена ли соответствующая опция в настройках параметров учета.
Рассмотрим, что нужно сделать:
В современных версиях БГУ обновление состоит из двух этапов. Первый этап проходит при запуске, а второй — в фоновом режиме. Если фоновые задания по обработке данных прервались с ошибкой, интерфейс может отображаться некорректно.
Посмотрим на последовательность действий для проверки:
Если проблема сохраняется только у конкретного пользователя или в конкретной области, проанализируем влияние кэша метаданных. Кэш может хранить старую структуру интерфейса, которая конфликтует с обновленной конфигурацией.
Выполним следующие шаги:
/ClearCache.Для восстановления видимости разделов в БГУ 2.0 мы рекомендуем действовать последовательно: сначала убедиться в наличии роли Администратор системы в профиле пользователя, затем принудительно обновить поставляемые профили через программный вызов, и в завершение проверить включение функциональных опций в настройках учета. Как правило, сочетание обновления профилей и переподключения функциональных опций решает проблему в 90% случаев.