Почему документы Счет на оплату покупателю не выгружаются из 1С:Бухгалтерия в 1С:Управление торговлей

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

При настройке стандартной синхронизации между конфигурациями 1С:Бухгалтерия предприятия 3.0 (БП) и 1С:Управление торговлей 11.4 (УТ) пользователи часто сталкиваются с ситуацией, когда справочники переносятся без проблем, а конкретные документы, такие как Счет на оплату покупателю, наотрез отказываются выгружаться. При этом система позволяет регистрировать их к обмену вручную, но в отчете о составе отправляемых данных в колонке "Будет отправлено" стоит прочерк. Разберем подробно, почему так происходит и как решить эту задачу.

Анализируем причину: методология и направление обмена

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

В стандартном комплекте правил обмена для документа Счет на оплату покупателю жестко задано направление: только из УТ в БП. Проанализируем ситуацию: если мы создаем счет в БП, система обмена «видит» его наличие и позволяет зарегистрировать объект в таблице изменений (так как механизм регистрации универсален для всех метаданных), но на этапе непосредственной выгрузки срабатывают Правила Конвертации Объектов (ПКО). Если в этих правилах отсутствует алгоритм выгрузки для данного направления, программа просто игнорирует объект, оставляя прочерк в колонке отправки.

Разбор технической стороны: почему регистрация работает, а выгрузка — нет

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

Выясним, почему в отчете отображается «выбрано 192», а «будет отправлено 0»:

  1. Система регистрации подтверждает, что 192 документа изменены или выбраны вручную.
  2. Процессор выгрузки обращается к модулю обмена и ищет правило для ДокументСсылка.СчетНаОплатуПокупателю.
  3. В типовых правилах для направления БП -> УТ это правило либо помечено как «только для получения», либо содержит условие Отказ = Истина в обработчике ПередВыгрузкой.
  4. В результате объект отсеивается, и файл выгрузки остается пустым.

Проверяем настройки в базе-приемнике (УТ)

Даже если бы мы решили доработать правила, нам нужно убедиться, что целевая база готова принять эти данные. Проанализируем настройки в 1С:Управление торговлей. Часто счета в УТ не являются самостоятельными объектами в том же смысле, что и в БП. В УТ за продажи отвечают Заказы клиентов, а Счет на оплату может быть лишь печатной формой или подчиненным документом.

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

Варианты решения проблемы

Если нам всё же крайне необходимо перенести счета из БП в УТ, существует несколько путей решения задачи.

Способ 1: Использование универсального обмена данными

Если задача разовая, не стоит ломать типовую синхронизацию. Рациональнее использовать обработку Универсальный обмен данными в формате XML. Для этого нам потребуется:

  1. Создать собственные правила обмена в конфигурации «Конвертация данных 2.1».
  2. В правилах прописать соответствие между Документ.СчетНаОплатуПокупателю (БП) и Документ.СчетНаОплатуКлиенту (УТ).
  3. Выгрузить данные из БП и загрузить их в УТ через указанную обработку.

Способ 2: Доработка правил синхронизации

Если счета должны мигрировать постоянно, придется вносить изменения в правила обмена. Рассмотрим последовательность действий:

  1. Выгружаем типовые правила обмена из конфигурации БП (обычно они хранятся в макетах узла плана обмена).
  2. Загружаем их в Конвертацию данных 2.1.
  3. Находим или создаем ПКО для счетов в направлении БП -> УТ.
  4. Снимаем ограничения на выгрузку и проверяем заполнение обязательных реквизитов (в УТ их может быть больше, например, Соглашение или Склад, которых нет в БП).
  5. Загружаем модифицированные правила обратно в БП через Параметры синхронизации данных.

Способ 3: Переход на формат EnterpriseData

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

  1. В БП выберем ручную отправку данных.
  2. Сохраним файл выгрузки на диск.
  3. Откроем этот XML-файл и проверим наличие узлов, соответствующих счетам.
  4. Если узлы пусты, значит ограничение вшито в программный код модуля МенеджерОбменаЧерезУниверсальныйФормат.

Резюме и рекомендации

Подводя итог, можно сказать: отсутствие выгрузки счетов из БП в УТ — это не ошибка программы, а реализация заложенной методологии. 1С предполагает, что первичка идет из торговли в бухгалтерию, а не наоборот.

Если вы столкнулись с прочерком в графе «Будет отправлено», это главный индикатор того, что правила конвертации блокируют выгрузку. Для разового переноса рекомендуем использовать внешние обработки, а для постоянного — услуги программиста по модификации правил обмена, так как потребуется сопоставление специфических полей УТ (таких как статусы, графики оплаты и склады), которых в простой структуре БП просто не существует.

← На главную