Как разделить передачу товаров между организациями (Интеркампани) по двум договорам в зависимости от вида номенклатуры?

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

При настройке межфирменных продаж по схеме Интеркампани в конфигурациях 1С (1С:ERP, 1С:Комплексная автоматизация, 1С:Управление торговлей) часто возникает бизнес-требование разделять передачу товаров по разным договорам. Типичный сценарий: передача номенклатуры одного вида (например, собственного производства) должна проходить по одному договору, а передача покупных товаров или определенной категории продукции — по другому.

Однако типовой регистр сведений Настройки передачи товаров между организациями имеет жесткую структуру ключевых полей: «Организация-владелец», «Организация-получатель» и «Тип запасов». Разрез по конкретной номенклатуре или ее виду в этой настройке отсутствует, а в качестве расчетного документа можно закрепить только один договор между организациями. Разберем архитектурные особенности механизма и выясним, как правильно решить данную задачу без негативных последствий для учета.

Архитектурные причины ограничения

Проанализируем, как устроен механизм Интеркампани под капотом:

  1. Фиксация товарного долга в накопительных регистрах. Межфирменные продажи фиксируются в специализированных регистрах накопления (таких как ТоварыКОформлениюПередачМеждуОрганизациями). Эти регистры отслеживают исключительно количественные и партионные остатки без привязки к конкретным договорам взаиморасчетов.
  2. Подстановка договора в момент формирования документов. Договор между организациями подтягивается только в момент генерации расчетного документа ПередачаТоваровМеждуОрганизациями на основании настроек передачи.
  3. Типовая группировка строк. При автоматическом формировании документов специальная процедура группирует подготовленную таблицу остатков по ключевым полям: организация-отправитель, организация-получатель, договор, склад, валюта и налогообложение. Так как договор в настройке один, вся номенклатура по умолчанию попадает в один документ.

Подводные камни простых решений: постобработка и доп. реквизиты

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

  1. Немасштабируемость привязки договора к номенклатуре. Справочник ДоговорыКонтрагентов (или договоры между организациями) привязан к конкретной паре юридических лиц. Если в структуре холдинга появится третья организация, жестко прописанный в виде номенклатуры договор потеряет смысл и вызовет ошибки заполнения.
  2. Зацикливание подписок и транзакций. Программное разделение документа и создание нового объекта в событиях записи требует жесткого контроля свойства ДополнительныеСвойства, иначе легко получить рекурсивный вызов подписки.
  3. Рассинхронизация счетов-фактур и НДС. Передачи между организациями часто сопровождаются автоматической выпиской межфирменных счетов-фактур. Если переносить строки после генерации документа, состав строк и суммы НДС разойдутся со связанными счетами-фактурами, что потребует сложного программного пересчета.
  4. Сбитый контроль остатков к оформлению. Если разделить строки с нарушением типовой логики закрытия регистра ТоварыКОформлениюПередачМеждуОрганизациями, рабочее место оформления передач будет повторно предлагать оформить те же самые объемы товаров.

Решение 1. Переопределение группировки перед формированием документов (рекомендуемый способ)

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

Рассмотрим алгоритм реализации через расширение конфигурации:

  1. Создаем отдельный непериодический регистр сведений (например, СоответствиеДоговоровИнтеркампани) в расширении со следующей структурой:
    • Измерения: ОрганизацияОтправитель, ОрганизацияПолучатель, ВидНоменклатуры.
    • Ресурс: Договор (с отбором по соответствующей паре организаций).
  2. Через аннотацию &ИзменениеИКонтроль или перехват метода подготовки таблицы к оформлению переопределяем заполнение колонки Договор для каждой строки номенклатуры. Если соответствие в регистре найдено — подставляем специальный договор, если нет — оставляем договор по умолчанию из типовых настроек передачи.
  3. Передаем модифицированную таблицу в типовой механизм группировки.

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

Решение 2. Разделение по типам запасов или комиссионной схеме (типовой функционал)

Если разные договоры обусловлены характером хозяйственных операций (например, один товар передается в рамках обычной перепродажи, а второй — в рамках комиссии или агентской схемы), задачу можно решить штатными средствами без доработок конфигурации:

  1. Проанализируем вид передаваемых запасов. Если товары одного вида реализуются по агентскому договору, в настройках передачи товаров между организациями указывается соответствующий Способ передачи («Продажа» или «Передача на комиссию»).
  2. Для каждого способа передачи в карточке настройки задаются собственные, независимые договоры с контрагентами-организациями.
  3. В этом случае разделение документов произойдет полностью в автоматическом режиме по типовым алгоритмам.

Решение 3. Логистическое разделение по складам

Если разработка расширений нежелательна, а номенклатура разных видов хранится обособленно, можно использовать разделение по складам:

  1. Определяем склады отгрузки для разных видов номенклатуры (например, «Склад готовой продукции» и «Склад материалов/покупных товаров»).
  2. В рабочем месте оформления передач товаров между организациями выполняем оформление документов с отбором по конкретному складу.
  3. При пакетном формировании передачи вручную выбираем нужный договор для соответствующей партии склада.

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

← На главную