Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 мая 2026, 19:27

Получить сумму предыдущих значений + значения выбранной даты

Автор Алексей_1985_06, Сегодня в 11:54

0 Пользователей и 1 гость просматривают эту тему.

Алексей_1985_06


Всем привет! Для меня это задача со звездочкой! Профессионалов и знатоков прошу помощи в формировании запроса. Пользователь выбирает даты (стандартный период), и ему необходимо видеть наработку объекта выбранного в выбранном периоде. Подскажите как получить сумму значений наработки от первой записи в РН + значения выбранной даты начала? И вывести их в таблицу значений.

Пример: первая запись о наработке в РН: май 2019
Пользователь выбрал период: с  октября 2022 по декабрь 2025
Необходимо чтобы он видел сумму значений наработки с мая 2019 (включая октябрь 2022) по декабрь 2025
(На рисунке постарался изобразить....)


Это все что я "родил":

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УчетНаработкиОбороты.Период КАК Месяц,
| УчетНаработкиОбороты.ЗначениеОборот КАК Значение
|ИЗ
| РегистрНакопления.УчетНаработки.Обороты(, , Месяц, ОбъектЭксплуатации = &ОбъектЭксплуатации) КАК УчетНаработкиОбороты
|ГДЕ
| УчетНаработкиОбороты.Период МЕЖДУ &НачалоПериода И &КонецПериода
|
    |УПОРЯДОЧИТЬ ПО
| Месяц";

Запрос.УстановитьПараметр("ОбъектЭксплуатации", Объект.Ссылка);
Запрос.УстановитьПараметр("НачалоПериода", ПериодОтбора.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", ПериодОтбора.ДатаОкончания);
Результат = Запрос.Выполнить().Выбрать();


Соответствие = Новый Соответствие;                // Создадим соответсвие
НаработкаСНачалаЭксплуатации.Очистить();                // Очистим таблицу значений (НаработкаСНачалаЭксплуатации - это ТЗ)
 
Пока Результат.Следующий() Цикл
Соответствие.Вставить(Результат.Месяц, Результат.Значение);    // Запишем в соответсвие ЗНАЧЕНИЯ В КАЖДОМ МЕСЯЦЕ ИЗ ВЫБОРКИ: например 01.01.2026 - 58 час
КонецЦикла;

// КАК ПОЛУЧИТЬ СУММУ ПРЕДЫДУЩИХ ЗНАЧЕНИЙ + ЗНАЧЕНИЯ КОТОРЫЕ БЫЛИ В ВЫБРАННОМ МЕСЯЦЕ (ВЫБРАННОЙ ДАТЫ НАЧАЛА)???

           
  Месяц = НачалоМесяца(ПериодОтбора.ДатаНачала);        // Начало выбранного месяца, например: 01.01.2026
   
Пока  Месяц <= КонецМесяца(ПериодОтбора.ДатаОкончания) Цикл
  НоваяСтрока = НаработкаСНачалаЭксплуатации.Добавить();
  НоваяСтрока.Месяц = Месяц;                             // 01.01.2026

Значение = ?(Соответствие[Месяц]<> Неопределено, Соответствие[Месяц], 0); // Определим значение: 58 час (для 01.01.2026)
     НоваяСтрока.Значение = Значение;

Месяц = ДобавитьМесяц(Месяц, 1);       // Перейдем к следующему месяцу: 01.02.26

КонецЦикла;
            

antoneus


Алексей_1985_06


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск