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

Помогите пожалуйста с кодом

Автор Алексей_1985_06, 17 мая 2026, 20:24

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

Алексей_1985_06

Доброго времени суток! Уважаемые программисты и разработчики, помогите пожалуйста решить задачу:
Из регистра накопления нужно получить данные и наработке и сформировать диаграмму, включая те периоды по которым не было значений наработки.
На форме элемента создал реквизит формы с типом стандартный период, для установки среза получения данных, создал команду для получения данных в разрезе установленного периода. Если устанавливаю период например с: 01.04.2025 по 31.12.2026, то график формируется как представлено на рисунке. Подскажите как исправить, чтобы данные выводились в разрезе "ГОД", вне зависимости от указанной даты в году, т.е в данном случае нужно чтобы данные о наработке вывдились за 2025 и 2026 год......

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

РезультатЗапроса = Запрос.Выполнить();
ВыборкаПоГодам = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ПериодГод", "ВСЕ");

ДиаграммаГод.Очистить();  // Очистим диаграмму            
СерияГод = ДиаграммаГод.УстановитьСерию("Наработка"); // Серия   
Пока ВыборкаПоГодам.Следующий() Цикл                    // Точки и значения в точках                                                                                   
ТочкаГод = ДиаграммаГод.УстановитьТочку(ВыборкаПоГодам.ПериодГод);                
ДиаграммаГод.УстановитьЗначение(ТочкаГод,СерияГод,ВыборкаПоГодам.ЗначениеОборот);
КонецЦикла;

КонецПроцедуры

Но, вот если устанавливаю

Алексей_1985_06

Цитата: Алексей_1985_06 от 17 мая 2026, 20:24Доброго времени суток! Уважаемые программисты и разработчики, помогите пожалуйста решить задачу:
Из регистра накопления нужно получить данные и наработке и сформировать диаграмму, включая те периоды по которым не было значений наработки.
На форме элемента создал реквизит формы с типом стандартный период, для установки среза получения данных, создал команду для получения данных в разрезе установленного периода. Если устанавливаю период например с: 01.04.2025 по 31.12.2026, то график формируется как представлено на рисунке. Подскажите как исправить, чтобы данные выводились в разрезе "ГОД", вне зависимости от указанной даты в году, т.е в данном случае нужно чтобы данные о наработке вывдились за 2025 и 2026 год......



Ребят есть у кого мысли, почему такая ерунда происходит? Почему происходит дублирование строк при получении данных? А если устанавливаю период, так вообще никаких данных нет.... :dfbsdfbsdf:  :dfbsdfbsdf:  :dfbsdfbsdf:
Хотя в регистре записи есть!

Максим75

Алексей_1985_06, ну потому как у Вас начало периода 31.12.2026, а конец периода - 01.01.2022.
внимательно смотрим как параметры называются

Алексей_1985_06

Максим75, Да, спасибо здесь затупил, глаз видимо уже "замылился", а вот откуда строка с NULL берется?
И почему не выводятся все года, период указан с 01.01.2021 по 18.05.2026, в 2023 году значений не было, по структуре запроса он как бы должен вывестись с нулевым значением, а его нет.... :dfbbdrfb:

Максим75

Алексей_1985_06, скорее всего консоль запроса не "кушает" вот это Периодами.
Внимательно посмотрите, как потом обходится результат запроса, чтобы получить эти периоды.
Ну а Null - все правильно, группировка по периоду, там нет объекта эксплуатации, он появляется уже как "детальная" запись.

Теги:

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

Рейтинг@Mail.ru

Поиск