Почему не переносятся счета на оплату при обмене между 1С:УНФ и 1С:БП 3.0?

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

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

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

Анализ программного кода обмена

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


Процедура ПОД_Документ_СчетНаОплатуПокупателю_Отправка_ПриОбработке(ДанныеИБ, ИспользованиеПКО, КомпонентыОбмена)
    ИспользованиеПКО.Документ_СчетНаОплатуПокупателю_Отправка = Истина;
    
    Если КомпонентыОбмена.ПараметрыКонвертации.ПереноситьЗаказыКакСчетаНаОплату Тогда
    
        ИспользованиеПКО.Документ_СчетНаОплатуПокупателю_Отправка = Ложь;
    
    КонецЕсли;
КонецПроцедуры

Как мы видим из кода, в системе по умолчанию предопределено использование правила конвертации объектов (ПКО) для отправки счета на оплату. Однако программа проверяет специальный параметр конвертации — ПереноситьЗаказыКакСчетаНаОплату. Если этот параметр принимает значение Истина, то использование ПКО принудительно устанавливается в Ложь. В результате документ полностью игнорируется при выгрузке в XML-пакет обмена, хотя его регистрация на узле плана обмена успешно сбрасывается.

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

Решение проблемы через стандартные настройки (без программирования)

Выясним, где на самом деле находится параметр ПереноситьЗаказыКакСчетаНаОплату в пользовательском интерфейсе. Вопреки распространенному мнению, этот параметр не скрыт жестко в коде, а выведен в настройки правил отправки данных на стороне УНФ. Разберем по шагам, как его отключить:

  1. Перейдем в программе «1С:УНФ» в раздел Настройки, затем выберем пункт Интеграции и откроем Синхронизация данных.
  2. В списке настроенных интеграций найдем обмен с «1С:Бухгалтерия предприятия» и нажмем кнопку Настроить правила отправки и получения данных (в некоторых релизах кнопка называется «Параметры правил обмена»).
  3. В открывшемся окне перейдем на вкладку Прочее.
  4. Найдем флаг (опцию) «Переносить заказы покупателей как счета на оплату» (или аналогичную по смыслу фразу «Переносить Заказы покупателей из 1С:УНФ как документ „Счет покупателю“ в 1С:БП»).
  5. Для того чтобы документы «Счет на оплату» начали выгружаться напрямую, снимем этот флаг и сохраним настройки по кнопке Записать и закрыть.

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

Альтернативное решение: Использование схемы переноса Заказов

Рассмотрим ситуацию, когда бизнес-процесс компании действительно требует переноса документов «Заказ покупателя» из УНФ в качестве счетов на оплату в БП. Если этот флаг включен, но документы в БП все равно не создаются, нам необходимо проверить заполнение ключевых реквизитов в «Заказе покупателя» на стороне УНФ:

Поэтому убедимся, что во всех выгружаемых заказах корректно заполнен реквизит основного варианта заказа.

Дополнительные технические особенности обмена счетами

Для стабильной работы интеграции также важно учитывать направление обмена документами и особенности заполнения реквизитов табличной части.

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

Проблема незаполненного поля «Содержание». После того как перенос счетов будет настроен, вы можете столкнуться с тем, что в БП в табличной части счетов или актов не заполняется колонка «Содержание услуги». Данная проблема связана с особенностью выгрузки XML-данных. Чтобы данные выгружались полностью, проделаем следующие действия в УНФ перед выгрузкой:

  1. Откроем список документов «Счета на оплату» в УНФ.
  2. Нажмем кнопку Еще в правом верхнем углу и выберем пункт Изменить форму.
  3. В дереве элементов формы найдем ветку: Страницы — Товары и услуги — Запасы (или вкладку услуг).
  4. Установим флаг видимости напротив поля Содержание.

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

← На главную