Почему возврат от покупателя не приходует товар в регистр «Товары на складах»?

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

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

1. Проверка использования ордерной схемы учета

Проанализируем самую распространенную причину: использование ордерного склада. В системе «1С:Розница» реализовано разделение финансового и складского контура. Если для склада включена настройка «Использовать ордерную схему при поступлении», то документ возврата фиксирует только право на получение товара и задолженность перед покупателем, но не сам факт прихода номенклатуры на полку.

Выясним, как проверить эту настройку:

  1. Перейдем в раздел НСИ и откроем справочник Склады (Магазины).
  2. Найдем склад, указанный в документе возврата.
  3. Проверим наличие флажка в поле Использовать ордерную схему при поступлении.

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

2. Различие возвратов «в смену» и «не в смену»

Рассмотрим подробнее механизм работы системы в зависимости от времени совершения возврата. В «1С:Розница» алгоритмы существенно различаются для текущей и прошлых смен:

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

Возврат в другую смену: Оформляется документом ВозвратТоваровОтПокупателя. Проанализируем ситуацию: если документ создан, но движений нет, проверим статус документа и заполнение аналитики. Если в настройках магазина включено разделение на торговый зал и склад хранения, возврат может попадать в ТоварыВРознице, если учет ведется в ценах продажи, а не в ТоварыНаСкладах.

3. Анализ статусов качества возвращаемого товара

Выясним, как статус товара влияет на его отражение в учете. В табличной части документа возврата есть колонка, определяющая состояние номенклатуры (например, «Новый» или «Брак»).

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

4. Проверка ручной корректировки движений

Иногда причиной отсутствия записей в регистрах становится человеческий фактор. Проанализируем настройки самого документа:

  1. В верхней части формы документа «Возврат товаров от покупателя» найдем кнопку Движения документа (пиктограмма с буквами Дт и Кт).
  2. Проверим, не установлен ли флаг Ручная корректировка (разрешает редактирование движений документа).

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

5. Технические ошибки: кэш и итоги регистров

Рассмотрим ситуацию, когда в базе данных движения фактически существуют, но отчеты их не показывают. Такое случается при сбоях в расчете итогов или некорректной работе платформы (например, версии 8.3.13).

Для диагностики выполним следующие действия:

  1. Откроем Все функции (или «Функции для технического специалиста»).
  2. Перейдем в раздел Регистры накопления и выберем ТоварыНаСкладах.
  3. Установим отбор по регистратору (нашему документу возврата).

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

6. Особенности учета по сериям и характеристикам

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

Убедимся, что для каждой позиции, требующей учета по сериям, в документе ВозвратТоваровОтПокупателя указана корректная серия. Если серия не была выбрана, программа может не понимать, в какую «корзину» остатков положить товар, и игнорировать движение по регистру ТоварыНаСкладах.

7. Использование кода для программной проверки движений

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


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

Если ДвиженияДокумента.Количество() = 0 Тогда
    Сообщить("У документа отсутствуют движения по регистру Товары на складах!");
Иначе
    Для Каждого Запись Из ДвиженияДокумента Цикл
        Сообщить("Склад: " + Запись.Склад + ", Номенклатура: " + Запись.Номенклатура + ", Количество: " + Запись.Количество);
    КонецЦикла;
КонецЕсли;

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

Итоги

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

← На главную