Как запустить 64-битный сервер 1С:Предприятие 8.3 и перенести базы с 32-битной версии?

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

Переход с 32-битной на 64-битную версию сервера 1С часто сопровождается техническими сложностями. Типичная ситуация: после установки 64-битного сервера служба запускается и через секунду останавливается, а информационные базы «пропадают». Рассмотрим подробно, как диагностировать и решить эти проблемы, разберем настройку портов, прав доступа и параметров реестра.

Анализ конфликта портов и одновременной работы служб

Основная причина, по которой 64-битный сервер 1С не запускается после или параллельно с 32-битным — это конфликт сетевых портов. По умолчанию сервер 1С использует следующие порты:

  1. Порт агента сервера: 1540
  2. Порт главного менеджера кластера: 1541
  3. Диапазон портов рабочих процессов: 1560-1591

Проанализируем ситуацию: если на компьютере уже установлена 32-битная версия, она занимает эти порты. При попытке старта 64-битная служба видит, что порт 1540 занят, и мгновенно завершает работу. Чтобы решить эту проблему, нам необходимо либо полностью отключить/удалить 32-битную версию, либо развести службы по разным портам.

Для изменения портов в 64-битной версии воспользуемся командной строкой (cmd) от имени администратора. Выполним перенастройку службы через команду sc config. Предположим, мы хотим назначить 64-битному серверу порты, начинающиеся с 1640.


sc stop "1C:Enterprise 8.3 Server Agent"
sc config "1C:Enterprise 8.3 Server Agent" binPath= "\"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe\" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d \"C:\Program Files\1cv8\srvinfo\""
sc start "1C:Enterprise 8.3 Server Agent"

Важно: Между binPath= и открывающей кавычкой обязательно должен быть пробел, это синтаксическая особенность команды sc.

Проверка параметров регистрации в реестре Windows

Даже после удаления старой версии Windows может сохранять некорректные пути в реестре. Если служба ссылается на исполняемый файл в папке C:\Program Files (x86)\..., она не сможет корректно работать как 64-битный процесс. Разберем, как это проверить.

Откроем редактор реестра regedit и перейдем по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent. Найдем параметр ImagePath. Убедимся, что путь ведет к папке C:\Program Files\1cv8\... (для 64-бит), а не в папку 32-битных приложений. Если путь неверный, отредактируем его вручную, сохраняя все ключи запуска (-srvc, -agent, -d).

Восстановление списка информационных баз (srvinfo)

Часто пользователи жалуются, что «базы исчезли». На самом деле, сервер 1С просто ищет их не в той директории. Параметр -d в строке запуска службы указывает на каталог данных кластера (обычно это папка srvinfo).

Разберем по шагам, как вернуть список баз:

  1. Выясним, где хранились данные 32-битного сервера. Обычно это C:\Program Files (x86)\1cv8\srvinfo.
  2. Скопируем содержимое этой папки в новый каталог для 64-битной версии, например, в C:\Program Files\1cv8\srvinfo.
  3. В параметрах запуска службы (через реестр или sc config) укажем путь к этой новой папке через флаг -d.

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

Настройка прав доступа и учетной записи службы

Если служба останавливается с ошибкой «отказано в доступе», необходимо проверить, от чьего имени она запускается. Часто при установке выбирается пользователь USR1CV8. Рассмотрим, какие права ему необходимы:

Посмотрим на типичную ошибку: если папка была создана под одним пользователем, а служба запускается под другим, 1С не сможет создать файл блокировки 1cv8.log или прочитать 1CV8Reg.lst, что приведет к немедленной остановке процесса ragent.exe.

Диагностика через «Просмотр событий» Windows

Когда служба «запускается и сразу останавливается», гадать о причинах не стоит — система всегда фиксирует ошибку. Проанализируем журналы Windows:

  1. Нажмем Win + R, введем eventvwr.msc.
  2. Перейдем в раздел Журналы Windows -> Приложение.
  3. Ищем события с уровнем «Ошибка» от источника 1C:Enterprise.

Если мы видим текст «Порт занят», возвращаемся к настройке портов. Если «Ошибка доступа к файлу», проверяем права на srvinfo. Если ошибка связана с драйвером базы данных, выясним причину в следующем разделе.

Разрядность драйверов СУБД (SQL Native Client)

Выясним важный нюанс: 64-битный сервер 1С требует 64-битных библиотек для связи с СУБД. Если вы используете Microsoft SQL Server, убедитесь, что на сервере установлен SQL Server Native Client (x64). 32-битные компоненты доступа, которые работали со старым сервером 1С, для нового сервера будут бесполезны. Без соответствующих драйверов сервер запустится, но не сможет подключить ни одну базу данных, выдавая ошибку соединения.

Очистка кэша сервера

В некоторых случаях запуск блокируется поврежденными временными файлами. Если все вышеперечисленное не помогло, попробуем выполнить очистку:

  1. Остановим службу 1C:Enterprise 8.3 Server Agent.
  2. Зайдем в папку srvinfo\reg_1541.
  3. Удалим содержимое папки snccntxt (сеансовые данные) и временные файлы из snccntx+GUID.

Внимание: Не удаляйте файл 1CV8Reg.lst, иначе список баз в консоли администрирования станет пустым и их придется добавлять вручную.

Таким образом, последовательно проверяя порты, пути в реестре, права доступа и журналы событий, мы сможем успешно запустить 64-битную версию сервера 1С и сохранить все существующие информационные базы.

← На главную