Как организовать работу с хранилищем конфигураций 1С при использовании разных версий платформы у клиентов?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Разбор проблемы несовместимости

Основная сложность заключается в том, что сервер хранилища конфигураций (crserver.exe) жестко привязан к конкретному релизу платформы. Если клиент пытается подключиться к хранилищу, версия платформы которого отличается от его локальной, возникают ошибки соединения. Поскольку оперативное обновление платформы у всех клиентов одновременно зачастую невозможно из-за внутренних регламентов крупных организаций, нам необходимо техническое решение, позволяющее «развести» версии.

Решение: Параллельная работа нескольких серверов хранилищ

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

Шаг 1: Установка и запуск первого сервера хранилища

Если сервер хранилища уже работает, убедитесь, что он запущен как служба Windows. Для создания первого хранилища (если оно еще не настроено) используйте утилиту crserver.exe из каталога bin нужной версии платформы:


"C:\Program Files\1cv8\8.3.13.1063\bin\crserver.exe" -instsrvc -d c:\1c.repo -usr .\USR1CV8 -pwd 123
"C:\Program Files\1cv8\8.3.13.1063\bin\crserver.exe" -start

Шаг 2: Настройка второго сервера хранилища на другом порту

Чтобы запустить второе хранилище (например, для платформы версии 8.3.18), необходимо создать вторую службу Windows с уникальным именем и прописать использование другого сетевого порта. Выполните следующие действия:

  1. Создайте новую службу через командную строку:
    
    sc create "1C:Enterprise 8.3 Configuration Repository Server 2" binpath="C:\Program Files\1cv8\8.3.18.1128\bin\crserver.exe -instsrvc -d c:\1c.repo2 -port 1642"
    
  2. Для изменения настроек порта (если это не было сделано при установке службы) воспользуйтесь редактором реестра regedit. Найдите ветку службы и измените значение параметра port с 1542 (стандартный) на свободный, например 1642.
  3. После изменения настроек запустите службу через оснастку «Службы» (services.msc).

Шаг 3: Подключение клиентов

Теперь, при настройке подключения в конфигураторе 1С, клиент должен указывать строку соединения с учетом нового порта. Например, вместо стандартного пути, используется адрес с явно заданным портом:

tcp://dev1c01:1642/erp

Это позволит клиентам, использующим платформу 8.3.18, работать со своим выделенным сервером хранилища, не конфликтуя с остальными.

Альтернативный путь: Автоматизация поставок (.cf)

Если запуск множества серверов хранилищ кажется избыточным, рекомендуем рассмотреть переход на использование файлов поставки конфигурации (.cf). Это избавляет от зависимости от «живого» хранилища при каждом изменении:

Такой подход считается «взрослым» методом разработки, так как он позволяет проводить тестирование перед выпуском обновления и обеспечивает стабильность клиентских баз, исключая риск получения «нерабочего» кода из хранилища в момент активной разработки.

Рекомендации по публикации на веб-сервере

Если вы планируете публиковать эти хранилища через веб-сервер (IIS):

Это позволит избежать конфликта версий библиотек в оперативной памяти одного веб-сервера.

← На главную