Синхронизация данных между конфигурациями «1С:Бухгалтерия предприятия 3.0» (БП) и «1С:Розница 2.2» — один из ключевых процессов в автоматизации торговой деятельности. Однако при работе в клиент-серверном варианте на платформе 1С:Предприятие 8.3 специалисты часто сталкиваются с неприятной проблемой: процесс обмена через сетевой каталог успешно запускается, проходит первые шаги, но на третьем этапе («Сопоставление и загрузка данных») примерно на 65% прогресс-бар замирает, и сессия аварийно завершается.
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем неочевидные технические причины сбоя, связанные с серверной архитектурой, и пошагово рассмотрим методы устранения этой проблемы.
Когда базы данных работают в клиент-серверном режиме, выполнение синхронизации кардинально отличается от файлового варианта. Все основные ресурсоемкие операции выполняются непосредственно на сервере приложений 1С рабочим процессом rphost. Пользователь на своем компьютере видит лишь визуальное отражение процесса.
Обрыв синхронизации на этапе сопоставления данных чаще всего обусловлен следующими факторами:
rphost аварийно перезапускается операционной системой из-за нехватки ресурсов. Сеанс пользователя при этом мгновенно обрывается.usr1cv8), должна обладать полными правами (чтение, запись, изменение) на этот сетевой каталог. Если прав недостаточно, то при попытке прочитать очередную порцию данных или записать временный лог-файл сервер блокирует операцию, и обмен прекращается.%USERPROFILE%\AppData\Local\Temp пользователя службы 1С). Если на системном диске сервера СУБД или сервера приложений заканчивается свободное место, запись прерывается, вызывая критический сбой.В процессе обмена пользователи часто сталкиваются со скрытыми ошибками типов, когда в коде платформы передается значение Неопределено или возникает конфликт схем данных. Проанализируем, почему это происходит:
EnterpriseData (XDTO-пакеты). Если конфигурации имеют разные релизы, структура метаданных может не совпадать. Приемник, считывая XML-файл, обнаруживает новые реквизиты, которых еще нет в его структуре данных. Парсер XDTO не может определить тип этого реквизита, присваивает ему внутреннее значение Неопределено, что в итоге приводит к падению платформенных алгоритмов сопоставления.СоответствияОбъектовИнформационныхБаз и ПубличныеИдентификаторыСинхронизируемыхОбъектов. Если в одной из баз объект (например, номенклатура или контрагент) был удален напрямую без контроля ссылочной целостности, то в этих регистрах остается ссылка вида <Объект не найден>. При попытке сопоставить данные алгоритм считывает эту битую ссылку, получает пустое значение и прерывает синхронизацию.---
Рассмотрим последовательность действий, которая поможет локализовать и полностью устранить ошибку синхронизации данных.
Прежде всего, убедимся в совместимости используемых версий программного обеспечения. Конфигурация Розница 2.2.11.29 требует использования платформы не ниже 8.3.13.1690. Проанализируем текущие релизы обеих баз. Выполним следующие действия:
EnterpriseData.1С:Предприятие на сервере приложений и на рабочих местах пользователей. Оптимальным решением будет переход на стабильные ветки платформы (например, актуальные релизы 8.3.14 или выше, если это поддерживается конфигурациями).Часто сбои происходят из-за повреждения или устаревания внутренних правил конвертации и регистрации данных. Перезапишем их заново:
Синхронизация данных.Временные файлы и кэш метаданных на стороне сервера могут искажать логику работы фоновых заданий обмена. Проведем очистку серверного кэша:
services.msc) или с помощью командной строки.C:\Program Files\1cv8\srvinfo).reg_1541. Внутри них будут находиться папки кэша конфигураций с длинными буквенно-цифровыми именами (UID). Удалим эти папки (внимание: не удаляйте файлы настроек кластера 1CV8Reg.lst).Проверим целостность ссылок в обеих базах данных. Для этого запустим конфигуратор каждой информационной базы под учетной записью Администратора и выполним следующие шаги:
Если в базах присутствуют зависшие сопоставления с некорректными типами данных, очистим их вручную. Для этого:
СоответствияОбъектовИнформационныхБаз.<Объект не найден>, удалим данные записи.ПубличныеИдентификаторыСинхронизируемыхОбъектов.При первой настройке обмена объем данных слишком велик, что гарантированно приводит к пиковым нагрузкам на сервер 1С. Разделим процесс на этапы:
Для того чтобы локализовать проблему и понять, виновата ли серверная инфраструктура или сами данные баз, выполним диагностику:
.dt) баз БП и Розницы.rphost или правах доступа службы usr1cv8 на сервере.Применяя эти шаги последовательно, мы гарантированно сможем выявить «узкое горлышко» процесса синхронизации, устранить программные конфликты типов данных и успешно завершить первоначальный обмен между конфигурациями 1С.