Имя: Пароль:
1C
1С v8
Запрос
0 zak555
 
05.06.13
12:07
Пусть есть

1. Число1 / Число2
2. Дата1 / Дата2

как написать запрос, чтобы получить

Число1
Число1+1
Число1+2
..
Число2


или

Дата1
Дата1+86400
Дата1+86400*2
...
Дата2

?
1 Defender aka LINN
 
05.06.13
12:11
(0) Ты сам-то этот бред понял?
2 Ненавижу 1С
 
гуру
05.06.13
12:12
зачем?
3 zak555
 
05.06.13
12:13
(1) дано

Число1 = 1
Число2 = 100

или

Дата1 = 01.05.2013
Дата2 = 31.05.2013


нужно в запросе получить

Число
1
2
3
...
99
100


или
ТекДата
01.05.2013
02.05.2013
03.05.2013
...
30.05.2013
31.05.2013
4 mikecool
 
05.06.13
12:13
незя
5 mikecool
 
05.06.13
12:14
+4 заполни какую нить табличку нужными тебе значениями и селекай оттуда
6 Ненавижу 1С
 
гуру
05.06.13
12:14
(3) для дат есть производственный регламентированный календарь
7 эцп
 
05.06.13
12:15
8 zak555
 
05.06.13
12:15
(2) интересен способ заполнения без цикла ТЗ
9 mikecool
 
05.06.13
12:15
(8) хранимая процедура с циклом
10 zak555
 
05.06.13
12:16
(4) что ж так плохо ? =)
11 Любопытная
 
05.06.13
12:16
Мне в прошлом году тоже нужно было решить подобную задачу - для расчета нужна была разница между предыдущим и текущим значением. Прищлось обрабатывать после запроса
12 zak555
 
05.06.13
12:22
(5) ???

у меня есть некая выборка со значениями

Чис Зн
101 678
102 6787
...
150 123

т.е. тут 50 строк

я хотел её объедением дополнить
Чис Зн
001 3
002 3
...
100 3

ясно, что могу из первого запроса выгрузить в ТЗ и добавить нужны строки

вот меня заинтересовал способ, как это сделать запросом
13 zak555
 
05.06.13
12:22
(6) это же только для даты и типовых конф
14 zladenuw
 
05.06.13
12:24
(13) где то видел, как в запросе получали период с двух дат. может взять алгоритм. и попробовать прикрутить к твоей задачи. там вроде через матрицу решаеться
15 Ненавижу 1С
 
гуру
05.06.13
12:24
(13) ну при умелом подходе можно и для чисел его прикрутить
16 zak555
 
05.06.13
12:26
(15) вводом РС в конфу ?

(14) покажи
17 Любопытная
 
05.06.13
12:26
(16) тебе в (7) показали
18 lxndr
 
05.06.13
12:27
ВЫБРАТЬ
   0 КАК Цифра
ПОМЕСТИТЬ Цифры

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ДОБАВИТЬКДАТЕ(&ДатаНач, ДЕНЬ, Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1) КАК Период
ИЗ
   Цифры КАК Цифры1
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Цифры2
       ПО (Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ))
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Цифры3
       ПО (Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ))
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цифры КАК Цифры4
       ПО (Цифры4.Цифра * 1000 + Цифры3.Цифра * 100 + Цифры2.Цифра * 10 + Цифры1.Цифра * 1 <= РАЗНОСТЬДАТ(&ДатаНач, &ДатаКон, ДЕНЬ))

УПОРЯДОЧИТЬ ПО
   Период
19 Rovan
 
гуру
05.06.13
12:27
20 Ёпрст
 
гуру
05.06.13
12:29
(12) в скуле - запросто, как в снеговике - хз
21 zak555
 
05.06.13
12:33
(18) не работает
22 zak555
 
05.06.13
12:34
*работает т.е.
23 zak555
 
05.06.13
12:49
да уж, я уж думал всё это проще =)