При администрировании инфраструктуры 1С часто возникает ситуация, когда на одном сервере необходимо совместить работу старых систем и новых конфигураций, таких как УТ 11.4 или ERP. Один из критических вопросов в этом контексте — работа сервера хранилища конфигураций. Разберем подробно, как устроена эта связь, и как правильно настроить среду для бесконфликтной работы разных поколений платформы.
Первое, что нам необходимо уяснить: сервер хранилища 1С (crserver.exe) жестко привязан к версии платформы. Это означает, что если ваше хранилище создано или обслуживается платформой версии 8.3.10, вы не сможете полноценно работать с ним через конфигуратор версии 8.3.20 без предварительных манипуляций. Эта проблема актуальна как для серверного варианта (через tcp:// или http://), так и для прямого файлового доступа.
Проанализируем ситуацию автора: имеется старый IIS с древним релизом платформы и планируется внедрение новой конфигурации на свежем релизе. Попытка подключить «свежий» конфигуратор к «древнему» серверу хранилища приведет к ошибке несоответствия версий. Однако это не означает, что нам нужно отказываться от старой инфраструктуры.
Мы можем поднять на одном физическом сервере практически неограниченное количество экземпляров хранилищ для разных версий платформы. Рассмотрим алгоритм действий для реализации этой задачи:
sc create.-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
Если мы планируем использовать доступ через протоколы HTTP/HTTPS, работа с веб-сервером IIS потребует более тонкой настройки. Выясним причину: один Пул приложений (Application Pool) в IIS не в состоянии одновременно обрабатывать модули расширения разных версий 1С.
Для корректной публикации выполним следующие шаги:
1C_Repository_8.3.10 и 1C_Repository_8.3.23.True..1ccr) убедитесь, что путь к расширению (wsap22.dll или isapi_redirect.dll) указывает именно на ту папку bin, которая соответствует нужной версии платформы..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 на свежем релизе, порядок действий будет следующим:
crserver на свободном порту.Таким образом, старая и новая системы будут работать параллельно, не мешая друг другу, используя ресурсы одного физического сервера и веб-сервера IIS.