В практике администрирования систем на базе «1С:Предприятие» иногда возникают беспрецедентные ситуации, когда привычный порядок обновления программного обеспечения нарушается жесткими требованиями со стороны разработчиков конфигураций. Ярким примером стала ситуация на стыке 2019 и 2020 годов, когда при выходе очередных релизов конфигурации «1С:Бухгалтерия предприятия» (БП) редакции 3.0 (в частности, релиза 3.0.75.58) пользователи столкнулись с неожиданной блокировкой. Вместо стандартной рекомендации использовать платформу «не ниже указанной» в файле поставки было прописано требование использовать ТОЛЬКО конкретный релиз платформы — 8.3.15.1830.
В этой статье мы подробно разберем причины возникновения этой коллизии, проанализируем технические проблемы платформ линеек 8.3.15 и 8.3.16, а также рассмотрим практические сценарии администрирования, которые позволяют системным администраторам развертывать несколько версий серверов и платформ 1С на одном сервере для бесперебойной работы пользователей в «разнородной» среде.
---
Для того чтобы понять логику разработчиков фирмы «1С», нам необходимо восстановить хронологию и проанализировать техническое состояние технологических платформ того периода.
В конце 2019 года активно развивалась новая ветка платформы 8.3.16. Однако первые релизы этой ветки (такие как 8.3.16.1063, 8.3.16.1148 и др.) обладали рядом критических уязвимостей и ошибок («багов»), которые делали невозможной стабильную работу крупных и средних предприятий. Рассмотрим основные проблемы, зафиксированные в ветке 8.3.16 на тот момент:
rphost.exe лавинообразно потребляли память при выполнении регламентных заданий или формировании сложных отчетов, что приводило к аварийному завершению работы пользователей с ошибкой «Аварийно завершился рабочий процесс».Значение не является значением объектного типа.В то же время оставаться на старых стабильных ветках платформы (например, 8.3.12 или 8.3.14) было невозможно. Законодательство требовало внедрения Электронных трудовых книжек (ЭТК) и сдачи новой отчетности по форме СЗВ-ТД с начала 2020 года. Новый функционал БП 3.0 и ЗУП 3.1 использовал методы платформы, которые появились только в версии 8.3.15.
Сложилась патовая ситуация: старые платформы не поддерживали новый код конфигураций, а новые платформы ветки 8.3.16 работали нестабильно. Единственным протестированным, стабильным и надежным решением на тот момент оказался финальный релиз ветки 8.3.15 — 8.3.15.1830. Именно поэтому разработчики применили жесткое ограничение в кодовой базе БП 3.0, запретив запуск конфигурации на любых версиях платформы, отличных от этой.
---
Такое жесткое решение вызвало серьезные трудности у ИТ-отделов. Типичная инфраструктура среднего предприятия включает в себя не одну, а несколько баз данных:
Если все эти базы опубликованы на одном физическом сервере приложений 1С, стандартный запуск приводил к конфликту. База БП 3.0 отказывалась запускаться на сервере под управлением 8.3.16, а CRM-система работала некорректно на 8.3.15. Ситуация усугублялась тем, что встроенный механизм автоподбора версии платформы (автоселект через 1cestart.exe) на рабочих станциях пользователей часто давал сбои в доменной среде.
---
Для того чтобы решить проблему совместимости разных баз на одном сервере, мы можем использовать технологическую возможность одновременного запуска нескольких служб сервера «1С:Предприятие» разных версий на одном физическом компьютере. Рассмотрим подробную инструкцию по реализации этого сценария.
Установим на сервере обе необходимые версии платформы. В нашем примере это будут платформы 8.3.15.1830 и 8.3.16.1148. По умолчанию они установятся в разные каталоги:
C:\Program Files\1cv8\8.3.15.1830\C:\Program Files\1cv8\8.3.16.1148\Основной сервер 1С (например, версии 8.3.15.1830) обычно занимает стандартные порты:
Для запуска сервера версии 8.3.16.1148 нам необходимо назначить альтернативные порты, чтобы избежать конфликтов сокетов TCP/IP. Назначим следующие порты:
Для регистрации новой службы откроем командную строку от имени Администратора и выполним команду создания службы sc create. Обратите внимание на то, что пути к исполняемым файлам должны быть заключены в кавычки:
sc create "1C:Enterprise 8.3 Server Agent (8.3.16.1148)" binPath= "\"C:\Program Files\1cv8\8.3.16.1148\bin\ragent.exe\" -srvc -agent -regport 1641 -port 1640 -range 1660:1690 -d \"C:\ProgramData\1C\1cv8_8_3_16\"" start= auto
Разберем параметры этой команды:
-srvc — запускает исполняемый файл в режиме службы Windows.-agent — указывает запустить агент сервера.-regport 1641 — порт главного менеджера кластера.-port 1640 — порт агента сервера.-range 1660:1690 — диапазон портов для рабочих процессов rphost.exe.-d — каталог для хранения реестра кластера и настроек. Важно указать отдельную папку (в нашем примере 1cv8_8_3_16), чтобы службы не перезаписывали данные друг друга.После создания службы откроем консоль «Службы» (services.msc), найдем созданную службу и укажем для нее учетную запись пользователя, от имени которого она должна запускаться (обычно это USR1CV8), предварительно предоставив этой учетной записи полные права на каталог C:\ProgramData\1C\1cv8_8_3_16.
Теперь, когда у нас успешно функционируют два независимых сервера 1С на одном компьютере, мы можем настроить подключение пользователей к конкретным базам.
В окне запуска «1С:Предприятие» (список информационных баз) выберем нужную базу, нажмем кнопку «Изменить» и перейдем на страницу настройки параметров запуска:
имя_сервера:1540 (или просто имя_сервера, так как порт 1540 используется по умолчанию). В поле «Версия платформы» жестко пропишем: 8.3.15.1830.имя_сервера:1640. В поле «Версия платформы» пропишем: 8.3.16.1148 (или просто 8.3.16).Для централизованного управления версиями на сотнях рабочих мест системным администраторам рекомендуется использовать конфигурационный файл 1cestart.cfg, расположенный в каталоге %APPDATA%\1C\1cestart\. Мы можем автоматизировать этот процесс, прописав общие настройки для всей сети через Active Directory Group Policy (GPO).
---
Фирма «1С» оперативно отреагировала на отзывы ИТ-сообщества и системных администраторов крупных предприятий, для которых жесткое ограничение на один единственный релиз платформы парализовало процессы обновления сопутствующих конфигураций.
Уже в следующем техническом релизе «1С:Бухгалтерии предприятия КОРП» под номером 3.0.75.70 (и аналогичных релизах версий ПРОФ и базовой) жесткое ограничение «ТОЛЬКО» было полностью снято. Сопроводительный файл поставки получил стандартную формулировку:
«Текущая версия конфигурации предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.15.1830».
Это позволило компаниям, которые успешно развернули стабильные сборки платформы ветки 8.3.16, без препятствий обновлять конфигурацию «Бухгалтерия предприятия» и продолжать работу в едином информационном пространстве без принудительного понижения версии платформы (даунгрейда) на серверах приложений.