Имя: Пароль:
1C
 
В запрос все даты за период
0 LeshiyL
 
27.11.09
08:54
Надо сформировать временную таблицу (выборку запроса) содержащую все даты за выбранный период. 1 вариант есть, но там получается больше 10 объединенных подзапросов. Более изящный вариант есть?
1 Ksandr
 
27.11.09
08:55
Не понял задачи. Опиши подробнее
2 LeshiyL
 
27.11.09
09:11
Есть период например с начада этого месяца до сегодня, так вот выборка запроса должна содержать одно единственное поле типа "Дата" но чтобы в нем были все даты за этот период
3 ZanderZ
 
27.11.09
09:22
в зуп, например, есть производственный календарь
4 LeshiyL
 
27.11.09
09:27
(3) ага для одного мелкого отчета цеплять зуп
5 ZanderZ
 
27.11.09
09:28
(4) я не предлагаю зуп цеплять может что то подобное и в твоей конфе есть, если нет то 10 объединений
6 Andry888
 
27.11.09
09:31
(0) программно не хочешь её создать (циклом)?
7 Kasper076
 
27.11.09
09:58
Обсуждалось много раз:
ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) КАК Период
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ИТОГИ ПО
   Период ПЕРИОДАМИ(ДЕНЬ, , )
АВТОУПОРЯДОЧИВАНИЕ
8 IronDemon
 
27.11.09
10:08
Процедура ОсновныеДействияФормыЗапросПоДатам(Кнопка)
   
   Запрос = Новый Запрос;
   КолДнейМеждуДатами = Цел((НачалоДня(КонПериода) - НачалоДня(НачПериода)) /(24*60*60));
   Запрос.УстановитьПараметр("НачДата", НачПериода);
   Запрос.УстановитьПараметр("КолДнейМеждуДатами", КолДнейМеждуДатами);
   
   Запрос.Текст = "
   |ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачДата, День, РазностьДат.НомерДняИзДиапазона) КАК Дата
   |ИЗ (
   | ВЫБРАТЬ 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 <= &КолДнейМеждуДатами) КАК РазностьДат
   |УПОРЯДОЧИТЬ ПО Дата";
   
   Рез = Запрос.Выполнить().Выгрузить();
   ЭлементыФормы.Рез.СоздатьКолонки();
   //ЭлементыФормы.Рез.Значение.Скопировать(Результат);
   ЭлементыФормы.Рез.Колонки.Дата.Формат = "ДФ=dd.MM.yyyy";

КонецПроцедуры
AdBlock убивает бесплатный контент. 1Сергей