Command/com - конфигурация для управления сервером 1С из браузера

Публикация № 897629

Администрирование - Сервисные утилиты

9
В данной статье я хотел бы рассказать о конфигурации “Command/com”, которая позволила нам облегчить процесс удаленного управления серверами 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 минут. В течение следующего часа опытным путем были подобраны оптимальные параметры команд, передаваемых роботу, после чего уже был создан полноценный пульт управления.

 

Заключение

Мы работаем с конфигурацией Command/com более 5 лет. За это время она зарекомендовала себя как простой, удобный и надежный интерфейс для удаленного управления серверами и БД 1С. Если будет интерес сообщества, возможно дальнейшее развитие функционала конфигурации. Оставляйте ваши пожелания в комментариях.

Спасибо за внимание!

9

Скачать файлы

Наименование Файл Версия Размер
Command/com - конфигурация
.cf 172,63Kb
04.09.18
2
.cf 172,63Kb 2 Скачать
Command/com - выгрузка БД
.dt 204,62Kb
04.09.18
4
.dt 204,62Kb 4 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Fox-trot 99 04.09.18 17:02 Сейчас в теме
а в виде расширения такое чудо возможно?
2. TitanLuchs 98 04.09.18 17:35 Сейчас в теме
(1) Если не ошибаюсь, все объекты конфигурации уже поддерживаются расширениями. Значит возможно.
3. Fox-trot 99 04.09.18 17:42 Сейчас в теме
(2)если переделаете, готов скачать
4. TitanLuchs 98 04.09.18 17:48 Сейчас в теме
(3) Я бы и бесплатно отдал в текущем состоянии, но сайт не позволяет прикреплять к публикации бесплатные файлы. Времени на переделку сейчас точно нет - на носу Космос и Infostart Event 2018, готовимся к мероприятиям. Если технология интересна, то могу поделиться кодами исходников, вы попробуйте перевести их на расширения, а потом поделитесь со мной обратно расширением.
5. Fox-trot 99 04.09.18 17:51 Сейчас в теме
(4)каждый труд должен оплачиваться %) и не важно чем, да хоть $m
просто в качестве расширения имхо данное решение было б проще интегрировать
6. TitanLuchs 98 04.09.18 17:59 Сейчас в теме
(5) Конкретно в нашем случае усилия на разработку этой конфигурации себя окупили уже многократно, поэтому и решил выложить в общий доступ.
7. TitanLuchs 98 04.09.18 18:01 Сейчас в теме
+(6) ...и очень удивился, когда узнал, что файлы бесплатно прикреплять нельзя, только за $m.
Оставьте свое сообщение