Почему обмен между БП 3.0 и УНФ во Фреше не работает по расписанию и как это исправить?

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

Многие пользователи, работающие в облачном сервисе 1С:Фреш, сталкиваются с неприятной ситуацией: синхронизация данных между конфигурациями, например, «Бухгалтерией предприятия 3.0» и «Управлением нашей фирмой», отлично работает при ручном запуске, но полностью отказывается выполняться автоматически по расписанию. При ручном запуске появляется окно сопоставления данных, где достаточно нажать кнопку, и обмен завершается успешно. А в автоматическом режиме все замирает.

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

Выясняем причину: почему фоновый обмен «зависает»

Давайте проанализируем ситуацию. Ключевая деталь — это появление окна сопоставления объектов. Это окно — интерактивный элемент, он требует действия от пользователя: выбрать, какой объект в базе-приемнике соответствует объекту из базы-источника, или создать новый.

Когда обмен запускается по расписанию, он выполняется в фоновом режиме. Фоновое задание — это процесс, который работает на сервере без участия пользователя и, что самое главное, без графического интерфейса. Оно просто не может показать вам окно и ждать, пока вы нажмете кнопку. Встретив на своем пути инструкцию «показать окно пользователю», фоновое задание либо аварийно завершается с ошибкой, либо «зависает» в ожидании, которое никогда не наступит. Именно это и происходит в вашем случае.

Почему же это окно вообще появляется?

Современные обмены в 1С, особенно те, что работают на технологии Enterprise Data (Конвертация данных 3.0), имеют встроенный механизм защиты от дублей. Когда из УНФ в Бухгалтерию приходит, например, новый контрагент, система пытается найти его в своей базе. Поиск происходит по определенным правилам:

  1. Поиск по уникальному идентификатору (GUID). Это основной и самый надежный способ. Если объект уже когда-то синхронизировался, система запомнила его идентификатор.
  2. Поиск по ключевым полям. Если идентификатор не найден (например, это первая синхронизация объекта), система ищет по другим полям. Для контрагента это может быть связка ИНН+КПП, для номенклатуры — Артикул или Код.

Окно сопоставления появляется тогда, когда система не может однозначно идентифицировать объект. Например, она не нашла объект с таким же GUID и не нашла точного совпадения по ключевым полям. Чтобы не создать дубликат по ошибке, система передает управление пользователю.

Ваше действие «кликаю по умолчанию» говорит о том, что система, скорее всего, нашла один или несколько похожих объектов и предлагает вам подтвердить ее выбор. Но в автоматическом режиме подтвердить некому.

Таким образом, наша задача — не «отключить сопоставление», как может показаться на первый взгляд, а устранить причины, по которым система не может найти соответствие автоматически.

Пошаговый план решения проблемы

Чтобы наладить автоматический обмен, нужно «научить» систему самостоятельно сопоставлять данные. Рассмотрим, как это сделать.

Шаг 1. Проведите полное ручное сопоставление

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

  1. Запустите синхронизацию в ручном режиме из «Бухгалтерии 3.0».
  2. Когда появится окно сопоставления объектов, не торопитесь. Внимательно просмотрите список. Система покажет вам данные из загружаемого файла слева и предложит варианты из вашей базы справа.
  3. Для каждой строки, где система не уверена, выберите правильное соответствие. Если вы уверены, что такого объекта в базе-приемнике нет, выберите вариант «Создать новый».
  4. После того как вы подтвердите сопоставление для всех объектов, завершите синхронизацию.

Что происходит в этот момент? Система записывает ваш выбор в специальный служебный регистр сведений — Соответствия объектов информационных баз. По сути, вы создаете «карту соответствий». При следующей синхронизации, получив объект с тем же идентификатором из УНФ, система заглянет в эту карту, найдет там вашу запись и уже не будет задавать лишних вопросов. Она будет точно знать, какой объект в Бухгалтерии ему соответствует.

Часто бывает достаточно один раз пройти эту процедуру для всех «проблемных» справочников (Номенклатура, Контрагенты, Договоры), чтобы автоматический обмен заработал как часы.

Шаг 2. Анализ журнала регистрации

Если после полного сопоставления проблема сохраняется, значит, появляются новые объекты, которые система не может распознать. Чтобы понять, что это за объекты, нужно заглянуть в журнал.

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

  1. Перейдите в раздел Администрирование – Обслуживание.
  2. Найдите пункт Журнал регистрации.
  3. Установите отбор по событию «Ошибка» или по фоновому заданию синхронизации данных. В поле «Комментарий» часто можно найти подробное описание проблемы и даже имя или представление проблемного объекта (например, «Не удалось синхронизировать объект: Номенклатура "Стул офисный, черный"»).

Найдя такой объект, проверьте, как он заведен в обеих базах. Возможно, в одной из них не заполнен ключевой реквизит (например, артикул), по которому настроен поиск.

Шаг 3. Проверка настроек синхронизации и правил поиска

Хотя в 1С:Фреш нельзя редактировать правила конвертации на уровне кода, можно управлять некоторыми параметрами поиска через пользовательский интерфейс настройки синхронизации.

Откройте настройки узла обмена (Администрирование – Синхронизация данных – Настройки синхронизации данных). В зависимости от конфигурации, там могут быть опции, позволяющие уточнить, по каким полям искать объекты. Например:

Убедитесь, что выбраны наиболее надежные и уникальные поля для поиска. И самое главное — проверьте, что эти поля корректно и одинаково заполнены в обеих базах. Если поиск настроен по артикулу, а в УНФ у товара артикул «Т-001», а в Бухгалтерии — «Т001» (без дефиса), для системы это будут два разных товара, и она снова покажет окно сопоставления.

Шаг 4. Использование штатных отчетов синхронизации

В самом узле синхронизации данных часто есть полезные инструменты для диагностики. Обратите внимание на такие отчеты, как «Результаты синхронизации», «Непринятые по дате запрета» или «Предупреждения». Они могут наглядно показать, какие именно данные вызывают конфликт или не могут быть загружены, что сузит круг поисков.

Резюме: что делать, чтобы обмен заработал автоматом

Проблема несрабатывания фонового обмена из-за окна сопоставления решается не его отключением, а устранением причин его появления.

  1. Проведите полное ручное сопоставление. Это главный шаг. Один раз «познакомьте» систему с объектами в обеих базах, и она запомнит ваш выбор.
  2. Следите за качеством данных. Убедитесь, что ключевые реквизиты (ИНН, КПП, артикулы, коды), по которым идет поиск, заполнены и идентичны в обеих конфигурациях.
  3. Используйте журнал регистрации. Он ваш главный помощник в поиске «виновника» сбоя, когда проблема возникает снова.
  4. Обратитесь в поддержку. Если ничего из вышеперечисленного не помогает, создайте обращение в техническую поддержку вашего сервис-провайдера 1С:Фреш. У них есть доступ к более глубоким серверным логам, и они могут помочь диагностировать проблему на уровне инфраструктуры.

Развертывание собственного менеджера сервиса для отладки, как предлагалось в обсуждении на форуме, — это мощный инструмент для разработчика, но для решения данной пользовательской задачи он избыточен. Проблема почти всегда кроется в данных или настройках, а не в коде конфигурации.

← На главную