При настройке межфирменных продаж по схеме Интеркампани в конфигурациях 1С (1С:ERP, 1С:Комплексная автоматизация, 1С:Управление торговлей) часто возникает бизнес-требование разделять передачу товаров по разным договорам. Типичный сценарий: передача номенклатуры одного вида (например, собственного производства) должна проходить по одному договору, а передача покупных товаров или определенной категории продукции — по другому.
Однако типовой регистр сведений Настройки передачи товаров между организациями имеет жесткую структуру ключевых полей: «Организация-владелец», «Организация-получатель» и «Тип запасов». Разрез по конкретной номенклатуре или ее виду в этой настройке отсутствует, а в качестве расчетного документа можно закрепить только один договор между организациями. Разберем архитектурные особенности механизма и выясним, как правильно решить данную задачу без негативных последствий для учета.
Проанализируем, как устроен механизм Интеркампани под капотом:
ТоварыКОформлениюПередачМеждуОрганизациями). Эти регистры отслеживают исключительно количественные и партионные остатки без привязки к конкретным договорам взаиморасчетов.ПередачаТоваровМеждуОрганизациями на основании настроек передачи.На первый взгляд самым очевидным решением кажется добавление дополнительного реквизита Договор в карточку Номенклатура или ВидыНоменклатуры, а также перенос неподошедших строк в новый документ через подписку ПередЗаписью или ПриЗаписи. Однако такой подход влечет за собой серьезные риски:
ДоговорыКонтрагентов (или договоры между организациями) привязан к конкретной паре юридических лиц. Если в структуре холдинга появится третья организация, жестко прописанный в виде номенклатуры договор потеряет смысл и вызовет ошибки заполнения.ДополнительныеСвойства, иначе легко получить рекурсивный вызов подписки.ТоварыКОформлениюПередачМеждуОрганизациями, рабочее место оформления передач будет повторно предлагать оформить те же самые объемы товаров.Наиболее надежный и корректный с точки зрения архитектуры вариант — вмешаться в процесс формирования таблицы передач до того, как документы будут записаны в базу данных. В общих модулях подсистемы Интеркампани, отвечающих за автоматическое оформление документов, таблица товаров перед созданием объектов проходит группировку.
Рассмотрим алгоритм реализации через расширение конфигурации:
СоответствиеДоговоровИнтеркампани) в расширении со следующей структурой:
ОрганизацияОтправитель, ОрганизацияПолучатель, ВидНоменклатуры.Договор (с отбором по соответствующей паре организаций).&ИзменениеИКонтроль или перехват метода подготовки таблицы к оформлению переопределяем заполнение колонки Договор для каждой строки номенклатуры. Если соответствие в регистре найдено — подставляем специальный договор, если нет — оставляем договор по умолчанию из типовых настроек передачи.Штатный механизм платформы сам разобьет таблицу на необходимое количество пакетов документов по признаку договора. При этом автоматически и корректно рассчитаются взаиморасчеты, цены передачи, движения по регистрам и сопутствующие счета-фактуры.
Если разные договоры обусловлены характером хозяйственных операций (например, один товар передается в рамках обычной перепродажи, а второй — в рамках комиссии или агентской схемы), задачу можно решить штатными средствами без доработок конфигурации:
Если разработка расширений нежелательна, а номенклатура разных видов хранится обособленно, можно использовать разделение по складам:
Таким образом, для полной автоматизации процесса предпочтительным является использование отдельного регистра соответствий и перехват алгоритма группировки таблицы передач в расширении. Это исключает дублирование движений, сохраняет целостность межфирменного НДС и гарантирует корректную работу закрытия месяца.