Многие пользователи, работающие в облачном сервисе 1С:Фреш, сталкиваются с неприятной ситуацией: синхронизация данных между конфигурациями, например, «Бухгалтерией предприятия 3.0» и «Управлением нашей фирмой», отлично работает при ручном запуске, но полностью отказывается выполняться автоматически по расписанию. При ручном запуске появляется окно сопоставления данных, где достаточно нажать кнопку, и обмен завершается успешно. А в автоматическом режиме все замирает.
В этой статье мы подробно разберем, почему возникает такая проблема и как настроить полностью автоматический, бесшовный обмен данными без необходимости ручного вмешательства.
Давайте проанализируем ситуацию. Ключевая деталь — это появление окна сопоставления объектов. Это окно — интерактивный элемент, он требует действия от пользователя: выбрать, какой объект в базе-приемнике соответствует объекту из базы-источника, или создать новый.
Когда обмен запускается по расписанию, он выполняется в фоновом режиме. Фоновое задание — это процесс, который работает на сервере без участия пользователя и, что самое главное, без графического интерфейса. Оно просто не может показать вам окно и ждать, пока вы нажмете кнопку. Встретив на своем пути инструкцию «показать окно пользователю», фоновое задание либо аварийно завершается с ошибкой, либо «зависает» в ожидании, которое никогда не наступит. Именно это и происходит в вашем случае.
Почему же это окно вообще появляется?
Современные обмены в 1С, особенно те, что работают на технологии Enterprise Data (Конвертация данных 3.0), имеют встроенный механизм защиты от дублей. Когда из УНФ в Бухгалтерию приходит, например, новый контрагент, система пытается найти его в своей базе. Поиск происходит по определенным правилам:
Окно сопоставления появляется тогда, когда система не может однозначно идентифицировать объект. Например, она не нашла объект с таким же GUID и не нашла точного совпадения по ключевым полям. Чтобы не создать дубликат по ошибке, система передает управление пользователю.
Ваше действие «кликаю по умолчанию» говорит о том, что система, скорее всего, нашла один или несколько похожих объектов и предлагает вам подтвердить ее выбор. Но в автоматическом режиме подтвердить некому.
Таким образом, наша задача — не «отключить сопоставление», как может показаться на первый взгляд, а устранить причины, по которым система не может найти соответствие автоматически.
Чтобы наладить автоматический обмен, нужно «научить» систему самостоятельно сопоставлять данные. Рассмотрим, как это сделать.
Это самый важный и часто достаточный шаг для решения проблемы. Вам нужно один раз запустить обмен вручную и внимательно отработать все позиции в окне сопоставления, а не просто нажимать кнопку «Далее».
Что происходит в этот момент? Система записывает ваш выбор в специальный служебный регистр сведений — Соответствия объектов информационных баз. По сути, вы создаете «карту соответствий». При следующей синхронизации, получив объект с тем же идентификатором из УНФ, система заглянет в эту карту, найдет там вашу запись и уже не будет задавать лишних вопросов. Она будет точно знать, какой объект в Бухгалтерии ему соответствует.
Часто бывает достаточно один раз пройти эту процедуру для всех «проблемных» справочников (Номенклатура, Контрагенты, Договоры), чтобы автоматический обмен заработал как часы.
Если после полного сопоставления проблема сохраняется, значит, появляются новые объекты, которые система не может распознать. Чтобы понять, что это за объекты, нужно заглянуть в журнал.
Даже в 1С:Фреш у администратора приложения есть доступ к журналу регистрации. В нем фиксируются все события, включая ошибки фоновых заданий.
Найдя такой объект, проверьте, как он заведен в обеих базах. Возможно, в одной из них не заполнен ключевой реквизит (например, артикул), по которому настроен поиск.
Хотя в 1С:Фреш нельзя редактировать правила конвертации на уровне кода, можно управлять некоторыми параметрами поиска через пользовательский интерфейс настройки синхронизации.
Откройте настройки узла обмена (Администрирование – Синхронизация данных – Настройки синхронизации данных). В зависимости от конфигурации, там могут быть опции, позволяющие уточнить, по каким полям искать объекты. Например:
Убедитесь, что выбраны наиболее надежные и уникальные поля для поиска. И самое главное — проверьте, что эти поля корректно и одинаково заполнены в обеих базах. Если поиск настроен по артикулу, а в УНФ у товара артикул «Т-001», а в Бухгалтерии — «Т001» (без дефиса), для системы это будут два разных товара, и она снова покажет окно сопоставления.
В самом узле синхронизации данных часто есть полезные инструменты для диагностики. Обратите внимание на такие отчеты, как «Результаты синхронизации», «Непринятые по дате запрета» или «Предупреждения». Они могут наглядно показать, какие именно данные вызывают конфликт или не могут быть загружены, что сузит круг поисков.
Проблема несрабатывания фонового обмена из-за окна сопоставления решается не его отключением, а устранением причин его появления.
Развертывание собственного менеджера сервиса для отладки, как предлагалось в обсуждении на форуме, — это мощный инструмент для разработчика, но для решения данной пользовательской задачи он избыточен. Проблема почти всегда кроется в данных или настройках, а не в коде конфигурации.