Как добавить кнопку «Создать на основании» в 1С:Управление торговлей 11 без изменения конфигурации?

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

При работе с типовыми решениями 1С, такими как «Управление торговлей» редакции 11, часто возникает необходимость расширить стандартный функционал. Напримеры, требуется добавлять новые документы на основании существующих — к примеру, формировать документ Перемещение товаров прямо из документов Реализация товаров и услуг или Чек ККМ. При этом крайне важно сохранить конфигурацию на поддержке без включения возможности изменения, чтобы не усложнять последующие обновления системы.

Рассмотрим подробно варианты решения этой задачи с использованием стандартных механизмов платформы 1С и Библиотеки Стандартных Подсистем (БСП).

Вариант 1. Внешняя обработка ввода на основании (Механизм БСП)

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

Разберем по шагам, как устроен этот механизм:

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

Проанализируем технические особенности и ограничения этого подхода:

Вариант 2. Использование расширения конфигурации

Внешняя обработка всегда помещает свою команду внутрь стандартного выпадающего меню «Создать на основании». Если же бизнесу требуется вывести самостоятельную кнопку на главную командную панель формы (на самый верхний уровень интерфейса), штатный механизм внешних обработок этого сделать не позволит.

В этом случае отличным решением без изменения основной конфигурации является **расширение конфигурации**.

Разберем по шагам, как добавить команду через расширение:

  1. Создаем новое расширение конфигурации в режиме конфигуратора.
  2. Добавляем в расширение форму нужного документа (например, форму документа Реализация товаров и услуг).
  3. Добавляем команду формы и выводим кнопку на командную панель.
  4. В обработчике команды описываем логику создания и заполнения документа Перемещение товаров.

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


ИмяКоманды = "СоздатьПеремещение";
Команда = Команды.Добавить(ИмяКоманды);
Команда.Действие = "СоздатьПеремещениеНаСервере";

НовыйЭлемент = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Элементы.ФормаКоманднаяПанель);
НовыйЭлемент.ИмяКоманды = ИмяКоманды;
НовыйЭлемент.Заголовок = "Создать перемещение";

Подведем итоги

Для создания функционала ввода на основании без снятия конфигурации с поддержки существует два готовых решения:

← На главную