Почему не отображается меню Ввод на основании в режиме 1С:Предприятие и как это исправить

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Довольно часто программисты 1С сталкиваются с ситуацией, когда в конфигураторе на вкладке «Ввод на основании» все связи настроены, а в командной панели формы документа заветная кнопка «Создать на основании» (или соответствующее подменю) упорно не появляется — для этой задачи есть настройка ввода на основании без конфигуратора. Рассмотрим подробно причины этого поведения, разберем программные механизмы современных конфигураций и выясним, как вернуть недостающие команды в интерфейс.

Проверка базовых настроек метаданных и прав доступа

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

  1. Права доступа. Для того чтобы документ отобразился в меню «Ввод на основании», пользователю недостаточно иметь права только на создание целевого документа. Проверьте наличие прав на Просмотр и Интерактивное добавление для того объекта, который создается. Если у пользователя нет прав на просмотр метаданных целевого документа, платформа скроет команду автоматически.
  2. Функциональные опции. Проанализируем, не привязан ли целевой документ или сама команда к определенной функциональной опции — для этого есть анализ прав доступа и ограничений RLS. Если в константе, связанной с опцией, установлено значение Ложь, команда будет скрыта во всей системе. Проверьте свойство ФункциональныеОпции у документа-основания и документа-приемника.
  3. Свойство «Использовать стандартные команды». Перейдем в окно редактирования метаданных документа на вкладку «Основные». Если флажок Использовать стандартные команды снят, стандартное меню «Ввод на основании» не будет сформировано платформой автоматически.

Настройка командного интерфейса формы

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

Откроем форму документа в конфигураторе и перейдем на закладку Командный интерфейс. Здесь мы увидим разделы «Панель навигации» и «Панель действий». Нас интересует группа Создать на основании. Проверим колонку «Видимость» — если флажок снят, команда не появится в режиме предприятия. Обратите внимание, что видимость можно настраивать индивидуально для каждой роли. Убедитесь, что для роли вашего пользователя (например, «Полные права») флажок установлен.

Программное формирование меню в конфигурациях на базе БСП

В современных конфигурациях, таких как «1С:ERP», «Управление торговлей 11» или «BAS Бухгалтерия», управление интерфейсом часто передано подсистеме Библиотека стандартных подсистем (БСП). В этом случае стандартные механизмы платформы могут подменяться динамическим формированием команд. Рассмотрим, как это работает программно.

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


Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
    Если ПравоДоступа("Добавление", Метаданные.Документы.ПеремещениеТоваров) Тогда
        КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
        КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ПеремещениеТоваров.ПолноеИмя();
        КомандаСоздатьНаОсновании.Представление = ОбщегоНазначения.ПредставлениеОбъекта(Метаданные.Документы.ПеремещениеТоваров);
        КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
        КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьПеремещениеТоваров";
        
        Возврат КомандаСоздатьНаОсновании;
    КонецЕсли;
    Возврат Неопределено;
КонецФункции

Если в вашем документе используется БСП, необходимо найти процедуру ПриОпределенииКомандПодключенныхКОбъекту в модуле менеджера. Именно в ней прописывается логика, какие документы могут создаваться на основании текущего. Если вы добавили новый документ-приемник в метаданных, но не зарегистрировали его в этой процедуре, он не появится в меню «Создать на основании».

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

Влияние версии платформы и кэша

Иногда причина кроется не в коде, а в техническом состоянии окружения. Как показывает практика, старые релизы платформы 1С:Предприятие могут некорректно отрисовывать элементы управляемого интерфейса, особенно после обновления конфигурации. Выясним, что можно сделать в этом случае:

Использование расширений конфигурации

Проанализируем влияние расширений. Если вы работаете в базе, где установлены расширения, они могут перехватывать выполнение процедур модуля менеджера или изменять командный интерфейс формы. Если документ-основание находится в основной конфигурации, а документ-приемник — в расширении, убедитесь, что в расширение добавлены все необходимые права и правильно прописаны связи. Иногда требуется явно «пробросить» команду в командный интерфейс формы именно внутри расширения.

Резюме по решению проблемы

Подводя итог, если вы не видите кнопку «Ввод на основании», пройдите по следующему чек-листу:

  1. Проверьте права доступа на целевой объект (Чтение + Просмотр + Интерактивное добавление) — для диагностики подойдет сравнение и анализ прав доступа пользователей.
  2. Убедитесь, что включены все необходимые функциональные опции.
  3. В конфигураторе проверьте Командный интерфейс формы и видимость команд по ролям.
  4. Если конфигурация на БСП — проверьте Модуль менеджера и процедуру регистрации команд, после чего обновите базу с параметром /С ЗапуститьОбновлениеИнформационнойБазы.
  5. В крайнем случае — обновите платформу и очистите локальный кэш пользователя.

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

← На главную