В любом случае нам нужно получить объект бухгалтерские итоги. Состояние склада нужно на какой-то конкретный момент. Обычно это сегодня, что соответствует вопросу – что есть на складе.
Первый вариант заключается в том, что мы получим итоги и потом пробежимся по справочнику товаром извлекая из бух. итогов сумму. Обратите внимание, что мы здесь используем Расчет.
Процедура Сформировать() Т = СоздатьОбъект("Таблица"); Ном = СоздатьОбъект("Справочник.Номенклатура"); Ном.ВыбратьЭлементы(); Итог = СоздатьОбъект("БухгалтерскиеИтоги"); Итог.Рассчитать(ТекущаяДата(),ТекущаяДата(),"41"); Пока Ном.ПолучитьЭлемент() > 0 Цикл Т.ВывестиСекцию("Секция_1"); КонецЦикла; Т.ТолькоПросмотр(1); Т.Показать(); КонецПроцедуры
Вывести можно так:
Второй способ основан на использовании запроса:
Процедура Сформировать() Т = СоздатьОбъект("Таблица"); Итог = СоздатьОбъект("БухгалтерскиеИтоги"); Итог.ИспользоватьСубконто(ВидыСубконто.Номенклатура, , 1); Итог.ВыполнитьЗапрос(ТекущаяДата(),ТекущаяДата(),"41"); Итог.ВыбратьСубконто(); // идем по субконто Пока Итог.ПолучитьСубконто() = 1 цикл Т.ВывестиСекцию("Секция_1"); КонецЦикла; Т.ТолькоПросмотр(1); Т.Показать(); КонецПроцедуры
Вывести результаты можно так.
Результат немного разный. В первом варианте будет много нулей. Конечно, их можно пропускать. Как поступать лучше я пока не знаю. Результат и тот и другой вариант дают одинаковый. Наверно есть разница в скорости работы Рассчет и ВыполнитьЗапрос.