Как исправить ошибку синхронизации между 1С:Бухгалтерией и 1С:ЗУП через COM-соединение после обновления платформы?

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

Синхронизация данных между типовыми конфигурациями «1С:Бухгалтерия предприятия» (БП) и «1С:Зарплата и управление персоналом» (ЗУП) — это критически важный процесс для ведения учета. Однако часто после обновления платформы 1С:Предприятие или самих конфигураций пользователи сталкиваются с ошибкой «Не удалось синхронизировать данные. Обратитесь к Администратору». Особенно это актуально при использовании прямого подключения через COM-соединение. В данной статье мы подробно разберем причины этой проблемы и пошагово восстановим работоспособность обмена.

Выясним причину: почему ломается COM-соединение?

При использовании прямого подключения одна база (например, БП) обращается к другой (ЗУП) через специальный программный интерфейс — COM-соединитель (библиотека comcntr.dll). Когда мы обновляем платформу, путь к новой версии библиотеки меняется. Система часто продолжает искать старую версию или не может инициализировать новую из-за отсутствия регистрации в операционной системе Windows. Рассмотрим основные ситуации, когда это происходит:

  1. Обновление версии платформы: Новая папка с версией (например, 8.3.16.1063) содержит свою библиотеку, которую нужно заново зарегистрировать.
  2. Конфликт разрядности: Сервер 1С может быть 64-битным, а библиотека зарегистрирована как 32-битная, или наоборот.
  3. Права доступа: Пользователь, под которым работает служба сервера 1С (обычно USR1CV8), теряет права на создание COM-объекта.

Шаг 1. Перерегистрация компоненты comcntr.dll

Это самый эффективный и быстрый способ решения проблемы. Нам необходимо принудительно указать операционной системе, какую именно библиотеку использовать для создания COM-соединения V83.COMConnector. Проанализируем последовательность действий, которую необходимо выполнить от имени администратора на сервере, где установлена 1С.

Откроем командную строку (cmd) от имени администратора и выполним следующие команды. Обратите внимание, что путь должен соответствовать вашей версии платформы. Разберем пример для версии 8.3.16.1063:


echo Запускать от имени администратора
C:\Windows\SySWOW64\regsvr32.exe /u "C:\Program Files\1cv8\8.3.16.1063\bin\comcntr.dll"
C:\Windows\SySWOW64\regsvr32.exe "C:\Program Files\1cv8\8.3.16.1063\bin\comcntr.dll"

Важное пояснение по разрядности:

Шаг 2. Очистка ручных настроек в Службе компонентов

Иногда системные администраторы настраивают COM-соединение через «Службы компонентов» (DCOM), создавая там отдельное приложение. Если вы обновляли платформу, старые настройки могут блокировать работу новой библиотеки. Проанализируем, как это исправить:

  1. Нажмем Win + R, введем dcomcnfg и нажмем Enter.
  2. Перейдем в раздел: Консоль управления — Службы компонентов — Компьютеры — Мой компьютер — Настройка DCOM.
  3. Найдем в списке компоненты, связанные с 1С (например, V83.COMConnector).
  4. Если там были сделаны ручные настройки прав или учетных записей, их следует временно удалить или обновить пути к исполняемым файлам библиотеки.

Шаг 3. Перезапуск службы сервера 1С:Предприятие

После регистрации библиотеки операционная система уже знает о ней, но запущенные процессы сервера 1С могут продолжать удерживать старые дескрипторы или использовать кэшированные данные. Для окончательного применения настроек выполним перезапуск службы:

  1. Откроем оснастку «Службы» (services.msc).
  2. Найдем службу «Агент сервера 1С:Предприятие 8.3».
  3. Нажмем правую кнопку мыши и выберем «Перезапустить».

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

Шаг 4. Устранение «зависших» сеансов

Разберем ситуацию, когда синхронизация запускается, но «зависает» на этапе выгрузки или загрузки. Как было отмечено в обсуждении проблемы, иногда при запуске из ЗУП первое COM-соединение остается висеть в списке пользователей. Это происходит из-за того, что объект COMConnector не был корректно уничтожен в памяти сервера.

В таком случае рекомендуется зайти в Консоль администрирования серверов 1С, перейти в раздел «Сеансы» нужной базы и принудительно завершить сеансы, которые были открыты под учетной записью, используемой для синхронизации. Это позволит системе создать «чистое» подключение при следующем запуске обмена.

Альтернативное решение: Переход на веб-сервисы

Если проблемы с comcntr.dll возникают регулярно после каждого обновления, рассмотрим более современный способ синхронизации, который рекомендует фирма «1С». Это обмен через Веб-сервисы (HTTP).

Преимущества этого метода:

Чтобы настроить такой обмен, необходимо опубликовать базу-приемник на веб-сервере (IIS или Apache) и в настройках синхронизации в базе-источнике выбрать способ подключения «Синхронизация через интернет». Это навсегда избавит вас от проблем с COM-компонентами.

Резюме: контрольный список действий

Подведем итог. Если после обновления платформы синхронизация между БП и ЗУП выдает ошибку, выполним следующие действия:

  1. Проверим версию платформы в обеих базах (она должна быть одинаковой).
  2. Запустим командную строку от администратора и перерегистрируем comcntr.dll с актуальным путем.
  3. Убедимся, что у пользователя USR1CV8 есть права на папку bin новой платформы.
  4. Перезапустим службу сервера 1С.
  5. Очистим кэш сервера 1С (папка snccntxt), если проблема сохраняется.

Соблюдение этой последовательности позволяет в 95% случаев решить проблемы с синхронизацией без привлечения разработчиков и изменения программного кода.

← На главную