При работе с электронным документооборотом (ЭДО), особенно через внешних операторов, таких как СБИС, часто возникает задача выгрузить из 1С:Управление торговлей 11 универсальный передаточный документ (УПД) в строго определенном формате. Основная проблема, с которой сталкиваются пользователи — система по умолчанию формирует XML-файл со статусом «2», в то время как контрагент или оператор ЭДО требует статус «1».
Давайте подробно разберем, в чем разница и какими способами можно настроить программу для корректной выгрузки.
Прежде чем переходить к решениям, выясним причину проблемы. Статус УПД определяется значением атрибута Функция в выгружаемом XML-файле, из которого также можно загружать данные о маркировке:
Функция="СЧФДОП". Это означает, что документ является одновременно и счет-фактурой, и первичным документом о передаче (аналог товарной накладной или акта). Такой документ имеет полную юридическую силу для вычета НДС и подтверждения факта хозяйственной операции.Функция="ДОП". Это означает, что документ является только документом о передаче. Он подтверждает отгрузку товаров или оказание услуг, но не является счетом-фактурой. Для вычета НДС к нему должен прилагаться отдельный документ — счет-фактура.Проблема возникает, когда в 1С у вас оформлены и документ Реализация товаров и услуг, и связанный с ним Счет-фактура выданный, но при выгрузке система по какой-то причине "не объединяет" их в один УПД со статусом 1.
Рассмотрим несколько способов решения этой задачи, от самого простого пользовательского до более сложных, требующих прав администратора или доработки конфигурации.
Этот способ оказался решением для автора исходного вопроса и является самым быстрым. Механизм формирования электронного документа в УТ 11 часто связан с тем, какая печатная форма выбрана в документе в данный момент.
Разберем по шагам:
Функция="СЧФДОП".Этот простой клик сообщает системе о вашем намерении использовать документ именно как УПД, что влияет не только на печатную, но и на электронную форму.
Иногда требуется, чтобы для определенного контрагента УПД со статусом 1 формировался всегда по умолчанию, без лишних кликов. Это можно сделать через настройки ЭДО, причем для этого не обязательно покупать и подключать сервис 1С-ЭДО. Нужны лишь права для доступа к регистрам сведений.
Суть в том, что можно вручную создать запись с настройками, которую программа будет использовать при выгрузке.
Инструкция:
После выполнения этих действий для указанного контрагента все документы реализации будут по умолчанию выгружаться как УПД со статусом 1, так как система будет видеть эту персональную настройку.
Если вы не используете стандартную выгрузку из 1С через меню «Сохранить как», а пользуетесь специальной внешней обработкой от вашего оператора ЭДО (например, Sbis1C_UF.epf), то описанные выше способы могут не сработать. Это происходит потому, что такие обработки часто имеют собственную логику и настройки, которые приоритетнее стандартных механизмов 1С.
В этом случае необходимо:
Реализация товаров и услуг и указать, в какой формат электронного документа его следует преобразовывать. Там должен быть выбор между «Накладная + Счет-фактура» и «УПД (СЧФДОП)».Таким образом, вы даете команду непосредственно обработке, а не самой 1С, что гарантирует правильный результат при выгрузке через нее.
Если ни один из пользовательских методов не подходит или требуется глобальное изменение логики для всех документов, можно прибегнуть к доработке конфигурации через расширение. Это наиболее гибкий, но и самый сложный способ.
В типовых конфигурациях на БСП (Библиотека стандартных подсистем) логика определения, используется ли УПД, часто сосредоточена в общих модулях. Например, в функции НастройкиОтправкиЭДОСлужебный.ИспользуетсяУПД_УКД. Можно создать расширение и переопределить эту функцию, чтобы она принудительно возвращала нужный результат.
Пример концептуального кода для расширения:
Этот код показывает, как можно перехватить вызов стандартной функции и изменить ее результат, чтобы для всех документов реализации всегда использовался режим УПД.
&Вместо("НастройкиОтправкиЭДОСлужебный.ИспользуетсяУПД_УКД")
Функция Расширенная_ИспользуетсяУПД_УКД(Знач ТипДокумента, Знач ДокументСсылка, Знач Организация, Знач Контрагент, ПараметрыОтправки = Неопределено)
// Сначала вызываем оригинальную функцию, чтобы получить стандартные настройки
Результат = ПродолжитьВызов(ТипДокумента, ДокументСсылка, Организация, Контрагент, ПараметрыОтправки);
// А теперь применяем свою логику.
// Например, если это документ реализации, принудительно включаем флаг использования УПД.
ТипДокументаСтрокой = Строка(Тип(ДокументСсылка));
Если Найти(ТипДокументаСтрокой, "РеализацияТоваровУслуг") > 0 Тогда
Результат.ИспользуетсяУПД = Истина;
КонецЕсли;
Возврат Результат;
КонецФункции
Важно: прямое изменение кода конфигурации не рекомендуется. Используйте механизм расширений, чтобы не усложнять последующие обновления программы.
Таким образом, задача по смене статуса выгружаемого УПД имеет несколько уровней решения. В большинстве случаев достаточно простого переключения печатной формы в документе, что делает задачу доступной для любого пользователя.