Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Всем доброго вторника. Началась неделя распродаж в сфере ритейл и наверное не только. А 'то значит что что уже никакие серьезные изменения в проде не делаются или еще не делались и будут выполнятся после распродаж, и на фоне этого появилось время поделится с вами неким инструментом.
Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого сказали бы, есть же консоль на win с нее же это можно делать, и все верно но есть пару но.
Наш департамент разделен на админов и на тех. поддержку (с разным уровнем знаний) и по этому админам и консоль сойдет для администрирования, но вот для тех поддержки давать консоль в которой можно удалить сервер с кластера и сменить назначение ролей и тд, совсем не охота. Да и для этого нужно иметь кучу разных консолей с необходимой версией 1С, перенастраивать ее для каждого при смене сервера или порта для платформы. Как для меня это просто потраченное время, только ради того что б можно было срубить сеанс. И для того что б снять с админов такую мелкую, но отвлекающую задачу сделали такой инструмент.
В основе его лежит RAC, те кто работает вплотную с 1С знает что это такое. Далее мы его используем в паре скриптов PHP, ну а дальше всего лишь CSS, NGINX, PHP-FPM.
Весь инструмент упакован в контейнеры NGINX и PHP который build через docker-compose и через него и стартует. и все инструмент готов. Исходники можно глянуть в моем хабе оттуда же все скачать подправить под себя и пользоваться.
Кратко о том что нужно править.
Это конечно же доменное имя по которому вы будете заходить на веб, но можно и вовсе не править а заходить по адресу на котором у вас висят контейнеры.
Так ж необходимо поправить index.php, а именно ID кластера 1С и ID базы в кластере.
<form method="POST">
<input name="DB" id="DB" value="ид базы" type="hidden" readonly >
<input name="SRV" id="SRV" value="адрес или имя сервера" type="hidden" readonly >
<input name="CL" id="CL" value="ид кластера" type="hidden" readonly >
<input type="submit" name="DBSELECT" value="имя которое вы бы хотели видеть" style="width:120px;height:25px"/>
</form>
<form method="POST">
<input name="SU" id="SU" value="" style="width:220px;height:25px" placeholder="тут вводить только session" >
<input name="SRV" id="SRV" value="иадрес или имя сервера" type="hidden" readonly >
<input name="CL" id="CL" value="ид кластера" type="hidden" readonly >
<input type="submit" name="USRSELECT" value="DEL session" style="width:150px;height:25px"/>
</form>
После этого делать билд всего и запуск. И уже для одной из баз у вас будет доступ.
В контейнере использую версию 1с/RAC 8.3.12.1567 и этого достаточно. RAS тот что стоит рядом с сервером 1С может быть отличен от версии в контейнере и это не страшно так все работает. главное что б RAS совпадал с версией на сервере с 1С.
Чуть ниже скрипт создания службы для RAS, которую вам нужно установить на вашем 1Сном сере. нужно что б он был в диапазоне портов сервера службы 1с и был той же версии. В примере так же 8.3.12.1567 на стандартном порту.
@echo off
set SrvUserName=.\USR1C_RAS
set SrvUserPwd="1111"
set CtrlPort=1540
set AgentName=localhost
set RASPort=1545
set SrvcName="1C:Enterprise 8.3 Remote Server"
set BinPath="\"C:\Program Files\1cv8\8.3.12.1567\bin\ras.exe\" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%"
set Desctiption="1C:Enterprise 8.3 Remote Server"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption%
Вот и все. Нужно вносить хотфиксы в прод, получилось не так много времени как ожидалось)
Пользуйтесь, комментируйте, может кто то поправит мой любительский html/php/css)