Работа с комиссионерами, особенно с современными маркетплейсами, часто подбрасывает задачи, которые не имеют прямого «линейного» решения в старых конфигурациях. Одной из таких проблем в 1С:Управление торговлей 10.3 является оформление возврата товара, который уже был включен в Отчет комиссионера о продажах. Типовой функционал системы предполагает, что после отчета товар считается окончательно проданным, и обратного пути для него не предусмотрено. Однако в реальности покупатели возвращают товар маркетплейсу, а тот, в свою очередь, возвращает его вам.
В этой статье мы разберем несколько стратегий решения этой задачи: от стандартных документов до «хирургического» вмешательства в регистры и программных доработок.
Разберем ситуацию: комиссионер отчитался о продаже 10 единиц товара. В этот момент программа делает движение «Расход» по регистру ТоварыПереданные. На остатках у комиссионера (в разрезе вашего договора) этого товара больше нет. Когда вы пытаетесь создать документ Возврат товаров от покупателя с видом договора «С комиссионером», система проверяет: а есть ли что возвращать на баланс комиссионера? Поскольку отчет уже «списал» эти позиции, возникает ошибка: «Товара, переданного на реализацию, недостаточно». Программа просто не видит цепочки, по которой проданный товар может вернуться обратно в статус «переданного».
Этот метод подходит для более свежих релизов УТ 10.3 (начиная с 10.3.45 и выше). Рассмотрим, как реализовать этот подход шаг за шагом:
Отчет комиссионера о продажах текущей датой (датой возврата).Важный нюанс: Проанализируем движения документа. Отрицательная продажа в отчете должна восстановить остаток на регистре ТоварыПереданные. После того как этот остаток восстановлен, вы сможете сделать стандартный документ Возврат товаров от комиссионера, чтобы забрать товар со склада маркетплейса на свой собственный склад.
Если ваша конфигурация не позволяет проводить отрицательные отчеты или это вызывает ошибки в расчете НДС, воспользуемся более универсальным методом через Корректировку записей регистров. Это позволит нам «обмануть» систему и вручную восстановить товар в подотчете у комиссионера.
Разберем алгоритм действий:
Отчет комиссионера о продажах, в котором была зафиксирована продажа этого товара.ТоварыПереданные. После проведения корректировки у вас на остатках по договору комиссии снова появится этот товар.Возврат товаров от комиссионера. Поскольку корректировка вернула остаток на «виртуальный склад» комиссионера, этот документ проведется без ошибок и переместит товар на ваш реальный склад.Рассмотрим еще один практический совет, который помогает быстро провести документы, если нет времени разбираться с регистрами. Суть метода заключается во временном создании излишка товара:
Оприходование товаров (или перемещение) на договор комиссии, чтобы искусственно создать остаток этого товара у комиссионера.Возврат товаров от покупателя (с видом договора «С комиссионером»). Теперь система увидит наличие товара и даст его «вернуть».Внимание: Этот способ крайне опасен для партионного учета! Мы крайне не рекомендуем его использовать, если вы ведете учет по ФИФО, так как себестоимость возвращенного товара может «поплыть», и вы получите некорректную прибыль в конце месяца.
Выясним причину, по которой многие специалисты предостерегают от отключения контроля остатков. В УТ 10.3 партионный учет строится на жесткой привязке к документам поступления. Когда происходит возврат, программа должна понимать, по какой стоимости этот товар возвращается на баланс.
Если вы используете Корректировку записей регистров, убедитесь, что вы заполнили регистр Партии товаров на складах (управленческий учет). В нем должны быть отражены следующие данные:
Если возвраты от маркетплейсов происходят массово, лучшим решением будет небольшая доработка конфигурации. Проанализируем ситуацию: в УТ 11 эта проблема решена добавлением отдельной табличной части «Возвраты» в документ отчета. Мы можем пойти по этому же пути в УТ 10.3:
ОтчетКомиссионераОПродажах новую табличную часть Возвраты.ОбработкаПроведения описываем логику: для строк из таблицы возвратов движения по регистрам Продажи и ТоварыПереданные должны быть инвертированы (сторнированы).Пример логики кода для обработки возвратов в отчете:
// Пример упрощенной логики сторнирования в модуле документа
Для Каждого СтрокаВозврата Из ТаблицаВозвратов Цикл
Движение = Движения.ТоварыПереданные.ДобавитьПриход();
Движение.Номенклатура = СтрокаВозврата.Номенклатура;
Движение.ДоговорКонтрагента = ДоговорКонтрагента;
Движение.Количество = СтрокаВозврата.Количество;
// Сторнируем выручку в регистре Продажи
ДвижениеПродажи = Движения.Продажи.Добавить();
ДвижениеПродажи.Период = Дата;
ДвижениеПродажи.Номенклатура = СтрокаВозврата.Номенклатура;
ДвижениеПродажи.Количество = -СтрокаВозврата.Количество;
ДвижениеПродажи.Стоимость = -СтрокаВозврата.Сумма;
КонецЦикла;
Подводя итог, можно сказать, что для разовых операций наиболее безопасным и «чистым» методом является Способ №2 (Корректировка записей регистров). Он позволяет полностью контролировать движения по всем регистрам — и по остаткам товаров, и по взаиморасчетам, и по партиям.
Если же вы работаете с крупными площадками вроде Wildberries или Ozon и количество возвратов исчисляется сотнями, рассмотрите вариант внедрения готовых модулей интеграции или доработки типового Отчета комиссионера. Это избавит вас от рутинной работы с регистрами и минимизирует риск возникновения ошибок в учете себестоимости. Для автоматизации этих процессов можно использовать обработку для загрузки еженедельных отчетов Wildberries в УТ 10.3.
Помните: Никогда не отключайте контроль остатков для решения подобных проблем «на скорую руку». Это приведет к тому, что в отчетах по прибыли вы увидите пустые графы себестоимости или огромные минусы, на поиск причин которых уйдет гораздо больше времени. Для выявления и устранения таких расхождений подойдёт помощник исправления ошибок партионного учета в УТ 10.3.