![]() |
|
Как в запросе сгенерировать таблицу всех дат в заданном диапозоне? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
12.09.06
✎
18:45
|
Т.е. для 01.02.2006-28.02.2006 должо получиться
01.02.2006 02.02.2006 ... 28.02.2006 |
|||
3
TormozIT
гуру
12.09.06
✎
18:48
|
(1) Согласен, смешно =)
|
|||
11
Гений 1С
гуру
12.09.06
✎
19:46
|
(10) гениально!
|
|||
13
TormozIT
гуру
12.09.06
✎
22:05
|
(10) Ужасно непроизводительно, но решение строго отвечает поставленной задаче. Теперь я знаю решение. megalodon браво!
|
|||
14
TormozIT
гуру
12.09.06
✎
22:23
|
(13) Хотя не строго... Верхняя граница интервала не отслеживается. За счет этого такая непроизводительность.
Оптимизировав, получаем производительный и теперь уже строго отвечающий вариант решения:
|
|||
18
TormozIT
гуру
12.09.06
✎
23:07
|
приведи полный пример с запросом.
|
|||
19
Magic
12.09.06
✎
23:17
|
Пример похож на первый отчет из книги "Практическое пособие разработчика", так же есть на ИТС:
Процедура КассоваяКнига(ТабДок, ДатаНачала, ДатаОкончания) Экспорт Макет = ОтчетОбъект.ПолучитьМакет("КассоваяКнига"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КассаОстаткиИОбороты.Период КАК Период, | КассаОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток, | КассаОстаткиИОбороты.СуммаПриход КАК СуммаПриход, | КассаОстаткиИОбороты.СуммаРасход КАК СуммаРасход, | КассаОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток |ИЗ | РегистрНакопления.Касса.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, День, , ) КАК КассаОстаткиИОбороты |ИТОГИ | СУММА(СуммаНачальныйОстаток), | СУММА(СуммаПриход), | СУММА(СуммаРасход), | СУММА(СуммаКонечныйОстаток) |ПО | ОБЩИЕ, | Период ПЕРИОДАМИ(ДЕНЬ, &ДатаНачала, &ДатаОкончания)"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги"); ОбластьПериод = Макет.ПолучитьОбласть("Период"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщийИтог.Следующий(); // Общий итог ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень()); //ВыборкаПериод = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам ВыборкаПериод = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период","Все"); Пока ВыборкаПериод.Следующий() Цикл ОбластьПериод.Параметры.Заполнить(ВыборкаПериод); ТабДок.Вывести(ОбластьПериод, ВыборкаПериод.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); КонецПроцедуры |
|||
20
MikleV
12.09.06
✎
23:30
|
(10),(14) мозхи:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |