При доработке конфигураций 1С (в частности, типовых решений на базе Библиотеки стандартных подсистем — 1С:Управление торговлей, 1С:ERP, 1С:Комплексная автоматизация) разработчики часто сталкиваются с ситуацией: в свойствах нового объекта метаданных указан ввод на основании определенных документов, в формах самих документов и некоторых списков подменю «Создать на основании» появляется, а в конкретной форме списка (например, «Поступление товаров и услуг» / «Приобретение товаров и услуг») кнопка отсутствует.
Разберем детально, почему так происходит и как правильно организовать появление команд создания на основании во всех необходимых местах конфигурации.
Выясним причину такого поведения платформы и типовых конфигураций. В современных конфигурациях на базе БСП стандартные платформенные механизмы вывода команд ввода на основании часто переопределяются или отключаются программно:
Автозаполнение = Ложь. При таком значении платформа 1С не формирует стандартные подменю автоматически.ОсновнаяТаблица, платформа не может однозначно определить тип ссылки текущей строки и не выводит платформенные команды.Рассмотрим правильный подход для типовых конфигураций на БСП. Этот способ исключает дублирование кнопок в интерфейсе и гарантирует отображение команды как в документах, так и в любых списках и журналах.
Разберем по шагам реализацию этого механизма:
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Справочники.Справочник) Тогда
Команда = КомандыСозданияНаОсновании.Добавить();
Команда.Менеджер = Метаданные.Справочники.Справочник.ПолноеИмя();
Команда.Представление = НСтр("ru = 'Справочник'");
Возврат Команда;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Документ.ПриобретениеТоваровУслуг) найдем процедуру ДобавитьКомандыСозданияНаОсновании и вызовем нашу функцию:
// В процедуре ДобавитьКомандыСозданияНаОсновании модуля менеджера документа-основания:
Справочники.Справочник.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
Важно: Если доработка выполняется через расширение конфигурации, используйте аннотацию &После("ДобавитьКомандыСозданияНаОсновании") или &Вместо, чтобы не снимать документ с поддержки.
/C ЗапуститьОбновлениеИнформационнойБазы или выполнить процедуру обновления кэша БСП.Если требуется задействовать именно стандартный платформенный механизм генерации команд, проанализируем настройки формы списка:
Список).Автозаполнение. Если оно установлено в значение Ложь, стандартные команды ввода на основании выводиться не будут. Установим значение Истина либо перетащим стандартную команду подменю «Создать на основании» из панели доступных команд в элементы формы.Список: свойство ОсновнаяТаблица должно содержать ссылку на метаданные текущего документа (например, Документ.ПриобретениеТоваровУслуг).Часто изменения не видны из-за сохраненных пользовательских настроек формы. Проверим этот момент:
Использование комплексного подхода (настройка метаданных и программная интеграция через модуль менеджера БСП) обеспечивает стабильное и единообразное отображение команд создания на основании во всех формах прикладного решения.