Механизм Интеркампани — это мощный инструмент в современных конфигурациях 1С (ERP, УТ 11, КА 2), предназначенный для автоматизации продаж товаров, принадлежащих другой организации в рамках одного холдинга. Однако на практике пользователи и разработчики часто сталкиваются с тем, что данные в регистре РезервыОрганизаций ведут себя непредсказуемо: остатки «зависают», количество «раздувается» или документ передачи не видит нужный объем товара. Разберем детально, как устроена эта логика и как правильно работать с системой, чтобы избежать ошибок при закрытии месяца.
Для начала проанализируем ситуацию, которая вызывает больше всего вопросов: почему документ Передача товаров между организациями анализирует сам себя? Рассмотрим логику взаимодействия документов. В схеме Интеркампани участвуют два ключевых этапа:
Реализация товаров и услуг на товар, который фактически числится за «Организацией-владельцем», система делает запись в регистр накопления РезервыОрганизаций. В этом регистре фиксируется потребность (резерв) — сколько товара одна организация «задолжала» другой.Передача товаров между организациями создается для того, чтобы «закрыть» этот долг. При проведении он делает два движения по регистру РезервыОрганизаций: расход по одной записи (погашение резерва) и приход по другой (фактическое перемещение права собственности).Проанализируем причину, по которой при изменении количества в документе передачи данные могут «разлетаться». Если вы ввели 12 позиций вместо 6, а затем вернулись к 6, не соблюдая хронологию или используя ручную корректировку, регистр может сохранить записи о первоначальной потребности. Система воспринимает проведение передачи как факт удовлетворения ранее созданного резерва. Если документ передачи проводится без предварительного наличия записи о продаже (резерве) в этом же регистре, могут возникнуть «отрицательные» остатки или некорректные значения, которые блокируют закрытие месяца.
Выясним, как современные версии 1С (начиная с УТ 11.4.6 и ERP 2.5) упрощают жизнь пользователю. Разработчики признали сложность прямой настройки и ввели так называемую схему «Интеркампани 2.0».
Рассмотрим основные отличия и рекомендации по работе:
Помощник формирования передач. Он анализирует остатки в регистре РезервыОрганизаций и автоматически заполняет табличную часть ровно на то количество, которое необходимо для покрытия отрицательных остатков другой организации.Разберем ситуацию, когда Интеркампани перестает быть просто «бумажным» механизмом для управленческого учета. С 2019 года введение систем Честный ЗНАК (маркировка) и Меркурий (ВетИС) кардинально изменило правила игры.
Проанализируем, почему нельзя просто «нарисовать» передачи в конце месяца:
Посмотрим на программную сторону вопроса. Если регистр РезервыОрганизаций все же содержит некорректные данные, разберем алгоритм действий по исправлению ситуации.
Для программиста 1С важно понимать, что записи в этот регистр делаются в модуле менеджера или через специализированные наборы движений в момент проведения. Если вы пишете свою обработку или корректируете логику, обратите внимание на следующие объекты:
РезервыОрганизаций — основной «виновник» проблем.НастройкиПередачиТоваровМеждуОрганизациями — здесь хранятся правила, по которым разрешена продажа чужого товара.Для исправления «зависших» резервов в ERP 2.5 рекомендуется запустить регламентное задание по исправлению заданий к формированию проводок. В некоторых случаях помогает полное перепроведение цепочки документов: Реализация товаров и услуг -> Передача товаров в строгой хронологической последовательности.
Рассмотрим пример того, как программно можно проверить наличие резервов перед оформлением передачи (фрагмент кода для понимания структуры запроса к регистру):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Резервы.НомерГТД,
| Резервы.КоличествоОстаток КАК ТребуетсяПередать
|ИЗ
| РегистрНакопления.РезервыОрганизаций.Остатки(&Период, Организация = &ОргПродавец) КАК Резервы
|ГДЕ
| Резервы.КоличествоОстаток > 0";
Запрос.УстановитьПараметр("Период", КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ОргПродавец", ОрганизацияПродавец);
Результат = Запрос.Выполнить();
Этот простой запрос позволяет увидеть, какие позиции «висят» в ожидании оформления передачи. Если результат запроса пуст, а вы пытаетесь провести передачу, система выдаст ошибку о нехватке остатков в регистре резервов.
Подводя итог, можно сказать, что механизм Интеркампани в 1С прошел путь от простой «бумажной» перекладки остатков до сложной системы, интегрированной с госконтролем. Для стабильной работы:
Разбор логики Интеркампани показывает, что «странности» регистра — это лишь попытка системы обеспечить строгий учет прав собственности в условиях сложной топологии склада. Понимая эту структуру, вы сможете легко диагностировать и исправлять любые возникающие расхождения.