Рассмотрим распространенную ситуацию: на склад было оформлено поступление товара (например, 2 штуки), а через некоторое время сделан возврат поставщику на то же количество (2 штуки). Если сформировать отчет «Ведомость по товарам на складах» за период до даты возврата, позиция отображается корректно. Однако если расширить период так, чтобы в него вошел возврат товара, строчка с номенклатурой полностью исчезает из отчета, как будто поставок и движений по ней не было вовсе.
Проанализируем, почему платформа 1С:Предприятие исключает данные позиции из итоговой таблицы:
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты.Номенклатура (без деталей по времени или документам), система рассчитывает итоговые показатели за весь выбранный период:
Разберем несколько способов, с помощью которых можно вывести движения товаров в отчете даже при условии равенства прихода и расхода.
Чтобы увидеть документы, сформировавшие движения, достаточно добавить в структуру группировок документ-регистратор:
Регистратор подчиненным элементом к полю Номенклатура.В этом случае платформа не сможет сгрупировать приход и расход в одну нулевую строку. В отчете появятся отдельные строки с документом поступления и документом возврата.
Если подробный список документов не требуется, но важно видеть наличие движений, добавим временную детализацию:
ПериодДень или ПериодМесяц.Приход и расход распределятся по разным датам, поэтому в день поступления отчет зафиксирует приход и остаток, и строка с товаром перестанет скрываться.
Если ставится задача выводить абсолютно всю номенклатуру из справочника, включая позиции с нулевыми остатками и отсутствием оборотов, понадобится изменить запрос отчета. Для этого связывают справочник номенклатуры с регистром с помощью левого соединения:
ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Номенклатура,
ЕСТЬNULL(ТоварыОбороты.ПриходОборот, 0) КАК Приход,
ЕСТЬNULL(ТоварыОбороты.РасходОборот, 0) КАК Расход
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(&НачалоПериода, &КонецПериода) КАК ТоварыОбороты
ПО СпрНоменклатура.Ссылка = ТоварыОбороты.Номенклатура
Использование таблицы Справочник.Номенклатура в качестве первой таблицы запроса гарантирует, что позиция сохранится в итоговом отчете независимо от значений ресурсов регистра.