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

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

Команды в 1С: что это такое и как с ними работать

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

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

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

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

Что такое команда в 1С простыми словами

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

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

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

Виды команд в платформе 1С

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

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

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

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

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

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

Где команды находятся в пользовательском режиме

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

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

Кнопка на видном местеОсновная команда

Платформа выносит на панель самые частые действия: Создать, Провести, Записать

Подменю «Ещё»Дополнительные команды

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

Меню «Все функции»Полный список

Открывается через главное меню при включённом режиме технического специалиста и показывает все объекты и команды конфигурации

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

Как создать свою команду в конфигураторе

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

Порядок создания команды формы
  1. 1
    Откройте форму объекта в конфигураторе и перейдите на закладку «Команды» → «Команды формы»
  2. 2
    Добавьте новую команду, задайте имя (латиницей, без пробелов) и заголовок, который увидит пользователь
  3. 3
    В свойстве «Действие» нажмите кнопку создания обработчика — платформа создаст шаблон процедуры в модуле формы
  4. 4
    Перетащите команду из списка в дерево элементов формы, например в командную панель — появится кнопка
  5. 5
    Напишите код обработчика, сохраните конфигурацию и проверьте работу в режиме 1С:Предприятие

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

&НаКлиенте

Процедура ЗаполнитьЦены(Команда)

ЗаполнитьЦеныНаСервере();

ПоказатьОповещениеПользователя("Цены обновлены");

КонецПроцедуры

&НаСервере

Процедура ЗаполнитьЦеныНаСервере()

// запрос к регистру цен и заполнение табличной части

КонецПроцедуры

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

Команды запуска платформы из командной строки

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

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

bash
1cv8.exe DESIGNER /F"D:\Bases\Trade" /N"Администратор" /DumpIB"D:\Backup\trade.dt"

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

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

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

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

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

Отображение кнопки
Норма

Кнопка видна в командной панели или подменю «Ещё»

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

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

Выполнение обработчика
Норма

Действие выполняется, данные меняются как задумано

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

Ничего не происходит — обработчик не назначен в свойстве «Действие»

Контекст выполнения
Норма

Серверный код вызывается из клиентского обработчика

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

Ошибка компиляции — обращение к БД из клиентской процедуры

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

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

Когда какой подход выбирать

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

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

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

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

Итог

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

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

Частые вопросы о командах в 1С

Почему созданная команда не появилась на форме?

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

Чем команда отличается от кнопки?

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

Можно ли изменить стандартную команду, например «Провести»?

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

Как вызвать команду программно, без нажатия кнопки?

Стандартные действия вызываются методами объекта: Записать(), Провести(), УстановитьПометкуУдаления(). Для команд формы обычно выносят логику обработчика в отдельную процедуру и вызывают её напрямую из кода. Открытие форм и списков выполняется методами ОткрытьФорму() и ПолучитьФорму() с нужными параметрами.

Что такое параметризуемые команды?

Это команды, которые при вызове получают параметр — обычно ссылку на текущий объект. Например, отчёт «Движения документа» открывается с параметром-документом и сразу строится по нему. Для общей команды тип параметра задаётся в свойстве «Тип параметра команды», и платформа автоматически показывает её в формах объектов подходящего типа.

Где посмотреть все доступные команды конфигурации?

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