Как настроить работу Альфа-Авто при наличии нескольких версий платформы 1С на одном сервере?

Системный администратор 1С v8.3 (Обычные формы)
← На главную

Ситуация, когда на одном сервере требуется одновременная работа нескольких версий платформы 1С:Предприятие 8.3, является стандартной для крупных компаний или системных администраторов, сопровождающих специфические отраслевые решения. Одним из таких решений является Альфа-Авто, которая часто жестко завязана на конкретную версию платформы (например, 8.3.10.2466) из-за использования внешних компонент защиты, таких как V8AutoSalon.dll. Ошибка при установке новой платформы, когда по неосторожности затирается существующая служба Windows, может привести к полной остановке работы программы.

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

Причина возникновения проблемы и анализ ситуации

При установке новой версии платформы 1С (например, 8.3.24.1548) по умолчанию включена опция "Установить сервер 1С:Предприятия как сервис Windows". Если на сервере уже работает другая версия платформы в качестве службы, установщик 1С перенастраивает существующую службу 1C:Enterprise 8.3 Server Agent на новый исполняемый файл. В результате старые базы, требующие специфических настроек или 32-битных компонент, начинают запускаться на новой платформе, что вызывает критические ошибки, такие как невозможность загрузки V8AutoSalon.dll.

Проанализируем ситуацию: Альфа-Авто (особенно старых редакций) активно использует COM-объекты и внешние компоненты, которые могут быть чувствительны к разрядности процесса. Если новая платформа установлена как 64-битная, а библиотека защиты 32-битная, прямая загрузка станет невозможной. Также важным фактором является то, что параметры регистрации COM-соединителя comcntr.dll в реестре Windows перезаписываются последней установленной версией.

Метод 1: Создание отдельной службы сервера 1С для старой платформы

Самым надежным решением является запуск каждой версии платформы как отдельной службы Windows с уникальными портами. Рассмотрим, как это сделать по шагам. Допустим, основная платформа 8.3.24 работает на стандартных портах (1540, 1541, 1560-1591), а для Альфа-Авто нам нужно вернуть 8.3.10.

Воспользуемся утилитой командной строки sc для создания новой службы. Важно запускать командную строку от имени администратора. Проанализируем пример команды:


sc create "1C:Enterprise 8.3.10 Server Agent" binPath= "\"C:\Program Files (x86)\1cv8\8.3.10.2466\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\1C_Data\srvinfo_8_3_10\"" start= auto

Разберем параметры этой команды подробнее:

  1. binPath — указывает путь к исполняемому файлу конкретной версии платформы. Обратите внимание на использование кавычек и экранирование.
  2. -regport 2541 — порт главного менеджера кластера. Мы изменили стандартный 1541 на 2541.
  3. -port 2540 — порт агента сервера. Мы изменили стандартный 1540 на 2540.
  4. -range 2560:2591 — диапазон портов для рабочих процессов. Это критически важно, чтобы рабочие процессы разных платформ не конфликтовали между собой.
  5. -d — путь к каталогу данных кластера. Никогда не используйте один и тот же каталог srvinfo для разных версий платформы, это приведет к порче файлов конфигурации кластера.

После создания службы необходимо зайти в консоль "Службы", найти созданную запись и убедиться, что она запускается под корректной учетной записью (обычно .\USR1CV8) и имеет доступ к папке данных -d.

Метод 2: Регистрация библиотеки V8AutoSalon.dll через COM+

Если после настройки сервера Альфа-Авто все еще выдает ошибку при обращении к V8AutoSalon.dll, проблема может заключаться в несоответствии разрядности сервера 1С и библиотеки. Рассмотрим решение через создание приложения в "Службах компонентов" (COM+).

Выясним причину: 64-битный процесс сервера 1С не может напрямую загрузить 32-битную DLL. Решение заключается в использовании dllhost.exe в качестве суррогата. Выполним следующие действия:

  1. Откроем "Панель управления" -> "Администрирование" -> "Службы компонентов".
  2. Перейдем в "Компьютеры" -> "Мой компьютер" -> "Приложения COM+".
  3. Создадим новое приложение (пустое), назовем его, например, 1C_AlphaAuto_Protection.
  4. В свойствах приложения на вкладке "Удостоверение" укажем пользователя, под которым работает сервер 1С.
  5. В ветке созданного приложения перейдем в папку "Компоненты" и добавим туда нашу библиотеку V8AutoSalon.dll.

Этот метод позволяет 64-битной платформе 1С обращаться к 32-битной компоненте через межпроцессное взаимодействие, что снимает ограничения разрядности.

Метод 3: Исправление регистрации COM-соединителя

Часто Альфа-Авто использует COM-соединение для связи с другими базами. При установке версии 8.3.24 системная библиотека comcntr.dll была перерегистрирована на новую версию. Если нам нужно, чтобы внешние вызовы использовали именно версию 8.3.10, выполним ручную перерегистрацию.

Рассмотрим порядок действий в командной строке:

  1. Сначала отменим регистрацию текущей библиотеки: regsvr32 /u "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"
  2. Затем зарегистрируем библиотеку нужной нам версии: regsvr32 "C:\Program Files (x86)\1cv8\8.3.10.2466\bin\comcntr.dll"

Помните, что регистрация comcntr.dll в системе может быть только одна. Если другие ваши базы (например, Бухгалтерия 3.0) требуют новую платформу для COM-соединений, вам придется искать компромисс или использовать запуск через V83.COMConnector.1 с явным указанием версии в коде (хотя 1С это поддерживает ограниченно).

Рекомендации по дальнейшей эксплуатации

Чтобы избежать подобных проблем в будущем, проанализируем лучшие практики администрирования серверов 1С:

Использование виртуализации: Как было предложено в обсуждении на форуме, самым "чистым" решением является разнос разных версий платформ по разным виртуальным машинам. Это полностью исключает конфликты в реестре и портах.

Контроль обновлений: При установке обновлений платформы всегда выбирайте "Выборочную установку" и внимательно проверяйте список устанавливаемых компонентов. Если сервер 1С уже настроен и работает, галку "Установить сервер как службу" лучше снимать, обновляя бинарные файлы вручную или настраивая новые службы через sc create.

Диагностика через технологический журнал: Если компонента не загружается, создайте файл logcfg.xml в папке conf нужной платформы. Настройте сбор события EXCP. Это поможет точно выяснить, по какому пути сервер ищет библиотеку и какой код ошибки возвращает операционная система (например, "отказано в доступе" или "не найден указанный модуль").

Таким образом, совместная работа Альфа-Авто на старой платформе и других баз на свежих релизах вполне возможна. Главное — четко разделять ресурсы сервера (порты и папки данных) и корректно управлять регистрацией внешних библиотек в операционной системе.

← На главную