Как убрать номер договора из поля Основание в модуле Контур.Диадок для 1С:Бухгалтерия 3.0

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

При работе с электронным документооборотом (ЭДО) через модуль «Контур.Диадок» в конфигурации «1С:Бухгалтерия 3.0» пользователи часто сталкиваются с ситуацией, когда в поле Основание передачи (сдачи) / получения (приемки) автоматически подставляется номер и дата договора из карточки контрагента. В ряде случаев, например, при разовых отгрузках или работе по счету-оферте, это поле требуется оставить пустым или выполнить изменение «Основания передачи (сдачи) / получения (приемки)» в УПД или заполнить иным текстом (например, «Без документа-основания»).

В этой статье мы подробно разберем, как управлять заполнением этих данных, рассмотрим выгрузку УПД в XML из Реализации товаров и услуг (удобно через модуль выгрузки УПД в XML для 1С:Бухгалтерия), механизм работы встроенных плагинов модуля Диадок и выясним причину возникновения распространенной ошибки валидации XML-файла.

Использование механизма встроенных плагинов

Проанализируем ситуацию: в стандартных настройках модуля Диадок нет простой «галочки», которая бы отключала вывод договора. Однако разработчики предусмотрели гибкую систему расширения функционала через плагины, что позволяет осуществить выгрузку ЭД УПД в XML без лишних телодвижений. Рассмотрим пошагово, как активировать эту возможность:

  1. Откроем модуль «Контур.Диадок» в вашей 1С.
  2. Перейдем в раздел Настройки, далее выберем пункт Расширенные настройки.
  3. Найдем раздел Плагины. Здесь необходимо установить флаг Использовать плагины.
  4. После включения этой опции станет доступен список доступных обработчиков. Модуль Диадок подгружает их из своей внутренней библиотеки, через которую также реализуется выгрузка счета-фактуры, УПД в XML для Diadoc.

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

Разбор ошибки реквнаимдок и требования формата ФНС

Рассмотрим важный технический нюанс. При попытке просто «очистить» программно поле основания, пользователи часто получают ошибку: реквнаимдок, message = the required attribute 'реквнаимдок' is missing. Разберем, почему это происходит.

Согласно приказу ФНС №820, регламентирующему формат УПД и счетов-фактур, блок TransferBase (Основание) имеет строгую структуру. Посмотрим на технические требования к атрибутам:

Проанализируем причину ошибки: если ваш плагин очищает номер договора, но оставляет само поле «Основание» активным, формат требует, чтобы атрибут НаимОсн (Наименование документа) не был пустым. Если вы хотите передать документ без ссылки на конкретный договор, в поле «Наименование» следует записывать строку «Без документа-основания».

Реализация решения в коде плагина

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


// Пример модификации структуры основания в обработчике плагина
// Предположим, переменная ДанныеОснования содержит структуру TransferBase

ДанныеОснования.Наименование = "Без документа-основания";
ДанныеОснования.Номер = "";
ДанныеОснования.Дата = "";

// Если нужно оставить поле полностью пустым (если формат позволяет для данного типа документа)
// необходимо удалять весь узел, но для УПД рекомендуется вариант выше.

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

Альтернативный метод: Настройка сопоставления полей

В некоторых версиях модуля (особенно в последних релизах) предусмотрена возможность настройки через пользовательский интерфейс без написания кода. Разберем этот вариант:

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

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

Программное вмешательство в функцию СформироватьОснование

Если вышеописанные методы не подходят (например, используется очень старая версия модуля), программисту придется найти в коде модуля функцию, отвечающую за сборку структуры TransferBase. Обычно она вызывается при формировании электронного сообщения.

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

Итоги и рекомендации

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

  1. Включите использование плагинов в расширенных настройках модуля.
  2. Активируйте плагин изменения полей.
  3. В коде плагина принудительно установите наименование основания как "Без документа-основания", а номер и дату оставьте пустыми строками.
  4. Проверьте корректность формирования XML, чтобы атрибут НаимОсн присутствовал в файле.

Такой подход гарантирует успешное прохождение валидации на сервере оператора ЭДО и отсутствие претензий со стороны контролирующих органов.

← На главную