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

04.09.18

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

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

Файлы

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

Наименование Скачано Купить файл
Command/com - конфигурация
.cf 172,63Kb
4 1 850 руб. Купить
Command/com - выгрузка БД
.dt 204,62Kb
8 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Нас часто просят привести примеры работы с 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 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    222206    1211    415    

1062

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

14400 руб.

20.08.2024    45572    250    129    

231

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

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

22200 руб.

06.10.2023    28396    76    30    

101

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    18324    35    7    

45

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

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

9500 руб.

17.05.2024    40442    148    57    

184

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

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

16000 руб.

10.11.2023    20079    77    39    

92

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 руб.

22.11.2024    2799    2    0    

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