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

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

Стандартные команды в 1С: для чего они нужны и как их использовать

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

Стандартные команды — это готовые действия, которые платформа 1С:Предприятие автоматически добавляет к объектам конфигурации: справочникам, документам, регистрам, отчётам. Создавать элемент, открывать список, проводить документ, выводить на печать — всё это платформа умеет «из коробки», без единой строки кода. Понимание того, какие команды уже существуют и как ими управлять, избавляет разработчика от лишней работы и делает интерфейс предсказуемым для пользователя.

Главная причина использовать стандартные команды вместо самописных — единообразие. Пользователь, который привык кнопкой «Создать» открывать новый элемент в одном справочнике, ожидает ту же кнопку и то же поведение в любом другом. Если везде изобретать собственные команды, интерфейс распадается на несогласованные куски, а поддержка конфигурации усложняется.

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

Что такое стандартные команды и откуда они берутся

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

Платформа формирует эти команды автоматически при описании объекта в конфигураторе. Разработчику не нужно ничего программировать: достаточно создать объект, и стандартные команды появятся в формах, командном интерфейсе и панелях навигации. Увидеть полный перечень можно в палитре свойств формы — в дереве команд стандартные помечены специально и недоступны для редактирования кода.

Кроме команд объектов существуют глобальные стандартные команды: «Сохранить», «Закрыть», «Печать», «Найти», «Обновить». Они работают в контексте активной формы и тоже не требуют реализации.

Зачем использовать стандартные команды вместо своих

Первая выгода — экономия времени разработки. Команда «Провести» у документа уже умеет вызывать проведение, обрабатывать ошибки и обновлять форму. Своя кнопка с вызовом Записать(РежимЗаписиДокумента.Проведение) дублирует эту работу и требует отдельной обработки исключений.

Вторая выгода — согласованность прав. Стандартные команды автоматически учитывают настройки ролей: если у пользователя нет права на интерактивное удаление, команда «Удалить» будет недоступна без дополнительного кода. Для собственной команды проверку прав придётся программировать отдельно, и это частый источник уязвимостей.

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

Сравнение вариантов

Стандартная команда

Подходит для типовых действий: создание, проведение, удаление, печать. Не требует кода, учитывает права, обновляется с платформой. Ограничение — поведение нельзя изменить.

Собственная команда

Нужна для нестандартной логики: пакетная обработка, вызов внешнего сервиса, нестандартная проверка перед записью. Требует кода, проверки прав и поддержки при обновлениях.

Стандартная команда + расширение формы

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

Какие стандартные команды есть у основных объектов

Состав стандартных команд различается по типам объектов, и это нужно учитывать при проектировании интерфейса. Ниже — основные группы без претензии на полный справочник: точный состав зависит от версии платформы и настроек объекта.

ОбъектТипичные стандартные командыОсобенности
СправочникСоздать, Создать группу, Скопировать, Удалить, Открыть«Создать группу» — только для иерархических справочников
ДокументСоздать, Провести, Отменить проведение, Создать на основании, Удалить«Провести» недоступна, если проведение запрещено в свойствах
Регистр сведенийСоздать, Открыть, Удалить, Перейти к записиДля подчинённых регистров доступен переход от регистратора
ОтчётСформировать, Настройки, Открыть вариантРаботает через систему компоновки данных
ОбработкаОткрыть, ВыполнитьМинимальный набор, основная логика — своя

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

Как управлять стандартными командами в командном интерфейсе

Командный интерфейс подсистем и форм настраивается без программирования. В конфигураторе откройте редактор командного интерфейса подсистемы: там отображаются все стандартные команды объектов, входящих в подсистему. Для каждой можно изменить порядок, видимость и группу размещения.

На форме стандартные команды добавляются в командную панель перетаскиванием из дерева команд. Одна и та же команда может присутствовать в нескольких местах: в панели навигации, в меню «Ещё», в контекстном меню таблицы. Платформа сама синхронизирует их доступность.

Настройка видимости стандартной команды
  1. 1
    Откройте конфигуратор и найдите нужную подсистему или форму объекта.
  2. 2
    В редакторе командного интерфейса найдите стандартную команду в списке.
  3. 3
    Установите флажок видимости или перетащите команду в нужную группу командной панели.
  4. 4
    Обновите конфигурацию базы данных и запустите режим предприятия.
  5. 5
    Проверьте команду под пользователем с ограниченными правами, а не только под администратором.

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

Когда стандартных команд недостаточно

Собственная команда оправдана, когда нужно действие, которого платформа не выполняет: массовая обработка выделенных строк, интеграция с внешним сервисом, нестандартный алгоритм заполнения, вызов отчёта с предустановленными параметрами. В этих случаях создаётся команда формы или объекта с обработчиком в модуле.

Промежуточный вариант — дополнить стандартное поведение, не заменяя его. Например, перед проведением документа показать пользователю предупреждение: это делается в обработчике ПередЗаписью формы, а стандартная команда «Провести» остаётся на месте. Такой подход сохраняет все преимущества стандартной механики.

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

Как выбрать действие

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

Типичные ошибки при работе со стандартными командами

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

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

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

Типичные ошибки
01
Создание своей команды-дубликата вместо использования стандартной — двойная поддержка и рассинхронизация поведения
02
Скрытие команды вместо настройки ролей — действие остаётся доступным обходными путями
03
Проверка формы только под полными правами — у пользователей команды пропадают, и это выглядит как сбой
04
Поиск «пропавшей» команды без проверки свойств объекта — например, проведение отключено в конфигураторе
05
Размещение всех команд в командной панели — редкие действия правильнее убрать в меню «Ещё»

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

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

Дополнительно пройдите сценарий целиком: создать объект, записать, провести, создать на основании, удалить. Если хотя бы один шаг требует обходных действий (например, проведение возможно только через меню «Ещё», хотя это основная операция), пересмотрите размещение команд.

Контрольные точки

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

Команда в командной панели формы
Норма

Видна и выполняет действие без ошибок

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

Отсутствует или выдаёт ошибку прав

Поведение под ограниченной ролью
Норма

Недоступные по правам команды скрыты платформой

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

Команда видна, но падает с ошибкой при нажатии

Дубли действий
Норма

Одно действие — одна команда

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

Стандартная и самописная кнопки делают одно и то же

Редкие операции
Норма

Убраны в меню «Ещё», панель не перегружена

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

Десятки кнопок в командной панели

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

Частые вопросы

Можно ли изменить код стандартной команды?

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

Почему стандартная команда не отображается у пользователя?

Чаще всего у пользователя нет соответствующего права — платформа скрывает такие команды автоматически. Также проверьте свойства объекта (например, разрешено ли проведение) и настройки видимости в командном интерфейсе подсистемы.

Как убрать лишние стандартные команды с формы?

В конфигураторе откройте форму, найдите команду в дереве команд и снимите флажок видимости у элемента командной панели или удалите кнопку. Помните: это влияет только на интерфейс, а не на права доступа.

Чем стандартная команда отличается от общей команды конфигурации?

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

Влияют ли стандартные команды на производительность?

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

Итог

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

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