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

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

При доработке конфигураций 1С (в частности, типовых решений на базе Библиотеки стандартных подсистем — 1С:Управление торговлей, 1С:ERP, 1С:Комплексная автоматизация) разработчики часто сталкиваются с ситуацией: в свойствах нового объекта метаданных указан ввод на основании определенных документов, в формах самих документов и некоторых списков подменю «Создать на основании» появляется, а в конкретной форме списка (например, «Поступление товаров и услуг» / «Приобретение товаров и услуг») кнопка отсутствует.

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

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

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

Способ 1. Программная регистрация через подсистему БСП «Создание на основании»

Рассмотрим правильный подход для типовых конфигураций на БСП. Этот способ исключает дублирование кнопок в интерфейсе и гарантирует отображение команды как в документах, так и в любых списках и журналах.

Разберем по шагам реализацию этого механизма:

  1. Шаг 1. Добавление экспортной функции в модуль менеджера создаваемого объекта. Откроем модуль менеджера нашего справочника (или документа) и добавим функцию подключения команды:
    
    Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
        
        Если ПравоДоступа("Добавление", Метаданные.Справочники.Справочник) Тогда
            Команда = КомандыСозданияНаОсновании.Добавить();
            Команда.Менеджер = Метаданные.Справочники.Справочник.ПолноеИмя();
            Команда.Представление = НСтр("ru = 'Справочник'");
            Возврат Команда;
        КонецЕсли;
        
        Возврат Неопределено;
        
    КонецФункции
    
  2. Шаг 2. Подключение команды в модуле менеджера документа-основания. В модуле менеджера документа (например, Документ.ПриобретениеТоваровУслуг) найдем процедуру ДобавитьКомандыСозданияНаОсновании и вызовем нашу функцию:
    
    // В процедуре ДобавитьКомандыСозданияНаОсновании модуля менеджера документа-основания:
    Справочники.Справочник.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
    

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

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

Способ 2. Проверка и настройка формы списка в Конфигураторе

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

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

Способ 3. Сброс настроек формы в режиме «1С:Предприятие»

Часто изменения не видны из-за сохраненных пользовательских настроек формы. Проверим этот момент:

  1. В режиме «1С:Предприятие» откроем форму списка документов.
  2. Нажмем Еще — Изменить форму.
  3. В открывшемся окне настройки выполним Еще — Установить стандартные настройки.
  4. Проверим наличие команды в дереве элементов и ее видимость.

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

← На главную