Многие администраторы и программисты 1С сталкиваются с ситуацией, когда штатное обновление технологической платформы приводит к неожиданным последствиям. В частности, переход на релиз 8.3.25 вызвал волну вопросов, связанных с нарушением работы механизмов синхронизации данных (РИБ или универсальный обмен) через прямое подключение (COM-соединение) — решить проблему поможет настройка синхронизации и обмена данными баз 1С.
Рассмотрим типичный сценарий: у нас есть файловые базы (например, "Зарплата и управление персоналом" и "Бухгалтерия"), между которыми настроен обмен. После обновления платформы с 8.3.23 или 8.3.24 на 8.3.25 обмен перестает работать. При этом обычная перерегистрация библиотеки comcntr.dll не помогает, а на других компьютерах со старыми релизами все функционирует корректно.
В этой статье мы подробно разберем причины этой проблемы, проанализируем ошибку инсталлятора новой платформы и рассмотрим пошаговые методы восстановления работоспособности обмена.
Чтобы понять, как исправить ошибку, давайте разберемся в её природе. Проблема кроется не в настройках самой базы данных, а в том, как новая платформа регистрирует свои компоненты в операционной системе Windows, особенно в 64-разрядных версиях ОС.
Для файлового варианта работы или при запуске клиента 1С мы часто используем 32-разрядное клиентское приложение (даже на 64-битной Windows). Для обмена данными 1С использует механизм COM (Component Object Model), вызывая библиотеку comcntr.dll.
В релизе 8.3.25 была обнаружена ошибка инсталлятора: при регистрации 32-разрядной библиотеки типов в системном реестре путь к ней прописывается в ветку, предназначенную для 64-битных библиотек. Это создает путаницу для операционной системы: когда 32-битное приложение 1С пытается создать COM-объект, система не находит правильного пути к интерфейсу в ожидаемом месте реестра.
Это самый действенный метод для восстановления работы COM-соединения на платформе 8.3.25, если вы используете 32-разрядный клиент 1С на 64-разрядной Windows.
Давайте выполним следующие действия:
Win + R и введем команду regedit.Для 64-разрядной ОС (наиболее распространенный вариант) нам нужно перейти по следующему пути:
HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\{98AC3B5B-5323-418F-8F07-E32F231D2393}\1.0\0\
Внутри этой ветки вы увидите папку (раздел) с названием win64. В этом и заключается ошибка. Поскольку мы работаем в ветке WOW6432Node (эмуляция 32-битной среды) и используем 32-битную DLL, раздел должен называться win32.
Что нужно сделать:
win64 внутри указанного выше пути.win32.Если у вас 32-разрядная ОС (что сейчас редкость), путь будет таким:
HKEY_CLASSES_ROOT\TypeLib\{98AC3B5B-5323-418F-8F07-E32F231D2393}\1.0\0\
Здесь также нужно проверить наличие папки win64 и при необходимости переименовать её в win32.
После этой манипуляции перезапустите сеанс 1С и попробуйте выполнить проверку подключения в настройках синхронизации. В большинстве случаев ошибка исчезнет.
Иногда проблема усугубляется тем, что библиотека вовсе не зарегистрирована или зарегистрирована старая версия. Рассмотрим, как правильно перерегистрировать компоненту, учитывая особенности 64-битных систем.
Важно помнить: в 64-битной Windows есть две версии утилиты регистрации:
C:\Windows\System32\regsvr32.exe — для 64-битных DLL.C:\Windows\SysWOW64\regsvr32.exe — для 32-битных DLL.Если вы используете 32-битный клиент 1С, вам необходимо зарегистрировать DLL именно из папки 32-битной платформы (обычно это Program Files (x86)) с помощью утилиты из SysWOW64.
Создадим командный файл или выполним в командной строке (запущенной от имени администратора) следующую команду:
"C:\Windows\SysWOW64\regsvr32.exe" "C:\Program Files (x86)\1cv8\8.3.25.XXXX\bin\comcntr.dll"
Где 8.3.25.XXXX — это точный номер вашего релиза платформы.
Если же вы используете 64-битный сервер 1С, то для серверных вызовов нужно зарегистрировать 64-битную компоненту:
"C:\Windows\System32\regsvr32.exe" "C:\Program Files\1cv8\8.3.25.XXXX\bin\comcntr.dll"
Рекомендуем перед регистрацией новой версии удалить регистрацию старой, добавив ключ /u к команде, например: regsvr32.exe /u "путь_к_старой_dll".
Если правка реестра не помогла, или если обмен падает с ошибками доступа ("Access denied", "Ошибка создания объекта"), стоит проверить настройки DCOM. Это особенно актуально, если обмен запускается в фоновом режиме или по расписанию — для таких сценариев есть автоматический запуск обмена 1С через COM.
Давайте настроим приложение COM+ вручную:
Win + R, введите dcomcnfg и нажмите Enter.V83_COM_Connector, и выберите "Серверное приложение".comcntr.dll в папке bin нужной версии платформы (8.3.25).Эта процедура "изолирует" процесс COM-соединения и запускает его от имени конкретного пользователя, что решает массу проблем с правами доступа к файловой системе и реестру.
Если борьба с COM-соединением отнимает слишком много времени, стоит рассмотреть альтернативные варианты обмена, которые предлагает платформа 1С. Иногда использование внешних инструментов является лучшим решением. Например, для быстрой миграции данных между базами подойдет простой менеджер данных (simple data manager), который позволяет удобно переносить информацию без сложной настройки COM.
Самый простой способ восстановить работу "здесь и сейчас" — перенастроить синхронизацию через каталог.
В настройках синхронизации выберите вариант "Другие каналы связи" -> "Каталог на диске".
Преимущества:
Этот вариант идеален для файловых баз, расположенных в локальной сети. Чтобы расширить возможности штатного механизма, можно использовать инструмент Выгрузка и загрузка данных XML с дополнительными опциями, позволяющий делать отборы по подсистемам и независимым регистрам — для этого подойдёт универсальная выгрузка и загрузка XML для 1С. Если же конфигурации источника и приемника отличаются, выручит адаптивная выгрузка и загрузка данных XML, работающая даже с неидентичными структурами метаданных. В случаях, когда передача файлов осуществляется через незащищенные каналы, стоит обратить внимание на универсальную выгрузку с возможностью шифрования.
Более современный и надежный подход, особенно если базы разнесены территориально или используются серверные версии.
Для этого потребуется:
Веб-сервисы работают быстрее COM в условиях нестабильной сети. В качестве альтернативы можно рассмотреть универсальный перенос данных между разными конфигурациями, использующий технологию COM+HTTP и позволяющий обойти многие ограничения стандартных протоколов.
Проблема с COM-обменом в 25-м релизе платформы 1С — это известная ошибка регистрации типов. Мы разобрали основной способ лечения через правку реестра (замена win64 на win32 в WOW6432Node). Если вы столкнулись с этой ситуацией, не спешите делать "даунгрейд" платформы. Попробуйте применить описанные исправления или временно переключите обмен на файловый режим с использованием специализированных обработок.