Как реализовать перемещение товаров между комиссионерами в 1С:ERP без фактического возврата на склад

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

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

Почему в 1С:ERP нет типового перемещения между комиссионерами?

Разберем архитектурную причину этой сложности. Когда мы передаем товар на комиссию, система фиксирует это событие в нескольких разрезах:

  1. Бухгалтерский учет: Товар списывается со счета 41 и приходуется на счет 45 «Товары отгруженные» в разрезе контрагента.
  2. Регистры накопления: Данные записываются в регистр ТоварыПереданныеНаКомиссию, где ключевым измерением является Партнер и Соглашение (или Договор).
  3. Партионный учет: Система жестко связывает партию товара и номера ГТД с конкретной передачей конкретному контрагенту.

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

Вариант 1. Использование виртуального склада (без программирования)

Если мы хотим остаться в рамках типового функционала и не вносить изменения в код конфигурации, рассмотрим схему с использованием виртуального склада. Это наиболее безопасный метод с точки зрения корректности налогового учета и партионки.

Разберем по шагам, как это работает:

  1. Создадим в справочнике Склады виртуальный склад, например, «Товары в пути (комиссия)».
  2. При получении данных о том, что Комиссионер 1 передал товар Комиссионеру 2, оформим документ Возврат товаров от клиента (вид операции: Возврат от комиссионера). В качестве склада укажем наш виртуальный склад.
  3. Следом оформим документ Реализация товаров и услуг (вид операции: Передача на комиссию) от этого же виртуального склада на Комиссионера 2.

Преимущество: Сохраняется полная прозрачность учета. Проводки по 45 счету закроются по одному контрагенту и откроются по другому. Система автоматически подберет нужные номера ГТД и партию.

Недостаток: Удвоение документооборота. Чтобы упростить жизнь пользователям, рекомендуем разработать внешнюю обработку («АРМ логиста»), которая по нажатию одной кнопки будет генерировать эту пару документов на основании данных от розничной сети.

Вариант 2. Программная доработка системы

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

Рассмотрим план разработки:

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

Проанализируем пример кода для обработки проведения в части регистра накопления:


Движение = Движения.ТоварыПереданныеНаКомиссию.ДобавитьРасход();
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.Партнер = КомиссионерОтправитель;
Движение.Номенклатура = СтрокаТовара.Номенклатура;
Движение.Количество = СтрокаТовара.Количество;
// Важно заполнить ВидЗапасов и НомерГТД из остатков отправителя

ДвижениеПриход = Движения.ТоварыПереданныеНаКомиссию.ДобавитьПриход();
ДвижениеПриход.Период = Дата;
ДвижениеПриход.Организация = Организация;
ДвижениеПриход.Партнер = КомиссионерПолучатель;
ДвижениеПриход.Номенклатура = СтрокаТовара.Номенклатура;
ДвижениеПриход.Количество = СтрокаТовара.Количество;

Внимание: При такой доработке критически важно обеспечить перенос ВидаЗапасов. Если этого не сделать, при оформлении «Отчета комиссионера» по второму получателю система не сможет определить себестоимость товара и его налоговый статус.

Вариант 3. Обособленные подразделения одного партнера

Выясним ситуацию: является ли розничная сеть одним юридическим лицом? Если да, то в 1С:ERP можно использовать механизм обособленных подразделений. В этом случае все магазины заводятся как разные Партнеры, но привязываются к одному Контрагенту.

В настройках системы (раздел НСИ и администрирование -> Продажи) выберем использование «Групп финансового учета расчетов». Если все отгрузки идут в рамках одного договора с «головой» сети, то перемещение между магазинами можно фиксировать как смену Адреса доставки в управленческом учете. Однако для детального контроля остатков по каждому Партнеру (магазину) все равно придется использовать схему из Варианта 1 или Варианта 2, так как типовой отчет «Товары, переданные на комиссию» строится именно по аналитике Партнер.

Рекомендации по автоматизации контроля остатков

Для реализации требования «видеть текущие остатки и рекомендовать товар» выполним следующие настройки:

Подводя итог, можно сказать, что наиболее стабильным и дешевым в поддержке методом является автоматизация создания парных документов (Возврат + Передача). Это гарантирует отсутствие ошибок в налоговых декларациях и корректный расчет финансового результата по каждой партии товара.

← На главную