RE: Как сформировать отчет в 1С УНФ с вычитанием остатка дней по формуле?

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

    Данный код создает отчет, который выбирает товары из регистра накопления «Запасы», вычисляет остаток дней с момента поступления и вычитает срок хранения товара. Результаты выводятся в таблицу.

    База знаний 1С