Разработка и Конфигурация · 9 мин
Как добавить команду в 1С:Управление торговлей
Как добавить команду в 1С:УТ через конфигуратор, расширение или настройку формы: пошаговые инструкции, проверка результата, типичные ошибки и ограничения.
Команда в 1С:Управление торговлей — это кнопка или пункт меню, который запускает действие: открывает форму, заполняет документ, вызывает обработку или выполняет код. Добавить команду можно тремя способами: через настройку формы в режиме предприятия (без программирования), через расширение конфигурации (без снятия с поддержки) и через конфигуратор с доработкой конфигурации. Выбор зависит от задачи: простую видимость кнопки настраивает пользователь, новую логику — разработчик.
Чаще всего под фразой «добавить команду» подразумевают одну из трёх задач: вывести существующую, но скрытую команду на форму; добавить кнопку, вызывающую внешнюю обработку или отчёт; создать собственную команду с программным кодом. Ниже разобраны все три сценария с конкретными шагами для типовой УТ 11.
Перед любыми изменениями в конфигураторе или расширении сделайте резервную копию информационной базы. Ошибка в коде команды обычно не портит данные, но может сделать форму неоткрываемой для пользователей до исправления.
Определите, какая команда нужна: существующая или новая
Сначала проверьте, нет ли нужной команды уже в системе. Откройте форму, нажмите «Ещё» в командной панели — многие действия спрятаны туда. Если действие существует, но кнопки нет, достаточно настроить видимость без программирования.
Если нужного действия нет вообще — например, «Заполнить скидку по своему алгоритму» или «Отправить заказ в Telegram» — потребуется создать новую команду с обработчиком в модуле формы. Это уже задача разработки.
Как выбрать способ
Способ 1: вывести скрытую команду через «Изменить форму»
Это самый безопасный вариант, доступный пользователю с правами на настройку формы. Откройте нужный документ или справочник, в правом верхнем углу нажмите «Ещё» и выберите «Изменить форму». Откроется дерево элементов с флажками видимости.
Найдите в дереве нужную команду — обычно она находится в ветке «Командная панель» или в группе кнопок. Установите флажок напротив неё и нажмите «ОК». Кнопка появится на форме сразу, без перезапуска программы.
Учтите ограничение: настройка формы сохраняется для конкретного пользователя или для всех — зависит от прав. Если флажок недоступен (серый), значит, у вас нет права «Изменение форм» — обратитесь к администратору.
- 1Откройте нужную форму (документ, справочник, список)
- 2Нажмите «Ещё» в правом верхнем углу формы
- 3Выберите пункт «Изменить форму»
- 4В дереве элементов найдите команду и поставьте флажок
- 5Нажмите «ОК» и проверьте, что кнопка появилась
- 6Проверьте работу кнопки на тестовом документе
Способ 2: добавить команду через дополнительные отчёты и обработки
Если нужно добавить кнопку «Печать», «Заполнение» или «Создание связанных объектов», вызывающую внешнюю обработку, программировать не нужно. Откройте «НСИ и администрирование → Печатные формы, отчёты и обработки» и включите флажок «Дополнительные отчёты и обработки».
Перейдите по ссылке «Дополнительные отчёты и обработки», нажмите «Добавить из файла» и выберите файл обработки (.epf) или отчёта (.erf). В карточке обработки укажите, для каких объектов она применяется (например, «Документ: Заказ клиента») и как называется команда — это имя увидит пользователь на кнопке.
После записи кнопка появится в форме указанных объектов в меню «Печать», «Заполнение» или «Ещё» — в зависимости от вида обработки. Механизм работает через подсистему БСП, поэтому обработка должна быть написана с соблюдением её требований (экспортная функция СведенияОВнешнейОбработке).
Способ 3: добавить команду в конфигураторе
Откройте конфигуратор, найдите нужный объект (например, «Документы → РеализацияТоваровУслуг»), откройте его основную форму. В редакторе формы перейдите на вкладку «Команды» — она находится рядом с деревом элементов формы. Нажмите «Добавить».
В палитре свойств новой команды задайте имя (латиницей, без пробелов, например «ЗаполнитьПоГрафику»), синоним (его увидит пользователь), картинку и подсказку. Свойство «Изменяет сохраняемые данные» установите в «Истина», если команда модифицирует документ, — тогда платформа корректно обработает запись.
Нажмите кнопку с «лупой» у свойства «Действие» — конфигуратор создаст обработчик в модуле формы. Напишите код на встроенном языке. Затем перетащите команду из вкладки «Команды» в нужное место дерева элементов формы — только после этого кнопка станет видимой.
&НаКлиенте
Процедура ЗаполнитьПоГрафику(Команда)
Если Объект.Товары.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Сначала добавьте товары в табличную часть");
Возврат;
КонецЕсли;
ЗаполнитьПоГрафикуНаСервере();
КонецПроцедурыРазделение клиентского и серверного кода
Обработчик команды с директивой &НаКлиенте не может напрямую обращаться к базе данных. Для запросов и изменения данных создайте серверную процедуру с директивой &НаСервере и вызывайте её из клиентского обработчика, как в примере выше. Это стандартный паттерн управляемых форм УТ 11.
Способ 4: добавить команду через расширение конфигурации
Если конфигурация на полной поддержке, прямая доработка затруднит обновление. В конфигураторе откройте «Конфигурация → Расширения конфигурации → Создать». Задайте имя и префикс расширения (например, «Доп_»), префикс добавится к именам заимствованных объектов.
В дереве конфигурации найдите нужную форму, вызовите контекстное меню и выберите «Добавить в расширение». Затем откройте заимствованную форму внутри расширения и добавьте команду так же, как в основной конфигурации: вкладка «Команды», новое имя с префиксом, обработчик, перетаскивание в дерево элементов.
После сохранения расширения и обновления конфигурации базы данных команда появится у всех пользователей. При обновлении УТ расширение обычно продолжает работать, но после каждого релиза проверяйте, что форма не изменилась настолько, что кнопка «потерялась».
Сравнение способов
Подходит для вывода существующих команд. Не требует прав разработчика, но не создаёт новую логику
Подходит для печатных форм и обработок заполнения. Не требует доработки конфигурации, но обработка должна соответствовать API БСП
Подходит для новой логики на поддерживаемой базе. Сохраняет простое обновление, но требует навыков разработки
Максимальная гибкость, но усложняет обновление и требует снятия объектов с поддержки
Проверка результата и типичные ошибки
После добавления команды обновите конфигурацию базы данных (F7 в конфигураторе) и откройте форму в режиме предприятия. Проверьте три вещи: кнопка видна, при нажатии выполняется ожидаемое действие, форма не выдаёт ошибок при открытии. Проверяйте под учётной записью обычного пользователя, а не администратора — права могут отличаться.
Как проверить результат
Кнопка отображается в командной панели или меню «Ещё»
Кнопки нет — проверьте, перетащена ли команда в дерево элементов
При нажатии действие выполняется без сообщений об ошибке
Ошибка «Процедура или функция не обнаружена» — имя обработчика не совпадает с именем команды
Кнопка доступна под рабочей учётной записью
Кнопка видна только администратору — проверьте роли и права на объект
FAQ
Как добавить команду в форму списка, а не в форму документа?
Откройте в конфигураторе именно форму списка объекта (в свойствах объекта — «Основная форма списка») и добавьте команду там. Команды формы документа и формы списка независимы, переносить их между формами нужно вручную.
Почему кнопка появилась, но нажатие ничего не делает?
Чаще всего обработчик команды пуст или имя процедуры в модуле не совпадает с именем команды. Откройте свойство «Действие» команды и убедитесь, что обработчик существует и содержит код. Также проверьте журнал регистрации на наличие ошибок.
Можно ли добавить команду без прав администратора?
Вывести скрытую команду через «Изменить форму» можно с правом настройки форм. Создание новой команды с кодом требует доступа к конфигуратору и права на изменение конфигурации или расширений — обычному пользователю это недоступно.
Пропадёт ли добавленная команда после обновления УТ?
Команда, добавленная через расширение или «Дополнительные отчёты и обработки», обычно сохраняется. Команда, добавленная прямой доработкой конфигурации, может конфликтовать при обновлении — потребуется ручное сравнение и объединение форм.
Как добавить команду сразу для нескольких видов документов?
Через «Дополнительные отчёты и обработки» в карточке обработки укажите несколько объектов назначения. В конфигураторе потребуется добавить команду в форму каждого вида документов отдельно либо использовать общую команду с параметризацией.
Что важно запомнить
Скрытые команды выводятся настройкой формы без программирования, печатные и заполняющие кнопки — через дополнительные обработки, новую логику — через расширение. Команда становится видимой только после переноса в дерево элементов формы, а результат всегда проверяется под рабочей учётной записью.