При обновлении прикладных решений 1С (таких как «Зарплата и управление персоналом», «Бухгалтерия предприятия» или «Управление торговлей») системные администраторы часто сталкиваются с жестким требованием со стороны конфигурации: необходимо обновить технологическую платформу 1С:Предприятие 8.3. Этот процесс нередко вызывает затруднения, особенно если на одном сервере должны сосуществовать несколько версий платформы, используются нестандартные сетевые порты или разворачивается тестовый контур.
В этой статье мы подробно разберем, как правильно подойти к обновлению платформы 1С, проанализируем требования конфигураций к релизам платформы, а также детально изучим механизм регистрации службы сервера 1С с помощью автоматизированных скриптов командной строки (bat-файлов) для 32-разрядных (x86) и 64-разрядных (x64) систем.
Перед тем как приступить к скачиванию и установке нового дистрибутива платформы, важно правильно определить целевой релиз. В описании к каждому обновлению конфигурации 1С указывает две версии платформы:
Рассмотрим практический пример. Если для работы конфигурации «Управление торговлей» (УТ 11) указана рекомендуемая платформа 8.3.16.1063, но минимально допустимая версия составляет 8.3.12.1685, это означает, что система будет функционировать и на более старых релизах платформы. Однако для стабильной работы всей экосистемы баз данных (например, если на сервере также крутится «Бухгалтерия предприятия 3.0», требующая платформу не ниже 8.3.15.1830) разумно выбрать стабильный, проверенный временем релиз из ветки 8.3.15.
Переходить на самые новые «мажорные» релизы платформы (например, ветку 8.3.16 и выше) в продуктивной среде сразу после их выхода не рекомендуется. На начальных этапах в новых ветках платформы могут возникать специфические баги, такие как проблемы с выводом на печать некоторых видов штрихкодов или утечки памяти в рабочих процессах rphost. Оптимальная стратегия — использование старших, стабилизированных технических релизов предыдущей ветки (например, 8.3.15.1830).
Когда вы устанавливаете новую версию платформы на сервер, где уже работает предыдущая версия, крайне важно не нарушить работу текущих пользователей. Для этого при инсталляции нового релиза через стандартный мастер установки рекомендуется придерживаться следующих правил:
C:\Program Files\1cv8\8.3.15.1830\). Это позволяет быстро откатиться назад в случае обнаружения критических ошибок в новом релизе.USR1CV8). Убедитесь, что вы знаете пароль от этой учетной записи, так как он потребуется при ручной регистрации новой службы.Для того чтобы зарегистрировать новую версию платформы в качестве службы Windows (особенно если требуется изменить стандартные порты или указать особый каталог для служебных файлов кластера), лучше всего использовать командный файл (скрипт с расширением .bat). Это автоматизирует процесс, исключает ошибки ручного ввода и позволяет быстро перерегистрировать службу при последующих обновлениях.
Рассмотрим структуру и параметры утилиты ragent.exe, которая отвечает за запуск агента сервера «1С:Предприятия 8»:
-srvc — запускать агент сервера в режиме службы Windows.-agent — указывает, что запускается именно агент сервера.-regport — порт главного менеджера кластера (по умолчанию 1541).-port — порт агента сервера, к которому подключается консоль администрирования (по умолчанию 1540).-range — диапазон портов для выделения рабочим процессам (по умолчанию 1560:1591).-d — путь к каталогу, в котором будут храниться служебные файлы кластера (настройки, список баз, сеансы). Крайне рекомендуется выносить этот каталог на быстрый диск (например, SSD) и не хранить его в стандартной системной папке во избежание снижения производительности.-debug — ключ запуска сервера в режиме отладки. Он необходим разработчикам для возможности отладки кода конфигурации непосредственно на сервере.Ниже представлен текст пакетного файла для создания службы 64-разрядного сервера 1С. Скрипт принимает два параметра при запуске: полный номер релиза платформы и первые две цифры номеров портов.
rem %1 – полный номер версии 1С:Предприятия (например, 8.3.15.1830)
rem %2 – первые две цифры портов. Для портов 1540, 1541, 1560:1591 – это 15. Для портов 2540, 2541, 2560:2591 – это 25.
set SrvUserName=".\USR1CV8"
set SrvUserPwd="ВашПарольПользователяUSR1CV8"
set RangePort=%260:%291
set BasePort=%241
set CtrlPort=%240
set SrvDir="D:\srvinfo_%1"
set SrvcName="1C:Enterprise 8.3x64 Server Agent %1"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ragent.exe\" -srvc -agent -regport %BasePort% -port %CtrlPort% -range %RangePort% -d \"%SrvDir%\" -debug"
set Desctiption="1C:Enterprise 8.3x64 Server Agent %1"
if not exist %SrvDir% mkdir %SrvDir%
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Dnscache/Tcpip/lanmanworkstation/lanmanserver
Чтобы запустить этот батник, откройте командную строку (cmd) от имени Администратора, перейдите в папку со скриптом и выполните команду:
register-s64.bat 8.3.15.1830 25
В результате на портах 2540 и 2541 будет зарегистрирована служба под управлением платформы версии 8.3.15.1830, а служебные файлы кластера будут автоматически созданы в каталоге D:\srvinfo_8.3.15.1830.
Если на вашем сервере развернута 32-разрядная версия сервера 1С:Предприятие (что часто встречается в небольших организациях или на тестовых машинах), пути к исполняемым файлам будут отличаться, так как они устанавливаются в каталог Program Files (x86). Рассмотрим адаптированный вариант скрипта:
rem %1 – полный номер версии 1С:Предприятия (например, 8.3.15.1830)
rem %2 – первые две цифры номеров портов (например, 15 или 25)
set SrvUserName=".\USR1CV8"
set SrvUserPwd="ВашПарольПользователяUSR1CV8"
set RangePort=%260:%291
set BasePort=%241
set CtrlPort=%240
set SrvDir="D:\srvinfo_%1"
set SrvcName="1C:Enterprise 8.3x86 Server Agent %1"
set BinPath="\"C:\Program Files (x86)\1cv8\%1\bin\ragent.exe\" -srvc -agent -regport %BasePort% -port %CtrlPort% -range %RangePort% -d \"%SrvDir%\" -debug"
set Desctiption="1C:Enterprise 8.3x86 Server Agent %1"
if not exist %SrvDir% mkdir %SrvDir%
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Dnscache/Tcpip/lanmanworkstation/lanmanserver
При ручной настройке служб Windows у администраторов часто возникает соблазн указать в качестве учетной записи запуска значение LocalSystem (Локальная система). Это серьезная ошибка безопасности. Проанализируем, почему этого делать нельзя:
LocalSystem, имеет неограниченный доступ к локальным ресурсам компьютера. В случае компрометации сервера 1С через уязвимости кода или СУБД, злоумышленник получит полный контроль над операционной системой.Правильное решение: Запуск должен производиться только от имени пользователя USR1CV8. При этом учетной записи должны быть явно предоставлены права «Вход в качестве службы» (Log on as a service) через локальные политики безопасности (утилита secpol.msc в разделе Local Policies -> User Rights Assignment). Также пользователю USR1CV8 необходимо выдать полные права (Full Control) на уровне NTFS на создаваемый каталог баз данных и каталог файлов кластера (параметр -d).
Если после регистрации службы сервер не запускается или пользователи получают ошибки лицензирования, выполните следующие проверочные действия:
sc stop и sc delete отрабатывает превентивно перед созданием (sc create) службы.ИмяСервера:2541.