Почему в 1С:Бухгалтерия 3.0 после обновления пропал журнал «Деньги» и разделы «Банк и касса»?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

После планового обновления конфигурации 1С:Бухгалтерия предприятия 3.0 на релиз 3.0.63.20 (и смежные версии данной ветки) многие специалисты столкнулись с критической ситуацией: из интерфейса программы исчезли привычные разделы «Банк и касса», а также перестал открываться журнал Деньги. Проблема усугубляется тем, что даже наличие у пользователя роли ПолныеПрава не решает вопрос, а объекты остаются невидимыми даже через меню «Все функции» (Функции для технического специалиста).

В данной статье мы подробно разберем причины такого поведения системы, проанализируем внутренние механизмы платформы, которые приводят к ошибке, и рассмотрим пошаговое решение проблемы.

Разберем причину: архитектурные изменения интерфейса

Начиная с версий 3.0.60+, разработчики фирмы «1С» начали активное внедрение концепции разделения интерфейса на «Полный» и «Простой». «Простой» интерфейс ориентирован на малый бизнес и предпринимателей, которым не требуется весь громоздкий функционал системы. Однако реализация этого разделения затронула глубокие механизмы конфигурации, завязанные на функциональных опциях и константах.

Проанализируем ситуацию: в типовой конфигурации видимость журналов БанковскиеВыписки и КассовыеДокументы теперь жестко контролируется через программный код в модуле менеджера журнала Деньги. Система проверяет состояние специальных констант интерфейса. Если в вашей базе (особенно если она была доработана или обновлялась с очень старых версий) эти константы не заполнены или находятся в неопределенном состоянии, механизм отрисовки интерфейса просто блокирует вывод команд.

Анализируем программный механизм ошибки

Выясним, почему объекты пропадают даже из списка всех функций. В модуле менеджера журнала Деньги реализован обработчик события ОбработкаПолученияФормы. Рассмотрим упрощенную логику того, что происходит в момент обращения к журналу:

  1. Система инициирует открытие формы списка.
  2. Срабатывает процедура ОбработкаПолученияФормы.
  3. Код анализирует настройки текущего интерфейса (через функциональные опции, связанные с константами ИнтерфейсТакси, ИнтерфейсТаксиПростой).
  4. Если настройки интерфейса не определены (все константы имеют значение Ложь), обработчик возвращает пустые параметры или устанавливает отказ в получении формы.

Это объясняет, почему стандартные методы исправления, такие как очистка кэша или сброс настроек пользователя, в данном случае не приносят результата. Проблема кроется не в локальных данных пользователя, а в глобальном состоянии констант базы данных.

Вариант 1: Установка констант через интерфейс

Самый простой способ исправить ситуацию — заставить систему корректно инициализировать настройки интерфейса. Для этого выполним следующие действия:

  1. Перейдем в раздел Администрирование, затем в Интерфейс (если этот раздел доступен).
  2. Попробуем переключить интерфейс с «Полного» на «Простой» и обратно. Это действие инициирует программную запись необходимых констант.
  3. Если разделы «Банк» и «Касса» не появились, проверим настройки функциональности (Главное — Функциональность). Иногда требуется временно снять и снова установить флаг использования банковских и кассовых документов.

Вариант 2: Программная установка значений констант

Если ваша конфигурация значительно доработана и стандартные диалоги настройки интерфейса скрыты или работают некорректно, мы можем установить нужные значения программно. Нам необходимо убедиться, что константа ИнтерфейсТаксиПростой установлена в значение Истина (или ИнтерфейсТакси, в зависимости от желаемого режима).

Рассмотрим пример кода, который можно запустить через внешнюю обработку для исправления ситуации:


Процедура ИсправитьИнтерфейс() Экспорт
    // Устанавливаем основную константу простого интерфейса
    Константы.ИнтерфейсТаксиПростой.Установить(Истина);
    
    // Обновляем параметры сеанса и функциональные опции
    ПараметрыСеанса.КлиентскийИнтерфейсУстановлен = Ложь;
    ОбновитьПовторноИспользуемыеЗначения();
    
    Сообщить("Настройки интерфейса успешно обновлены. Перезайдите в программу.");
КонецПроцедуры

Важный момент: В некоторых случаях в доработанных базах программно отключается использование интерфейса «Такси» в модуле управляемого приложения. Проверьте, чтобы в процедуре ПриНачалеРаботыСистемы не было жестких блокировок, которые затирают значения этих констант.

Почему не помогают «Полные права»?

Рассмотрим важный технический нюанс. В 1С права доступа (роли) определяют разрешение на действие. Однако программный код в обработчиках событий (таких как ОбработкаПолученияФормы или ПриСозданииНаСервере) может накладывать дополнительные условия видимости. Если код считает, что функционал не должен отображаться в текущем режиме интерфейса, он скроет его даже от администратора. В релизе 63.20 разработчики усилили связь между константами интерфейса и видимостью базовых журналов, что и привело к массовым обращениям пользователей.

Проанализируем связь с функциональными опциями

Посмотрим на объект ФункциональныеОпции в дереве метаданных. Видимость команд в подсистемах «Банк» и «Касса» теперь напрямую зависит от опции ИспользоватьЖурналДеньги. Эта опция, в свою очередь, привязана к алгоритму, который анализирует, какой интерфейс выбран пользователем.

Если вы столкнулись с тем, что даже после установки констант формы не открываются из внешних отчетов на СКД, это подтверждает нашу теорию: механизм ОбработкаПолученияФормы в модуле менеджера журнала Деньги блокирует выборку данных или отображение результата, так как считает контекст вызова невалидным для «неопределенного» интерфейса.

Резюме и рекомендации

Подведем итоги нашего исследования. Если после обновления на БП 3.0.63.20 пропали банковские выписки:

  1. Не паникуйте: данные в базе сохранены, проблема носит чисто визуальный (интерфейсный) характер.
  2. Проверьте константы: основным «виновником» является ИнтерфейсТаксиПростой. Установите её в Истина.
  3. Обновите платформу: убедитесь, что вы используете рекомендуемую версию платформы (не ниже 8.3.12 для стабильной работы новых механизмов интерфейса).
  4. Проверьте расширения: если у вас установлены расширения конфигурации, они могут конфликтовать с новыми процедурами модуля менеджера. Попробуйте временно отключить их для диагностики.

В последующих патчах (начиная с 3.0.63.22) разработчики 1С внесли корректировки, которые делают систему более устойчивой к отсутствию настроек интерфейса, однако понимание внутренней логики работы ОбработкаПолученияФормы поможет вам быстро решать подобные задачи в будущем, не дожидаясь официальных исправлений.

← На главную