При администрировании и поддержке систем на базе «1С:Предприятие» специалисты часто сталкиваются с ситуацией, когда после обновления платформы (например, на релизы ветки 8.3.15 или 8.3.16) ломается привычный механизм синхронизации данных между конфигурациями «Зарплата и управление персоналом» (ЗУП) и «Бухгалтерия предприятия» (БП).
Типичный сценарий проблемы: документы (например, Резервы по оплате труда или Отражение зарплаты в бухучете) успешно выгружаются из ЗУП в БП. На стороне бухгалтерии пользователь проверяет документ, проводит его и устанавливает критически важный флаг «Отражено в бухучете пользователем». Однако при следующем сеансе обмена этот флаг не возвращается обратно в ЗУП. Более того, флаг может принудительно сняться и в самой базе БП, откатывая изменения назад. Обмен фактически становится односторонним.
В этой статье мы подробно разберем причины такого поведения платформы, проанализируем технические нюансы работы COM-соединений и рассмотрим наиболее эффективные способы решения этой проблемы.
Рассмотрим детально, как устроен процесс обмена при прямом подключении (COM-соединении) и почему он дает сбой после обновления платформы:
V83.COMConnector. Сам процесс синхронизации выполняется на стороне сервера «1С» в контексте фонового задания. В проблемных релизах платформы (включая 8.3.15.1830) присутствует зарегистрированный баг: при инициализации обратного получения данных в фоновом задании серверный рабочий процесс (rphost) аварийно завершается по ошибке доступа к памяти.8.3.12 и новая 8.3.15), операционная система Windows может использовать устаревшую библиотеку comcntr.dll для связи между базами. Из-за несовместимости версий выгрузка данных из ЗУП в БП отрабатывает, а процедура подтверждения получения данных и отправка ответных флагов в ЗУП прерывается.Ниже приведены три подробных решения, которые помогут полностью исправить эту проблему.
Самый надежный и стабильный способ обойти любые архитектурные проблемы COM-соединения — перевести синхронизацию на файловый обмен через общий каталог (сетевую папку) или FTP. Этот вариант полностью исключает использование нестабильной библиотеки comcntr.dll и защищает рабочие процессы сервера от аварийных падений.
Выполним настройку обмена через каталог по шагам:
\\Server1C\Exchange_ZUP_BP. Настроим права доступа к этой папке для учетной записи, от имени которой запущены службы сервера «1С» (обычно это USR1CV8). У нее должны быть права на чтение и запись.\\Server1C\Exchange_ZUP_BP. Нажмем «Далее» и завершим настройку.После перевода обмена на сетевой каталог синхронизация станет двусторонней, а статус «Отражено в бухучете» будет гарантированно возвращаться в ЗУП.
Если специфика вашей инфраструктуры требует использования только прямого подключения, необходимо устранить конфликт библиотек comcntr.dll в операционной системе Windows на сервере «1С».
Для этого выполним ручную перерегистрацию компоненты через командную строку с правами администратора:
Шаг 1. Откроем командную строку (cmd) от имени Администратора на сервере, где установлен сервер «1С:Предприятие».
Шаг 2. Разрегистрируем старую библиотеку и зарегистрируем актуальную версию компоненты из папки установленной платформы (в нашем примере это 8.3.15.1830). Для этого выполним следующие команды:
cd "C:\Program Files\1cv8\8.3.15.1830\bin"
regsvr32 /u comcntr.dll
regsvr32 comcntr.dll
Шаг 3. Если сервер «1С» работает в 64-разрядном режиме, стандартной регистрации библиотеки может быть недостаточно из-за конфликта разрядностей. В этом случае необходимо настроить COM+-приложение в Windows:
comexp.msc в строке Выполнить).V83_COMConnector) и установим переключатель в положение Серверное приложение.USR1CV8), и введем его пароль.C:\Program Files\1cv8\8.3.15.1830\bin\comcntr.dll.services.msc.Эти действия позволят изолировать выполнение COM-соединений в отдельном процессе Windows и предотвратят аварийное падение рабочих процессов сервера 1С.
Еще одна неочевидная причина сбоя синхронизации статусов документов кроется в используемом формате обмена. В старых правилах обмена (так называемый «простой» формат обмена напрямую) регистрация изменений для обратной отправки флага «Отражено в бухучете» может работать некорректно или вовсе не поддерживаться в новых релизах БП.
Разработчики фирмы «1С» активно переводят все типовые конфигурации на универсальный формат обмена EnterpriseData. В этом формате логика выгрузки подтверждений и синхронизации статусов документов отлажена наиболее полно.
Проверим текущую настройку синхронизации:
Использование современных форматов обмена гарантирует корректную регистрацию изменений документов на стороне БП при установке флага проведения в бухучете и их оперативную отправку обратно в ЗУП.