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