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

04.09.18

Разработка - Инструментарий разработчика

В данной статье я хотел бы рассказать о конфигурации “Command/com”, которая позволила нам облегчить процесс удаленного управления серверами 1С и размещенными на них конфигурациями с помощью любого устройства, в котором есть браузер.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Command/com - конфигурация
.cf 172,63Kb
3
3
1 SM
Скачать Купить за 1 850 руб.
Command/com - выгрузка БД
.dt 204,62Kb
7
7
1 SM
Скачать Купить за 1 850 руб.

Нас часто просят привести примеры работы с 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С. Если будет интерес сообщества, возможно дальнейшее развитие функционала конфигурации. Оставляйте ваши пожелания в комментариях.

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

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    140456    770    391    

803

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    11514    31    6    

60

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

5400 руб.

17.05.2024    13676    31    27    

75

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    7250    27    4    

50

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2880 руб.

14.01.2013    181824    1103    0    

876

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15977    3    12    

39

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    101108    242    97    

303

Инструментарий разработчика Перенос данных 1C Программист Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы. Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение для 1С, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    24491    17    15    

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Fox-trot 161 04.09.18 17:02 Сейчас в теме
а в виде расширения такое чудо возможно?
2. TitanLuchs 399 04.09.18 17:35 Сейчас в теме
(1) Если не ошибаюсь, все объекты конфигурации уже поддерживаются расширениями. Значит возможно.
3. Fox-trot 161 04.09.18 17:42 Сейчас в теме
(2)если переделаете, готов скачать
4. TitanLuchs 399 04.09.18 17:48 Сейчас в теме
(3) Я бы и бесплатно отдал в текущем состоянии, но сайт не позволяет прикреплять к публикации бесплатные файлы. Времени на переделку сейчас точно нет - на носу Космос и Infostart Event 2018, готовимся к мероприятиям. Если технология интересна, то могу поделиться кодами исходников, вы попробуйте перевести их на расширения, а потом поделитесь со мной обратно расширением.
5. Fox-trot 161 04.09.18 17:51 Сейчас в теме
(4)каждый труд должен оплачиваться %) и не важно чем, да хоть $m
просто в качестве расширения имхо данное решение было б проще интегрировать
6. TitanLuchs 399 04.09.18 17:59 Сейчас в теме
(5) Конкретно в нашем случае усилия на разработку этой конфигурации себя окупили уже многократно, поэтому и решил выложить в общий доступ.
7. TitanLuchs 399 04.09.18 18:01 Сейчас в теме
+(6) ...и очень удивился, когда узнал, что файлы бесплатно прикреплять нельзя, только за $m.
8. solaru 71 18.10.20 07:09 Сейчас в теме
(4) ищу подобное для управления пользователями баз (около 20).
9. TitanLuchs 399 18.10.20 15:00 Сейчас в теме
(8) Тут много зависит от того, какой именно функционал по управлению пользователями нужен. Данное решение удобно тем, что позволяет быстро реализовывать обработчики нажатия кнопок в веб-интерфейсе путем добавления элементов в справочник. При нажатии на кнопку выполняется код 1С. Но ограничение в том, что в параметрах запроса передается только идентификатор нажатой кнопки и никакой дополнительной информации передать нельзя (без доработки кода, конечно же). То есть, если вам необходимо, например, добавить нового пользователя в ИБ, при этом ИБ необходимо выбрать из списка (как вариант - отметить флажками несколько баз, в которые добавляется пользователь), указать его имя, пароль и т.д., то это решение скорее всего не подойдет. Здесь необходимо разрабатывать что-то более сложное по функционалу.
Хотя можно доработать и данное решение: добавить на страницу некие статичные элементы (список баз, поле для имени пользователя) и доработать javascript так, чтобы при нажатии кнопки кроме ее идентификатора передавались и значения остальных элементов страницы.
Оставьте свое сообщение