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

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

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


Авторы: В.А. Ажеронок, А.В. Островерх, М.Г. Радченко, Е.Ю. Хрусталева
Как создать команду в конфигурации 1с
Нас часто просят привести примеры работы с 1С посредством http-сервисов. Command/com является простой, готовой к использованию утилитой, которая позволяет выполнять заранее определенный набор действий на сервере 1С при нажатии кнопки в браузере. Состав кнопок и соответствующие им действия определяются в режиме предприятия, а формирование веб-интерфейса и обработка нажатия кнопок выполняются посредством http-сервиса 1С. Анализ кода Command/com поможет на простых примерах разобраться с работой http-сервисов, понять принцип формирования и обработки параметров GET-запросов.
Описание

Утилита выполнена в виде отдельной конфигурации, которая также может быть интегрирована с любой другой конфигурацией 1С путем сравнения и объединения. В этом случае с помощью Command/com возможно удаленное управление родительской конфигурацией. Например, нажатием кнопки можно завершить сеансы пользователей, выполнить регламентные процедуры, перезапустить оборудование, исполнить любой произвольный код на языке 1С или команду системы. В качестве отдельной конфигурации Command/com может выполнять роль утилиты для управления сервером 1С. Наиболее часто используемые команды — остановка и запуск службы сервера 1С:Предприятия, перезагрузка сервера. Command/com позволяет максимально упростить процесс выполнения произвольного набора действий с серверами и базами данных 1С:Предприятия. Объекты конфигурации объединены в отдельную подсистему для удобства интеграции с другими конфигурациями:
Для работы конфигурации на сервере должен быть установлен веб-сервер IIS или Apache. Конфигурация разработана на управляемых формах. Код конфигурации открыт.
Установка

Возможны два варианта работы Command/com — автономный (отдельная конфигурация) и интегрированный (объединение с родительской конфигурацией).В автономном режиме Command/com устанавливается как обычная конфигурация. После установки необходимо опубликовать ее на веб сервере стандартными средствами платформы (Администрирование- Публикация на веб-сервере). Для доступа к http-сервису необходимо на закладке “Основные — HTTP-сервисы” установить флажок напротив сервиса “vcanCommand”:
После этого в режиме конфигуратора необходимо добавить пользователей и выдать им соответствующие права: “КэнКоммандАдминистратор” — для пользователей, которые смогут добавлять/изменять состав выполняемых команд, или “КэнКоммандПользователь” — для тех, кто сможет только выполнять команды из браузера. Также минимум одному из пользователей должны быть присвоены права“Администратор” для управления списком пользователей. Стоит заметить, что в автономном режиме даже при наличии на компьютере сервера 1С и СУБД конфигурацию Command/com лучше использовать в файловом варианте. Поскольку информации в БД практически нет, а http-запросы выполняются относительно быстро, файловая база легко справляется со своими задачами и при этом сохраняет работоспособность даже при остановленной службе сервера1С:Предприятия. В интегрированном режиме Command/com встраивается в родительскую конфигурацию путем сравнения/объединения. После этого существующим пользователям выдаются права ролей“КэнКоммандАдминистратор” или “КэнКоммандПользователь” в зависимости от уровня доступа.
Работа с конфигурацией
Для начала работы необходимо заполнить справочник пользователей и групп, создать команды и соответствующие им выполняемые действия, настроить доступ к командам.
Настройка пользователей
Для администрирования пользователей, которым предоставляется доступ к командам, существует одноименный справочник с единственным реквизитом “Имя пользователя информационной базы”. Имя пользователя в этом реквизите должно совпадать с именем пользователя в конфигураторе:

Непосредственно в форме элемента справочника также можно флажками выделить команды или группы команд, к которым данному пользователю разрешен доступ:

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

Наименование — произвольная строка$

Идентификатор — уникальная строка, состоящая из латинских букв и цифр;

Тип действия — перечисление со значениями “Код 1С”, “Команда системы” и “Скрипт”;

Выполняемое действие и Путь к скрипту — строки, в которых указывается либо выполняемый по команде код 1С, команда системы или путь к скрипту *.bat.;

Порядок — число, определяющее положение команды на веб-странице: чем меньше число, тем выше располагается кнопка команды;

Активна — булево, если равно “Истина”, то команда будет отображаться на веб-странице.
Назначение практически всех реквизитов понятно. Подробнее можно остановиться на реквизите “Тип действия”. Именно он определяет, какое действие будет выполнено при нажатии пользователем соответствующей кнопки в браузере.
При значении “Код 1С” становится активным поле “Выполняемое действие”, в котором необходимо указать код на языке 1С:Предприятие. Например, можно выполнить процедуру общего модуля. Или сразу несколько команд, как это сделано в тестовой команде “Создать файл на сервере”:

При значении “Команда системы” в поле “Выполняемое действие” указывается соответствующая строка. Например, для остановки службы сервера 1С:Предприятия выполняется следующая команда:

При значении “Скрипт” в поле “Путь к скрипту” указывается расположение запускаемого скрипта:

Группы пользователей
Этот справочник облегчает администрирование доступа пользователей к командам при их большом количестве. Например, в прилагаемой к статье тестовой конфигурации помимо управления сервером 1С настроены также тестовые команды и команды для управления шаговым двигателем робота на базе микроконтроллера Arduino через com-порт. Логично разбить эти команды на соответствующие группы:

Теперь можно создать две группы доступа к командам — “Ардуино” и “Сервер” и на их формах выделить флажками группы команд, к которым разрешен доступ данной группы доступа:

В этом же справочнике указываются пользователи, входящие в группу доступа:

Выполнение команд
Для доступа к веб-интерфейсу пользователю необходимо в адресной строке браузера указать путь к http-сервису конфигурации в формате http://server/base/hs/v-can.command/com где server — имя или IP-адрес сервера с базой Command/com, base — имя, под которым Command/com опубликована на веб-сервере. После запуска появится окно авторизации, где пользователь должен ввести свои логин и пароль, указанные в конфигураторе:

При успешной авторизации пользователь увидит дерево команд, к которым ему разрешен доступ:

Примеры использования
Изначально конфигурация разрабатывалась для управления сервером: остановки и запуска службы агента сервера 1С:Предприятия, перезагрузки сервера. Для этого используются команды с типом действия “Команда системы” и следующими выполняемыми действиями:
net stop «1C:Enterprise 8.3 Server Agent»
net start «1C:Enterprise 8.3 Server Agent»
shutdown /r /t 000
При дальнейшей эксплуатации утилиты была реализована следующая потребность — завершение сеансов пользователей БД. В этом случае лучше использовать команду с типом действия “Код 1С” и запуском соответствующего кода в общем модуле родительской конфигурации. Какого именно кода -зависит от используемой конфигурации, уверен, что с этим ни у кого проблем не возникнет.
Следующий по популярности функционал — перезагрузка компьютеров в локальной сети. Выполняется так же, как и перезагрузка сервера, но с указанием имени компьютера в выполняемой команде:
shutdown -r -f -t 0 -m \\имя-или-айпи-адрес-компьютера
В этом случае для каждого компьютера создается отдельная кнопка. Но при небольшой доработке можно обойтись одной кнопкой и добавить в веб-интерфейс текстовое поле для ввода имени или IP-адреса компьютера.
Также иногда очень помогает возможность запустить выключенный компьютер. Для этого в BIOSе компьютера необходимо разрешить возможность запуска по сети (Wake-on-LAN), а на сервер 1Сустановить соответствующую программу, например одноименную “Wake On Lan”. После этого в Command/com добавляется команда с типом действия “Команда системы” или “Скрипт”, которая из командной строки запускает “Wake On Lan” с MAC-адресом включаемого компьютера в параметрах.
Недавно один из наших клиентов осознал, что Command/com — удобный инструмент для формирования отчетов без входа в 1С. Для этого создается команда с типом действия “Код 1С”, которая выполняет некий набор отчетов, сохраняет их в формате xls и отправляет пользователю на электронную почту. Удобно для руководителей во время командировок.
Описанный абзацем выше функционал можно использовать и для работы клиентов компании. Путем выполнения команд пользователи могут на электронную почту получать свежие прайсы с учетом индивидуальных скидок, таблицы с актуальными остатками товаров.
Веб-интерфейс Command/com может стать простейшей системой сбора заявок. Например, IT-служба одного из наших заказчиков таким образом собирает типовые заявки от сотрудников. Для этого используется страница с кнопками “Не работает компьютер”, “Заправить картридж”, “Принтер не печатает” и т.д. По идентификатору нажатой кнопки формируется тема новой заявки, а привязка заявки к сотруднику-заявителю происходит через параметр сеанса “ТекущийПользователь”. Заявку можно подать даже со смартфона, что особенно удобно для создания обращений с темой “Не работает компьютер”.
Ну а самыми экзотическими случаями использования Command/com стали моменты, когда нам было необходимо по-быстрому привязать к компьютеру оборудование под управлением микроконтроллеров Arduino и управлять им через интернет.
Command/com идеально справляется с подобными задачами на этапе прототипирования новых электронных устройств. Например, на видео ниже показан веб-интерфейс для управления самодельным роботом через WiFi. На разработку интерфейса было потрачено около 15минут. В течение следующего часа опытным путем были подобраны оптимальные параметры команд, передаваемых роботу, после чего уже был создан полноценный пульт управления.
Подключение дополнительных внешних обработок «Клеверенса» в конфигурациях на базе «1С: Предприятие»
В «1С: Предприятие» существует возможность подключения внешних обработок, в качестве дополнения к предусмотренным в конфигурации 1С. Рассмотрим, как это сделать в «1С: Управление торговлей 11.4». Для подключения основной обработки от «Клеверенса» в качестве дополнительных обработок конфигурации 1С, нужно зайти в «НСИ и администрирование» и выбрать «Печатные формы, отчеты и обработки».
Откроется вкладка, в которой необходимо выбрать пункт «Дополнительные отчеты и обработки».
Откроется вкладка «Дополнительные отчеты и обработки». Для создания новой обработки нажмите «Добавить из файла».
После нажатия кнопки «Добавить из файла» на экране вашего ПК может появиться следующее окно. Для продолжения работы нажмите на кнопку «Продолжить».
Для подключения обработки выберите нужный файл. Для работы используется «КлеверенсТСД_Основная обработка.еpf», все остальные обработки из списка предназначены для совместимости со старыми версиями продуктов от «Клеверенс».
После этого откроется окно создания дополнительной обработки. По умолчанию в нем уже указано наименование новой обработки.
Также в данном окне можно настроить некоторые параметры обработки. Например, создать команду пользователей, у которых эта обработка будет в быстром доступе. Для этого нажмите правой кнопкой мыши на строку «Открыть обработку обмена», и в появившемся контекстном меню выберите пункт «Настроить быстрый доступ».
Появится список пользователей, которых можно добавлять в команду. Можно добавлять по одному пользователю, выбирая пользователя и нажимая кнопку
, или выбрать всех сразу, нажав кнопку
. После того как нужные пользователи были выбраны, нажмите «ОК». Также можно удалить уже внесенного в список пользователя из списка. Для этого используйте кнопки
и
.
У всех указанных пользователей будет возможность открывать данную обработку. Для того, чтобы создать группу пользователей, у которых будет возможность выгружать справочники Mobile SMARTS (вручную или по расписанию), следует проделать все вышеуказанные действия для пунктов «Выгрузить все справочники Mobile SMARTS» или «Регламентная выгрузка справочников Mobile SMARTS». Также можно указать разделы командного интерфейса, в которых будет доступна обработка. Для этого нажмите на ссылку в пункте «Размещение».
В появившемся окне укажите необходимые разделы и нажмите «ОК».
Теперь необходимо записать и закрыть созданную обработку.
Если необходимо создать еще несколько внешних обработок в качестве дополнительных, проделайте все вышеописанные операции заново. Созданные обработки можно запускать в выбранных разделах командного интерфейса. Они будут доступны пользователям, выбранным в быстром доступе к команде.
При первом открытии дополнительных обработок в необходимом разделе список может быть пуст, а может содержать в себе интеграционные обработки для данной конфигурации 1С. Для того чтобы добавить в него созданную обработку, нажмите на «Настроить список».
После этого появится окно с функциями ранее созданной обработки. Поставьте галочки для тех, которые вы собираетесь использовать, и нажмите «ОК».
Для запуска обработки выберите пункт «Открыть обработку обмена» и нажмите кнопку «Выполнить». Для выгрузки справочников выберите пункт «Выгрузить все справочники в Mobile SMARTS» и нажмите кнопку «Выполнить». Для регламентной выгрузки справочников выберите пункт «Регламентная выгрузка справочников в Mobile SMARTS» и нажмите кнопку «Выполнить».
В соответствии с выбранным действием будет открыта основная обработка Клеверенс, выгружены справочники Mobile SMARTS или включена регламентная выгрузка справочников Mobile SMARTS.
Была ли статья полезна?
Настройка подсистемы 8_3_compatible_8_2.cf
Типизация общих команд Контур.Логистики позволяет применять групповые действия (массовое подписание, ввод черновиков) к Титулам, которые появляются на основании документов учетной системы: поскольку документ Логистики еще не создан, команда применяется к документу основной конфигурации.
Если не выбрать тип данных команд, при нажатии на кнопки «Подписать, отправить в фоне» и «Создать черновик» на форме задач будут возникать ошибки вида «Команда не может быть выполнена для указанного объекта!».

Для настройки общих команд раскройте список «Общие» → «Общие команды».

Выполните настройку для нужных вам команд:
- КонтурЛогистика_ВыполнитьДействияПоУмолчанию,
- КонтурЛогистика_ОтправитьНеподписанный,
- КонтурЛогистика_ПодготовитьНеподписанныйКОтправке,
- КонтурЛогистика_ПодписатьИОтправить,
- КонтурЛогистика_ПодписатьИПодготовитьКОтправке,
- КонтурЛогистика_ПропуститьДокумент,
- КонтурЛогистика_СоздатьЧерновик,
- КонтурЛогистика_РаспечатьТранспортнойНакладной.
Чтобы выполнить настройку для команд:
-
Откройте свойства команды, нажав правой кнопкой мыши на команду, в открывшемся меню выберите «Свойства».
В примере показано открытие свойства команды КонтурЛогистика_ПодписатьИОтправить.
Его настройка позволит массово подписывать титулы из общего списка.



Важно! Необходимо добавить (не заменять) типы — не снимайте флажки с типов, которые были включены сразу после установки. Например, документы КонтурЛогистика_Вспомогательный, КонтурЛогистика_ТрН_Титул1.
В примере добавляется документ «Реализация товаров и услуг».

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



В открывшемся окне перейдите на вкладку «Ввод на основании» → в разделе «Является основанием для:» нажмите на значок карандаша
