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

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

При администрировании инфраструктуры 1С часто возникает ситуация, когда на одном сервере необходимо совместить работу старых систем и новых конфигураций, таких как УТ 11.4 или ERP. Один из критических вопросов в этом контексте — работа сервера хранилища конфигураций. Разберем подробно, как устроена эта связь, и как правильно настроить среду для бесконфликтной работы разных поколений платформы.

Зависимость хранилища от версии платформы

Первое, что нам необходимо уяснить: сервер хранилища 1С (crserver.exe) жестко привязан к версии платформы. Это означает, что если ваше хранилище создано или обслуживается платформой версии 8.3.10, вы не сможете полноценно работать с ним через конфигуратор версии 8.3.20 без предварительных манипуляций. Эта проблема актуальна как для серверного варианта (через tcp:// или http://), так и для прямого файлового доступа.

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

Параллельный запуск нескольких серверов хранилища

Мы можем поднять на одном физическом сервере практически неограниченное количество экземпляров хранилищ для разных версий платформы. Рассмотрим алгоритм действий для реализации этой задачи:

  1. Установка компонентов: На сервер, где уже работает старая платформа, устанавливаем новую версию платформы 1С. При установке достаточно выбрать только компоненту «Сервер хранилища конфигураций 1С:Предприятия».
  2. Создание службы: Для новой версии необходимо создать отдельную службу Windows. Это делается через командную строку с использованием утилиты sc create.
  3. Разнесение по портам: Каждая служба должна слушать свой уникальный порт. Если стандартный порт — 1542, то для новой версии назначим, например, 1543. Это указывается в параметрах запуска службы через ключ -port.

Пример регистрации службы для новой версии платформы:


sc create "1C:Enterprise 8.3 Repository Server (8.3.23.1688)" binPath= "\"C:\Program Files\1cv8\8.3.23.1688\bin\crserver.exe\" -srvc -port 1543 -d \"C:\Repositories\NewProject\"" displayname= "1C:Enterprise 8.3 Repository Server (8.3.23.1688)" depend= Tcpip start= auto

Особенности публикации хранилища на IIS

Если мы планируем использовать доступ через протоколы HTTP/HTTPS, работа с веб-сервером IIS потребует более тонкой настройки. Выясним причину: один Пул приложений (Application Pool) в IIS не в состоянии одновременно обрабатывать модули расширения разных версий 1С.

Для корректной публикации выполним следующие шаги:

  1. Создание пулов: В диспетчере IIS создаем отдельный Пул приложений для каждой версии платформы 1С. Называем их понятно, например, 1C_Repository_8.3.10 и 1C_Repository_8.3.23.
  2. Настройка разрядности: Если вы используете 32-битную версию платформы на 64-битной Windows, обязательно установите в настройках пула параметр «Разрешить 32-панельные приложения» в значение True.
  3. Файл публикации: При публикации хранилища (создании файла .1ccr) убедитесь, что путь к расширению (wsap22.dll или isapi_redirect.dll) указывает именно на ту папку bin, которая соответствует нужной версии платформы.
  4. Связь с портом: Внутри файла .1ccr адрес должен ссылаться на crserver.exe, запущенный на соответствующем порту (например, tcp://localhost:1543).

Режим совместимости и утилита конвертации

Помимо версии исполняемых файлов, у самого файла базы данных хранилища (1Cv8DDB.1CD) есть внутренний параметр — Режим совместимости. Посмотрим на основные градации:

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

Важно: Перед любыми операциями с cnvdbfl обязательно создавайте резервную копию файла 1Cv8DDB.1CD!

Проблема локального кэша и риски файлового доступа

Часто разработчики сталкиваются с «неклассифицированной ошибкой» при работе с хранилищем. Проанализируем ситуацию: даже если серверная часть настроена идеально, проблема может крыться в локальном кэше на компьютере программиста. Локальный кэш хранилища находится по пути %LOCALAPPDATA%\1C\1Cv8\...\repository.

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

Также стоит предостеречь от использования прямого файлового доступа к хранилищу через сетевую шару (путь типа \\server\repo). Если два разработчика подключатся к такому файлу разными версиями конфигуратора, это с высокой долей вероятности приведет к разрушению структуры базы данных хранилища. Работа через службу crserver.exe (по протоколу tcp или http) является гораздо более безопасной, так как служба берет на себя управление монопольным доступом к файлам данных.

Резюме по настройке

Подводя итог, для вашей ситуации с переходом на УТ 11.4 на свежем релизе, порядок действий будет следующим:

  1. Установите на сервер с IIS вторую, более новую версию платформы.
  2. Запустите новый экземпляр службы crserver на свободном порту.
  3. В IIS создайте отдельный пул приложений для новой платформы.
  4. Выполните новую публикацию хранилища через этот пул.

Таким образом, старая и новая системы будут работать параллельно, не мешая друг другу, используя ресурсы одного физического сервера и веб-сервера IIS.

← На главную