После планового обновления конфигурации 1С:Бухгалтерия предприятия 3.0 на релиз 3.0.63.20 (и смежные версии данной ветки) многие специалисты столкнулись с критической ситуацией: из интерфейса программы исчезли привычные разделы «Банк и касса», а также перестал открываться журнал Деньги. Проблема усугубляется тем, что даже наличие у пользователя роли ПолныеПрава не решает вопрос, а объекты остаются невидимыми даже через меню «Все функции» (Функции для технического специалиста).
В данной статье мы подробно разберем причины такого поведения системы, проанализируем внутренние механизмы платформы, которые приводят к ошибке, и рассмотрим пошаговое решение проблемы.
Начиная с версий 3.0.60+, разработчики фирмы «1С» начали активное внедрение концепции разделения интерфейса на «Полный» и «Простой». «Простой» интерфейс ориентирован на малый бизнес и предпринимателей, которым не требуется весь громоздкий функционал системы. Однако реализация этого разделения затронула глубокие механизмы конфигурации, завязанные на функциональных опциях и константах.
Проанализируем ситуацию: в типовой конфигурации видимость журналов БанковскиеВыписки и КассовыеДокументы теперь жестко контролируется через программный код в модуле менеджера журнала Деньги. Система проверяет состояние специальных констант интерфейса. Если в вашей базе (особенно если она была доработана или обновлялась с очень старых версий) эти константы не заполнены или находятся в неопределенном состоянии, механизм отрисовки интерфейса просто блокирует вывод команд.
Выясним, почему объекты пропадают даже из списка всех функций. В модуле менеджера журнала Деньги реализован обработчик события ОбработкаПолученияФормы. Рассмотрим упрощенную логику того, что происходит в момент обращения к журналу:
ОбработкаПолученияФормы.ИнтерфейсТакси, ИнтерфейсТаксиПростой).Ложь), обработчик возвращает пустые параметры или устанавливает отказ в получении формы.Это объясняет, почему стандартные методы исправления, такие как очистка кэша или сброс настроек пользователя, в данном случае не приносят результата. Проблема кроется не в локальных данных пользователя, а в глобальном состоянии констант базы данных.
Самый простой способ исправить ситуацию — заставить систему корректно инициализировать настройки интерфейса. Для этого выполним следующие действия:
Если ваша конфигурация значительно доработана и стандартные диалоги настройки интерфейса скрыты или работают некорректно, мы можем установить нужные значения программно. Нам необходимо убедиться, что константа ИнтерфейсТаксиПростой установлена в значение Истина (или ИнтерфейсТакси, в зависимости от желаемого режима).
Рассмотрим пример кода, который можно запустить через внешнюю обработку для исправления ситуации:
Процедура ИсправитьИнтерфейс() Экспорт
// Устанавливаем основную константу простого интерфейса
Константы.ИнтерфейсТаксиПростой.Установить(Истина);
// Обновляем параметры сеанса и функциональные опции
ПараметрыСеанса.КлиентскийИнтерфейсУстановлен = Ложь;
ОбновитьПовторноИспользуемыеЗначения();
Сообщить("Настройки интерфейса успешно обновлены. Перезайдите в программу.");
КонецПроцедуры
Важный момент: В некоторых случаях в доработанных базах программно отключается использование интерфейса «Такси» в модуле управляемого приложения. Проверьте, чтобы в процедуре ПриНачалеРаботыСистемы не было жестких блокировок, которые затирают значения этих констант.
Рассмотрим важный технический нюанс. В 1С права доступа (роли) определяют разрешение на действие. Однако программный код в обработчиках событий (таких как ОбработкаПолученияФормы или ПриСозданииНаСервере) может накладывать дополнительные условия видимости. Если код считает, что функционал не должен отображаться в текущем режиме интерфейса, он скроет его даже от администратора. В релизе 63.20 разработчики усилили связь между константами интерфейса и видимостью базовых журналов, что и привело к массовым обращениям пользователей.
Посмотрим на объект ФункциональныеОпции в дереве метаданных. Видимость команд в подсистемах «Банк» и «Касса» теперь напрямую зависит от опции ИспользоватьЖурналДеньги. Эта опция, в свою очередь, привязана к алгоритму, который анализирует, какой интерфейс выбран пользователем.
Если вы столкнулись с тем, что даже после установки констант формы не открываются из внешних отчетов на СКД, это подтверждает нашу теорию: механизм ОбработкаПолученияФормы в модуле менеджера журнала Деньги блокирует выборку данных или отображение результата, так как считает контекст вызова невалидным для «неопределенного» интерфейса.
Подведем итоги нашего исследования. Если после обновления на БП 3.0.63.20 пропали банковские выписки:
ИнтерфейсТаксиПростой. Установите её в Истина.В последующих патчах (начиная с 3.0.63.22) разработчики 1С внесли корректировки, которые делают систему более устойчивой к отсутствию настроек интерфейса, однако понимание внутренней логики работы ОбработкаПолученияФормы поможет вам быстро решать подобные задачи в будущем, не дожидаясь официальных исправлений.