Нужно получить запросом обороты по клиенту за все месяцы, вне зависимости от наличия/отсутствия оборотов.
Сам регистр - оборотный. Бьюсь уже пол дня (((
Календарей и прочего в базе нет (((
Пришлось обойти проблему, предварительно вываливая все в ТЗ с уже заполненными строками с периодами. Но хотелось бы решить это на этапе формирования запроса.
Помогите, коллеги, не дайте в пасть в пучину ереси (((
"ВЫБРАТЬ
| ИспользованиеТопливаОбороты.КонтрагентПродано КАК Контрагент,
| ИспользованиеТопливаОбороты.Период КАК Период,
| ИспользованиеТопливаОбороты.ТопливоПогашения КАК Топливо,
| СУММА(ИспользованиеТопливаОбороты.КоличествоЛитровОборот) КАК КвоЛитров
|ИЗ
| РегистрНакопления.ИспользованиеТоплива.Обороты(&НачДата, &КонДата, Месяц, КонтрагентПродано В (&ОтборКонтрагент)) КАК ИспользованиеТопливаОбороты
|
|СГРУППИРОВАТЬ ПО
| ИспользованиеТопливаОбороты.КонтрагентПродано,
| ИспользованиеТопливаОбороты.Период,
| ИспользованиеТопливаОбороты.ТопливоПогашения
|
|УПОРЯДОЧИТЬ ПО
| ИспользованиеТопливаОбороты.КонтрагентПродано.Наименование,
| Период,
| Топливо
|ИТОГИ
| СУММА(КвоЛитров)
|ПО
| Контрагент,
| Период ПЕРИОДАМИ(МЕСЯЦ, &НачДата, &КонДата)";
! | http://pro1c.org.ua/index.php?act=announce&id=2: 4,5 |
Типо так
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, 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 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)
sava1 @ Сегодня, 14:00
,
ну этот код я уже видел на сайтах... Но это к дню относится, да и как его объединить с существующим мне пока не совсем понятно...
выбрать различные
вместо день - МЕСЯЦ.
Все - вопрос снят....
Все было до обидного элементарно.
В результатах запроса этих месяцев действительно нет (что собственно меня и сбивало с толку).
НО! Чтобы они появились достаточно было в обходе группировок указать "Все"...
ВыборкаПериод = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ");
Пока ВыборкаПериод.Следующий() Цикл
ОбластьПериод.Параметры.Заполнить(ВыборкаПериод);
ТабДок.Вывести(ОбластьПериод, ВыборкаПериод.Уровень());
КонецЦикла;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua