Почему в 1С при запуске открывается интерфейс УСН вместо Полного и как это исправить?

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

При доработке конфигураций на базе обычных форм (например, 1С:Бухгалтерия предприятия 2.0) разработчики часто сталкиваются с ситуацией: в дереве метаданных создан новый справочник или документ, он добавлен в подменю интерфейса Полный, а в свойствах пользователя информационной базы также назначен основной интерфейс Полный. Однако после запуска программы в режиме 1С:Предприятие новый объект в главном меню отсутствует. При этом, если переключить интерфейс вручную через меню Сервис — Переключить интерфейс — Полный интерфейс, пункт сразу же появляется.

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

Причина автоматической смены интерфейса при запуске

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

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


// Заменим интерфейс УСН8
#Если Клиент Тогда
    Если Константы.ПрименяемыеСистемыНалогообложения.Получить() = Перечисления.ПрименяемыеСистемыНалогообложения.УпрощеннаяСистемаНалогообложения Тогда
        ГлавныйИнтерфейс.Полный.Видимость = Ложь;
        ГлавныйИнтерфейс.Бухгалтерский.Видимость = Ложь;
        ГлавныйИнтерфейс.УСН.Видимость = Истина;
        // {УчетДоходовИРасходовИП
        ГлавныйИнтерфейс.НДФЛИП.Видимость = Ложь;
    ИначеЕсли Константы.ПрименяемыеСистемыНалогообложения.Получить() = Перечисления.ПрименяемыеСистемыНалогообложения.НДФЛИндивидуальногоПредпринимателя Тогда
        ГлавныйИнтерфейс.Полный.Видимость = Ложь;
        ГлавныйИнтерфейс.Бухгалтерский.Видимость = Ложь;
        ГлавныйИнтерфейс.УСН.Видимость = Ложь;
        ГлавныйИнтерфейс.НДФЛИП.Видимость = Истина;
        // }УчетДоходовИРасходовИП
    КонецЕсли;
#КонецЕсли

Таким образом, если в информационной базе применяется Упрощенная система налогообложения (УСН) или учет доходов и расходов индивидуального предпринимателя (НДФЛ ИП), система принудительно скрывает интерфейсы Полный и Бухгалтерский, делая активным интерфейс УСН или НДФЛИП соответственно. Настройки конкретного пользователя в конфигураторе при этом игнорируются.

Способ 1. Добавление объекта во все необходимые интерфейсы (Рекомендуемый)

Если конфигурация находится на поддержке или требуется сохранить типовой механизм разделения интерфейсов по налоговым режимам, правильнее всего включить добавленный объект во все интерфейсы, с которыми могут работать пользователи.

Выполним следующие шаги:

  1. Откроем ветку Общие — Интерфейсы в дереве метаданных Конфигуратора.
  2. Поочередно откроем интерфейсы Полный, Бухгалтерский, УСН и НДФЛИП.
  3. В нужные подсистемы и подменю (например, меню «Склад» или «Операции») добавим команду вызова созданного справочника или документа.
  4. Сохраним и обновим конфигурацию базы данных.

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

Способ 2. Корректировка модуля обычного приложения

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

Разберем варианты изменения кода в процедуре ПриНачалеРаботыСистемы():

  1. Полное отключение автоматической подмены: Закомментируем блок переопределения видимости интерфейсов. Тогда система будет применять основной интерфейс, указанный для каждого пользователя в списке пользователей информационной базы.
  2. Проверка роли пользователя: Добавим условие, проверяющее полные права. Например:
    
    Если НЕ РольДоступна("ПолныеПрава") Тогда
        // Типовой код переключения интерфейса на УСН / НДФЛ ИП
        Если Константы.ПрименяемыеСистемыНалогообложения.Получить() = Перечисления.ПрименяемыеСистемыНалогообложения.УпрощеннаяСистемаНалогообложения Тогда
            ГлавныйИнтерфейс.Полный.Видимость = Ложь;
            ГлавныйИнтерфейс.Бухгалтерский.Видимость = Ложь;
            ГлавныйИнтерфейс.УСН.Видимость = Истина;
        КонецЕсли;
    КонецЕсли;
    

Способ 3. Изменение настроек параметров учета

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

  1. Перейдем в режим 1С:Предприятие.
  2. Откроем меню Предприятие — Настройка параметров учета.
  3. На закладке Системы налогообложения укажем применение всех систем налогообложения (или общей системы).

В этом случае значение константы ПрименяемыеСистемыНалогообложения изменится, и условие принудительной установки интерфейса УСН перестанет выполняться при старте программы.

Способ 4. Использование общего интерфейса

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

← На главную