Синхронизация данных между конфигурациями Бухгалтерия государственного учреждения, редакция 1.0 (БГУ 1.0) и Зарплата и кадры государственного учреждения, редакция 3.1 (ЗКГУ 3.1) — это сложный процесс, объединяющий две разные архитектуры: «обычные» формы старого поколения и «управляемое» приложение нового поколения. При обновлении релизов пользователи часто сталкиваются с критической ошибкой при попытке создать или перенастроить обмен: Ошибка при вызове метода контекста (ВнешнееСоединениеВыполнитьДействияПоНастройкеНовогоОбменаДанными). При этом программа настойчиво требует завершить работу всех пользователей, даже если в базе находится всего один администратор.
В данной статье мы разберем причины этого поведения, проанализируем технические нюансы взаимодействия систем через COM-соединение и рассмотрим наиболее стабильные способы решения проблемы, включая переход на обмен через файлы.
Разберем ситуацию: метод ВнешнееСоединениеВыполнитьДействияПоНастройкеНовогоОбменаДанными является частью механизма БСП (Библиотеки стандартных подсистем). Когда мы пытаемся настроить синхронизацию «напрямую» (через прямое подключение к другой базе), одна программа запускает фоновый процесс, который через COM-объект подключается ко второй программе. Ошибка чаще всего сигнализирует о том, что:
comcntr.dll не зарегистрирована или имеет версию, отличную от версии используемой платформы 1С:Предприятие.Проанализируем пошагово, как устранить эти препятствия.
Прежде чем приступать к программным изменениям, убедимся, что база действительно монопольно доступна. Программа выдает сообщение о необходимости завершить работу пользователей, так как создание новой настройки обмена требует записи в системные таблицы, которые могут быть заблокированы другими процессами.
Рассмотрим порядок действий для файловой базы:
1Cv8.lcl или 1Cv8.lgd. Если 1С закрыта, а файлы блокировок остались — удалим их (предварительно сделав бэкап).%AppData%\1C\1cv8\.Для серверной базы необходимо зайти в Консоль администрирования серверов 1С, найти нужную информационную базу и принудительно завершить все сеансы в разделе «Сеансы», включая фоновые задания.
Одной из частых причин ошибки является использование устаревших правил обмена, которые остались в базе от предыдущих релизов. Рассмотрим, как правильно обновить правила в БГУ 1.0.
Комплект актуальных правил всегда идет вместе с обновлением конфигурации. Обычно они находятся в каталоге шаблонов:
C:\Users\ИмяПользователя\AppData\Roaming\1C\1cv8\tmplts\1c\StateAccounting\1_0_XX_X\Обмены данными\Обмен с конфигурацией Зарплата и кадры государственного учреждения, ред. 3.1\
Нам понадобятся файлы:
ExchangeRules.xml (Правила обмена)CorrespondentExchangeRules.xml (Правила корреспондента)В интерфейсе БГУ 1.0 перейдем в раздел Сервис — Обмен данными с продуктами на платформе 8.2 — Настройки обмена данными. Откроем нашу настройку и выберем пункт «Загрузить правила обмена». Укажем пути к извлеченным файлам. Это критически важно, так как новые релизы ЗКГУ 3.1 требуют специфических вызовов методов, которые прописаны только в свежих правилах.
Если обновление правил и очистка сеансов не помогают, а ошибка ВнешнееСоединение... продолжает появляться, наиболее эффективным решением будет отказ от прямого подключения в пользу обмена через файл (XML).
Рассмотрим, почему это работает. При прямом подключении программы зависят от стабильности COM-соединения и совместимости версий comcntr.dll. При файловом обмене каждая программа работает независимо: одна выгружает данные в файл, вторая загружает их из этого файла. Это исключает возникновение ошибки вызова методов внешнего соединения.
Алгоритм настройки обмена через файл:
C:\1C_Exchange\).synchronization.xml).Этот метод считается «золотым стандартом» для связки БГУ 1.0 и ЗКГУ 3.1, так как он наиболее отказоустойчив при обновлениях платформ.
Если вы принципиально хотите использовать прямое подключение, проанализируем состояние системных библиотек. Часто ошибка возникает из-за того, что в системе зарегистрирована версия comcntr.dll от старой платформы, а база запускается на новой.
Выясним, как зарегистрировать библиотеку вручную:
regsvr32 "C:\Program Files\1cv8\8.3.13.1690\bin\comcntr.dll"
Если вы используете 64-битную версию платформы, путь может отличаться. После успешной регистрации библиотеки перезагрузите компьютер и попробуйте снова создать настройку синхронизации в 1С.
Мы выяснили, что ошибка метода ВнешнееСоединениеВыполнитьДействияПоНастройкеНовогоОбменаДанными_2_0_1_6 — это чаще всего следствие технического конфликта при попытке прямого взаимодействия двух разных конфигураций.
Для быстрого исправления ситуации рекомендуем:
tmplts.Соблюдение этих шагов позволит вам успешно завершить перенос данных по заработной плате в бухгалтерию и избежать простоев в работе организации.