При работе с устаревшими серверными системами, такими как Windows Server 2003 или Windows XP, системные администраторы часто сталкиваются с проблемой: свежеустановленный сервер 1С (версии 8.3.23, 8.3.24 и выше) отказывается работать. Служба ragent запускается на несколько секунд, после чего самопроизвольно завершается, создавая дампы памяти, но не оставляя при этом понятных записей в системных журналах Windows. Разберем эту ситуацию подробно, проанализируем причины и найдем работающие решения.
Первым делом проанализируем поведение системы в момент аварии. Основной признак проблемы — содержимое файла настроек агента сервера 1cv8wsrv.lst, который находится в каталоге srvinfo. В нормальных условиях там должен быть прописан идентификатор кластера (GUID), порты и параметры соединений. Однако при возникновении ошибки файл принимает следующий вид:
{
{0},
{0},0,1}
Значение {0} вместо уникального идентификатора говорит о том, что платформа 1С не смогла инициализировать объект кластера. Выясним причину: современные релизы 1С используют системные вызовы Windows для генерации GUID и управления потоками, которые в старых ядрах (версии NT 5.2, к которым относится Windows 2003) работают некорректно или отсутствуют вовсе. Когда ragent пытается создать структуру кластера по умолчанию и получает от ОС пустой ответ, он аварийно завершается, «подчищая» за собой конфигурационные файлы.
Рассмотрим более глубокие технические причины. Начиная с версий 8.3.20 и выше, архитектура платформы претерпела значительные изменения в области безопасности и взаимодействия с рантайм-библиотеками:
vc_redist.x86.exe, современные библиотеки Visual C++ часто требуют обновлений ядра ОС, которые не выпускались для Windows 2003. Это приводит к «тихому» падению процесса ragent.exe при обращении к отсутствующим точкам входа в kernel32.dll или advapi32.dll.Проверим это, запустив ragent вручную через командную строку (cmd). Если вы видите сообщение "Server agent finished" без дополнительных пояснений сразу после старта, значит, проблема носит фундаментальный характер на уровне несовместимости API.
Если обновление операционной системы на текущий момент невозможно, проанализируем ситуацию по шагам, чтобы убедиться, что мы исключили все побочные факторы:
USR1CV8_NEW, и включим его в группу администраторов. Посмотрим, изменится ли поведение службы при запуске от имени этого пользователя. Иногда системе не хватает прав на создание объектов в папке Local Settings\Temp.boot.ini в корне системного диска и убедимся, что параметр /noexecute настроен корректно. Для теста можно временно установить /noexecute=AlwaysOff.Проанализируем результаты тестов на различных версиях. Опытным путем установлено, что последней стабильной веткой для Windows Server 2003 является 8.3.18 (например, 8.3.18.1957). Все версии выше (8.3.19, 8.3.21, 8.3.23, 8.3.24) имеют жесткую зависимость от функций ОС, появившихся в Windows Server 2008 R2 и более поздних версиях.
Если ваши конфигурации требуют обязательного использования последних релизов платформы (например, для работы новых типовых решений БП 3.0 или ЗУП 3.1), использование Windows Server 2003 технически невозможно. В этом случае мы рекомендуем один из следующих вариантов:
SQL Server 2000 и 1С 7.7 на старом сервере, а серверную часть 1С 8.3 разверните на современной ОС (минимум Windows Server 2012 R2 или современный дистрибутив Linux).Apache. Однако для архивных баз на обычных формах этот метод может быть неудобен.Подводя итог, отметим, что ошибка с пустой структурой {0} в 1cv8wsrv.lst — это однозначный маркер несовместимости ядра 1С с операционной системой. Платформа просто не может создать кластер в памяти из-за ограничений устаревшего ядра Windows NT 5.2.
Для восстановления работоспособности на старом железе:
srvinfo.vc_redist.x86.exe именно из состава этой (старой) платформы.Это позволит запустить сервер 1С в штатном режиме, сохранив стабильность работы на заслуженном, но устаревшем оборудовании.