К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как добавить команду в 1С:Управление торговлей

Как добавить команду в 1С:УТ через конфигуратор, расширение или настройку формы: пошаговые инструкции, проверка результата, типичные ошибки и ограничения.

Команда в 1С:Управление торговлей — это кнопка или пункт меню, который запускает действие: открывает форму, заполняет документ, вызывает обработку или выполняет код. Добавить команду можно тремя способами: через настройку формы в режиме предприятия (без программирования), через расширение конфигурации (без снятия с поддержки) и через конфигуратор с доработкой конфигурации. Выбор зависит от задачи: простую видимость кнопки настраивает пользователь, новую логику — разработчик.

Чаще всего под фразой «добавить команду» подразумевают одну из трёх задач: вывести существующую, но скрытую команду на форму; добавить кнопку, вызывающую внешнюю обработку или отчёт; создать собственную команду с программным кодом. Ниже разобраны все три сценария с конкретными шагами для типовой УТ 11.

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

Определите, какая команда нужна: существующая или новая

Сначала проверьте, нет ли нужной команды уже в системе. Откройте форму, нажмите «Ещё» в командной панели — многие действия спрятаны туда. Если действие существует, но кнопки нет, достаточно настроить видимость без программирования.

Если нужного действия нет вообще — например, «Заполнить скидку по своему алгоритму» или «Отправить заказ в Telegram» — потребуется создать новую команду с обработчиком в модуле формы. Это уже задача разработки.

Маршрут решения

Как выбрать способ

Команда есть в системе, но не видна на формеИспользуйте «Ещё → Изменить форму» в режиме предприятия
Нужна кнопка для внешней обработки или отчётаПодключите её через «Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки»
Нужна новая логика, а конфигурация на поддержкеСоздайте расширение конфигурации и добавьте команду там
База самописная или уже доработанаДобавьте команду напрямую в конфигураторе

Способ 1: вывести скрытую команду через «Изменить форму»

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

Найдите в дереве нужную команду — обычно она находится в ветке «Командная панель» или в группе кнопок. Установите флажок напротив неё и нажмите «ОК». Кнопка появится на форме сразу, без перезапуска программы.

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

Порядок действий в режиме предприятия
  1. 1
    Откройте нужную форму (документ, справочник, список)
  2. 2
    Нажмите «Ещё» в правом верхнем углу формы
  3. 3
    Выберите пункт «Изменить форму»
  4. 4
    В дереве элементов найдите команду и поставьте флажок
  5. 5
    Нажмите «ОК» и проверьте, что кнопка появилась
  6. 6
    Проверьте работу кнопки на тестовом документе

Способ 2: добавить команду через дополнительные отчёты и обработки

Если нужно добавить кнопку «Печать», «Заполнение» или «Создание связанных объектов», вызывающую внешнюю обработку, программировать не нужно. Откройте «НСИ и администрирование → Печатные формы, отчёты и обработки» и включите флажок «Дополнительные отчёты и обработки».

Перейдите по ссылке «Дополнительные отчёты и обработки», нажмите «Добавить из файла» и выберите файл обработки (.epf) или отчёта (.erf). В карточке обработки укажите, для каких объектов она применяется (например, «Документ: Заказ клиента») и как называется команда — это имя увидит пользователь на кнопке.

После записи кнопка появится в форме указанных объектов в меню «Печать», «Заполнение» или «Ещё» — в зависимости от вида обработки. Механизм работает через подсистему БСП, поэтому обработка должна быть написана с соблюдением её требований (экспортная функция СведенияОВнешнейОбработке).

Способ 3: добавить команду в конфигураторе

Откройте конфигуратор, найдите нужный объект (например, «Документы → РеализацияТоваровУслуг»), откройте его основную форму. В редакторе формы перейдите на вкладку «Команды» — она находится рядом с деревом элементов формы. Нажмите «Добавить».

В палитре свойств новой команды задайте имя (латиницей, без пробелов, например «ЗаполнитьПоГрафику»), синоним (его увидит пользователь), картинку и подсказку. Свойство «Изменяет сохраняемые данные» установите в «Истина», если команда модифицирует документ, — тогда платформа корректно обработает запись.

Нажмите кнопку с «лупой» у свойства «Действие» — конфигуратор создаст обработчик в модуле формы. Напишите код на встроенном языке. Затем перетащите команду из вкладки «Команды» в нужное место дерева элементов формы — только после этого кнопка станет видимой.

bsl
&НаКлиенте
Процедура ЗаполнитьПоГрафику(Команда)
	Если Объект.Товары.Количество() = 0 Тогда
		ПоказатьПредупреждение(, "Сначала добавьте товары в табличную часть");
		Возврат;
	КонецЕсли;
	ЗаполнитьПоГрафикуНаСервере();
КонецПроцедуры

Разделение клиентского и серверного кода

Обработчик команды с директивой &НаКлиенте не может напрямую обращаться к базе данных. Для запросов и изменения данных создайте серверную процедуру с директивой &НаСервере и вызывайте её из клиентского обработчика, как в примере выше. Это стандартный паттерн управляемых форм УТ 11.

Способ 4: добавить команду через расширение конфигурации

Если конфигурация на полной поддержке, прямая доработка затруднит обновление. В конфигураторе откройте «Конфигурация → Расширения конфигурации → Создать». Задайте имя и префикс расширения (например, «Доп_»), префикс добавится к именам заимствованных объектов.

В дереве конфигурации найдите нужную форму, вызовите контекстное меню и выберите «Добавить в расширение». Затем откройте заимствованную форму внутри расширения и добавьте команду так же, как в основной конфигурации: вкладка «Команды», новое имя с префиксом, обработчик, перетаскивание в дерево элементов.

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

Сравнение способов

Настройка формы в режиме предприятия

Подходит для вывода существующих команд. Не требует прав разработчика, но не создаёт новую логику

Дополнительные отчёты и обработки

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

Расширение конфигурации

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

Прямая доработка в конфигураторе

Максимальная гибкость, но усложняет обновление и требует снятия объектов с поддержки

Проверка результата и типичные ошибки

После добавления команды обновите конфигурацию базы данных (F7 в конфигураторе) и откройте форму в режиме предприятия. Проверьте три вещи: кнопка видна, при нажатии выполняется ожидаемое действие, форма не выдаёт ошибок при открытии. Проверяйте под учётной записью обычного пользователя, а не администратора — права могут отличаться.

Типичные ошибки
01
Команда создана, но не перетащена в дерево элементов формы — кнопка не видна пользователю
02
Обработчик написан только &НаКлиенте с обращением к базе данных — ошибка при выполнении
03
Команда добавлена в форму списка, а проверяется в форме документа — это разные формы
04
Расширение создано, но не применено к базе (не выполнено обновление) — изменений не видно
05
Настройка «Изменить форму» сделана под одним пользователем, а проверяется под другим — кнопки нет
Контрольные точки

Как проверить результат

Видимость кнопки
Норма

Кнопка отображается в командной панели или меню «Ещё»

Тревожный признак

Кнопки нет — проверьте, перетащена ли команда в дерево элементов

Выполнение
Норма

При нажатии действие выполняется без сообщений об ошибке

Тревожный признак

Ошибка «Процедура или функция не обнаружена» — имя обработчика не совпадает с именем команды

Права пользователя
Норма

Кнопка доступна под рабочей учётной записью

Тревожный признак

Кнопка видна только администратору — проверьте роли и права на объект

FAQ

Как добавить команду в форму списка, а не в форму документа?

Откройте в конфигураторе именно форму списка объекта (в свойствах объекта — «Основная форма списка») и добавьте команду там. Команды формы документа и формы списка независимы, переносить их между формами нужно вручную.

Почему кнопка появилась, но нажатие ничего не делает?

Чаще всего обработчик команды пуст или имя процедуры в модуле не совпадает с именем команды. Откройте свойство «Действие» команды и убедитесь, что обработчик существует и содержит код. Также проверьте журнал регистрации на наличие ошибок.

Можно ли добавить команду без прав администратора?

Вывести скрытую команду через «Изменить форму» можно с правом настройки форм. Создание новой команды с кодом требует доступа к конфигуратору и права на изменение конфигурации или расширений — обычному пользователю это недоступно.

Пропадёт ли добавленная команда после обновления УТ?

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

Как добавить команду сразу для нескольких видов документов?

Через «Дополнительные отчёты и обработки» в карточке обработки укажите несколько объектов назначения. В конфигураторе потребуется добавить команду в форму каждого вида документов отдельно либо использовать общую команду с параметризацией.

Итог

Что важно запомнить

Скрытые команды выводятся настройкой формы без программирования, печатные и заполняющие кнопки — через дополнительные обработки, новую логику — через расширение. Команда становится видимой только после переноса в дерево элементов формы, а результат всегда проверяется под рабочей учётной записью.