При обновлении конфигурации «1С:Управление нашей фирмой» с редакции 1.5 на редакцию 1.6 администраторы и разработчики нередко сталкиваются с ситуацией, когда после успешного завершения реструктуризации из командного интерфейса полностью исчезают основные разделы: «Продажи», «Закупки», «Компания», «Настройки». При этом остаются видны лишь некоторые блоки (например, «Работы», «Производство» или «Зарплата»), а в настройках панели разделов пропавшие пункты отсутствуют даже у пользователя с полными административными правами.
Разберем детально, почему возникает такое поведение платформы и как быстро восстановить стандартный интерфейс программы.
Причины скрытия разделов интерфейса
Проанализируем архитектуру командного интерфейса в «1С:Предприятие 8.3». Отображение подсистем и команд зависит не только от назначенных ролей, но и от функциональных опций. В платформе функциональные опции имеют безусловный приоритет: если функциональная опция выключена, привязанные к ней объекты и подсистемы полностью исключаются из интерфейса, независимо от прав текущего пользователя.
При переходе между мажорными версиями 1.5 и 1.6 состав функциональных опций и структура метаданных кардинально меняются. Основные причины сбоя:
*.cf) без последовательного входа в режим «1С:Предприятие» на промежуточных релизах, специальные процедуры инициализации констант не успевают отработать.ЭтоОбычноеПриложение (или аналогичных настроек интерфейса). Если значение константы не установлено в Истина, платформа считает интерфейс отключенным.Рассмотрим самое быстрое и безопасное решение. Если конфигурация уже обновлена, структуру данных менять не требуется — достаточно принудительно установить значение константы и обновить системный кэш значений.
Создадим новую внешнюю обработку, добавим команду на форму и выполним следующий код:
&НаКлиенте
Процедура ВосстановитьИнтерфейс(Команда)
ВосстановитьИнтерфейсНаСервере();
ПоказатьОповещениеПользователя("Готово", , "Константы обновлены, перезапустите сеанс.");
КонецПроцедуры
&НаСервере
Процедура ВосстановитьИнтерфейсНаСервере()
// Проверяем и устанавливаем значение константы
Константы.ЭтоОбычноеПриложение.Установить(Истина);
// Сбрасываем кэш повторно используемых значений платформы
ОбновитьПовторноИспользуемыеЗначения();
КонецПроцедуры
После выполнения обработки закройте сеанс «1С:Предприятие» и запустите базу заново. Командный интерфейс перестроится, и все стандартные разделы вернутся на панель.
Если вы только планируете обновление или восстанавливаете базу из резервной копии, разберем правильный регламент перехода между версиями:
*.cfu или *.cf) обязательно запускайте базу в пользовательском режиме от имени пользователя с правами администратора.Если программная установка отдельной константы не решила проблему целиком (например, не отображаются специфические настройки подсистем), проанализируем состояние обработчиков миграции БСП:
ОбработчикиОбновления (или форму «Результаты обновления программы» в разделе администрирования).
ОбновлениеИнформационнойБазы.ВыполнитьОбновление();
ХранилищеСистемныхНастроек.