При совместной разработке конфигураций в среде 1С:Предприятие разработчики нередко сталкиваются со сбоями службы сервера хранилища конфигурации (crserver). Одна из распространенных неполадок возникает непосредственно на этапе инициализации: попытка создать новое хранилище на сервере по протоколу TCP завершается сообщением «Ошибка XML-протокола при работе с удаленным хранилищем конфигурации по причине: Ошибка преобразования данных XML». При этом существующие хранилища в том же каталоге продолжают функционировать в штатном режиме, а свободного места на диске сервера достаточно.
Разберем детально, почему возникает эта ошибка, как быстро обойти ее для продолжения работы и какие системные настройки необходимо проверить для полного устранения первопричины сбоя.
Когда требуется срочно создать хранилище конфигурации и нет времени на углубленный аудит серверных журналов, применим проверенный рабочий метод локального создания хранилища с последующим переносом файлов на сервер службы crserver.
Разберем по шагам последовательность действий:
1cv8ddb.1CD и служебные файлы.crserver (путь к нему задается системным параметром -d при регистрации службы). Имя перенесенной папки будет соответствовать имени хранилища при подключении.tcp://ИмяСервера:1542/ИмяПапки.Поскольку чтение и фиксация изменений в уже существующем хранилище задействуют другие алгоритмы сериализации пакетов, подключение и дальнейшая работа через службу crserver пройдут успешно.
Проанализируем ситуацию, чтобы понять природу ошибки разбора XML. Сообщение о сбое XML-протокола со стороны клиента указывает на то, что конфигуратор получил от сервера некорректно сформированный, поврежденный или усеченный поток данных, который встроенный парсер XML не смог обработать. Выделим ключевые факторы, приводящие к такому поведению службы:
Local System или специальной сервисной учетной записи ОС). При обращении к существующей базе службе требуются только права чтения и модификации уже имеющихся файлов. Однако при удаленном создании служба обязана создать новую поддиректорию в корневом каталоге и инициализировать в ней структуру базы данных. Если у учетной записи службы нет прав на создание вложенных каталогов или файлов в целевой папке, операция аварийно обрывается, а клиент получает пустой или поврежденный ответ.TEMP): При создании хранилища через сеть на сервер передается полный объем метаданных конфигурации. Служба crserver выполняет предварительную буферизацию и распаковку данных во временную директорию профиля пользователя службы (например, C:\Windows\System32\config\systemprofile\AppData\Local\Temp). Переполнение диска с временными файлами, квотирование или поврежденные права доступа приводят к ошибке сериализации потока.crserver.exe и 1cv8.exe.Разберем шаги, которые позволят локализовать техническую неисправность и вернуть возможность удаленного создания хранилищ без применения обходных путей:
logcfg.xml с отбором событий EXCP и ERR по процессам crserver и 1cv8. В логах технологического журнала вместо общей формулировки об ошибке XML будет зафиксирована исходная причина (например, код системной ошибки операционной системы «Access denied» или сбой создания временного файла).%TEMP% соответствующей учетной записи, предварительно очистив его от устаревших временных файлов.crserver.exe, каталог расположения хранилищ и используемый TCP-порт (стандартно 1542) в списки исключений антивирусных мониторов и брандмауэра.Если служба хранилища по протоколу TCP регулярно демонстрирует нестабильность при работе по сети, рассмотрим более надежные варианты организации совместной разработки:
wslogr и файла дескриптора .1ccr значительно стабильнее прямого TCP-соединения. Веб-сервер поддерживает шифрование TLS/SSL, автоматическое сжатие пакетов и корректно обрабатывает разрывы связи и ограничения на максимальный размер передаваемого тела запроса (параметры maxAllowedContentLength в IIS или LimitRequestBody в Apache).1cv8ddb.1CD.