Рассмотрим нестандартную, но довольно неприятную ситуацию, с которой можно столкнуться в конфигурации 1С:Бухгалтерия предприятия редакции 2.0 на обычных формах. Пользователь заходит в базу (часто под неявным пользователем «Не авторизован» или под вновь созданным профилем с полными правами), и замечает, что в интерфейсе «Полный» отсутствуют некоторые привычные пункты меню. При этом, если вручную переключить интерфейс через главное меню (Сервис -> Переключить интерфейс -> Полный), все пропавшие пункты возвращаются на место.
Проанализируем ситуацию подробнее. Стандартные методы диагностики и лечения базы, такие как очистка кэша, тестирование и исправление (ТИИ), утилита chdbfl, выгрузка-загрузка базы через конфигуратор и даже обновление релиза конфигурации, в данном случае не приносят результата. Выясним причину такого поведения и разберем по шагам рабочие методы восстановления интерфейса.
Если перенос данных через XML перетягивает за собой и саму проблему, это подтверждает, что сбой кроется внутри данных самой информационной базы. Выделим основные причины:
SystemSettings, а также в регистрах сведений («Сохраненные настройки», «Настройки пользователей»). Платформа не предоставляет штатных визуальных средств для глубокой чистки внутренних таблиц.Рассмотрим несколько проверенных способов устранения этого сбоя, от самых простых пользовательских до вмешательства через конфигуратор.
Посмотрим на самый безопасный и быстрый метод сброса кэшированных интерфейсных настроек внутри самой базы:
Если первый метод не помог, проанализируем записи регистров. Через меню Операции -> Регистры сведений откройте регистры Сохраненные настройки и Настройки пользователей. Найдите и удалите все записи, связанные с настройками интерфейса, расположения панелей или привязанные к пользователю по умолчанию.
Для глубокой очистки внутренних системных таблиц напишем небольшую внешнюю обработку. Этот код принудительно удаляет сохраненные системные настройки для конкретного пользователя. Создайте новую обработку, добавьте кнопку и в ее обработчике разместите следующий код:
ИмяПользователя = ИмяПользователя(); // Или укажите пустую строку "" для "Не авторизован"
ХранилищеСистемныхНастроек.Удалить(,, ИмяПользователя);
ХранилищеНастроекДанныхФорм.Удалить(,, ИмяПользователя);
Сообщить("Настройки пользователя успешно очищены!");
Запустите обработку под нужным профилем. Для пользователя «Не авторизован» может потребоваться передать в параметры пустое значение имени.
Настройки главного меню обычных форм пишутся в специфический служебный файл 1cv8cmn.pfl. Даже если вы чистили основной кэш, этот файл мог остаться. Перейдите в системную папку профиля Windows: AppData\Roaming\1C\1Cv82\Идентификатор_Вашей_Базы и удалите данный файл вручную.
Если проблема сидит слишком глубоко, применим методы принудительного перестроения настроек.
Перезапись параметров учета. Зайдите в настройки параметров учета и учетную политику. Снимите и заново установите галочки, отвечающие за виды деятельности (розничная торговля, производство и т.д.). Запишите изменения. Алгоритм инициализации меню при следующем запуске может корректно перестроить видимость пунктов.
Копирование интерфейса в конфигураторе. Откройте базу в конфигураторе, найдите в дереве метаданных интерфейс Полный. Скопируйте его и назовите, например, ПолныйНовый. Назначьте этот новый интерфейс основным для роли Полные права. Платформа воспримет его как абсолютно новый объект метаданных и создаст для него чистые рабочие настройки с нуля, игнорируя старые ошибки.