1C
&НаКлиенте
Процедура СформироватьОтчет()
// Получаем текущую дату
ТекущаяДата = ТекущаяДата();
// Создаем выборку для получения остатков товаров
Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ
Товары.Номенклатура,
Товары.Характеристика,
Товары.Количество,
Товары.СрокХранения,
Товары.ДатаПоступления,
(ТекущаяДата() - Товары.ДатаПоступления) КАК ОстатокДней
ИЗ
РегистрНакопления.Запасы КАК Товары
ГДЕ
Товары.Количество > 0";
Результат = Запрос.Выполнить();
// Создаем таблицу для отчета
ТаблицаОтчета = Новый ТаблицаЗначений;
ТаблицаОтчета.Колонки.Добавить("Номенклатура");
ТаблицаОтчета.Колонки.Добавить("Характеристика");
ТаблицаОтчета.Колонки.Добавить("Количество");
ТаблицаОтчета.Колонки.Добавить("СрокХранения");
ТаблицаОтчета.Колонки.Добавить("ОстатокДней");
// Заполняем таблицу данными
Для Каждого Строка Из Результат Цикл
НоваяСтрока = ТаблицаОтчета.Добавить();
НоваяСтрока.Номенклатура = Строка.Номенклатура;
НоваяСтрока.Характеристика = Строка.Характеристика;
НоваяСтрока.Количество = Строка.Количество;
НоваяСтрока.СрокХранения = Строка.СрокХранения;
НоваяСтрока.ОстатокДней = Строка.ОстатокДней - Строка.СрокХранения;
КонецЦикла;
// Выводим отчет
Сообщить("Отчет сформирован. Количество строк: " + ТаблицаОтчета.Количество());
КонецПроцедуры