Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывести все месяцы по оборотному регистру, даже не имеющие оборотов
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
astonvilla
Нужно получить запросом обороты по клиенту за все месяцы, вне зависимости от наличия/отсутствия оборотов.

Сам регистр - оборотный. Бьюсь уже пол дня (((

Календарей и прочего в базе нет (((

Пришлось обойти проблему, предварительно вываливая все в ТЗ с уже заполненными строками с периодами. Но хотелось бы решить это на этапе формирования запроса.

Помогите, коллеги, не дайте в пасть в пучину ереси (((

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



 ! 

необходимо зарегистрироваться для просмотра ссылки: 4,5
 
sava1
Типо так
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d) КАК Период
ИЗ
    (ВЫБРАТЬ
        0 КАК a
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        1
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        2
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        3
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        4
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        5
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        6
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        7
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        8
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        9) КАК aa
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            0 КАК b
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            1
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            2
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            3
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            4
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            5
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            6
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            7
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            8
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            9) КАК bb
        ПО (ИСТИНА)
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            0 КАК c
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            1
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            2
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            3
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            4
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            5
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            6
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            7
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            8
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            9) КАК cc
        ПО (ИСТИНА)
        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            0 КАК d
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            1
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            2
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            3
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            4
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            5
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            6
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            7
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            8
        
        ОБЪЕДИНИТЬ
        
        ВЫБРАТЬ
            9) КАК dd
        ПО (ИСТИНА)
ГДЕ
    aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
astonvilla
sava1 @ Сегодня, 14:00 необходимо зарегистрироваться для просмотра ссылки ,
ну этот код я уже видел на сайтах... Но это к дню относится, да и как его объединить с существующим мне пока не совсем понятно...
sava1
выбрать различные
вместо день - МЕСЯЦ.
astonvilla
Все - вопрос снят....
Все было до обидного элементарно.
В результатах запроса этих месяцев действительно нет (что собственно меня и сбивало с толку).
НО! Чтобы они появились достаточно было в обходе группировок указать "Все"...

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


необходимо зарегистрироваться для просмотра ссылки
sava1
icon_beer17.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.