Имя: Пароль:
1C
1С v8
Логическая задачка на создание запроса
,
0 ProgaN
 
17.11.11
10:41
Условия задачи: Есть список документов.
Док1 от 1 января
Док2 от 3 января
Док3 от 6 января
Док4 от 7 января
Док5 от 9 января
...
Необходимо получить таблицу (для расчета разницы во времени между документами) типа:
...  -  Док1 от 1 января
Док1 от 1 янврая - Док2 от 3 января
Док2 от 3 января - Док3 от 6 января ...и тд
Как написать такой запрос?
1 Feanor
 
17.11.11
10:42
соединения не предлагать?
2 ponaroshku
 
17.11.11
10:42
1 день = 1 документ?
3 Grusswelle
 
17.11.11
10:43
соединить два запроса, не?
4 ProgaN
 
17.11.11
10:44
(1) Соединения в запросе? Предлагать.
(2) Не обязательно, может быть разрыв в секунду.
5 ProgaN
 
17.11.11
10:44
(3) Возможно, вопрос в том - как?
6 Feanor
 
17.11.11
10:45
(4) предлагаю использовать соединения. задача элементарная.
7 Reset
 
17.11.11
10:45
Отсутвует условие задачи напрочь.
8 Aleks73
 
17.11.11
10:45
вложенный запрос ? если не слишком много вариантов дат.
9 ProgaN
 
17.11.11
10:45
(6) Пример в студию. )))
10 Рэйв
 
17.11.11
10:46
(0)А запрос обязательно?
Закинул бы в тз с колонками Документ и РазницаПредыдущим, отсортировал по дате, а потом перебором спокойно бы заполнил разницу
11 Stim213
 
17.11.11
10:46
2 одинаковые таблицы, Табл1 и Табл2
левое соединение по условию
НАЧАЛОПЕРИОДА(Док1.Дата,ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(Док2.Дата,ДЕНЬ),ДЕНЬ,1)
12 andrewks
 
17.11.11
10:46
(0) это абстрактный конь в вакууме, или есть реальная задача? если есть - озвучь
13 Feanor
 
17.11.11
10:48
(9) он слишком прост, поэтому мне лениво, а вообще стимка прав в (11), тока зачем добавлять к дате я хз, можно ещё запросом эту разницу в итоге высчитать, ну и сравнивать нужно момент времени по идее
14 VVi3ard
 
17.11.11
10:48
В чем проблема? Задача элементарная, делаешь соеденение.
Условие соеденения
Т1.Дата < Т2.Дата

Потом берешь все поля из т1 и максимум по полю Т2.Дата

Получается что для каждой даты из т1 У тебя будет предыдущая дата.
15 VVi3ard
 
17.11.11
10:48
т.е. сори т1.дата > т2.Дата
16 Stepa86
 
17.11.11
10:49
Если делать на СКД, то в 8.2.14 появилась возможность получения значения предыдущей строки
17 VVi3ard
 
17.11.11
10:50
т.е. результат будет:
Док1 от 1 января - null
Док2 от 3 января - 1 января
Док3 от 6 января - 3 января
Док4 от 7 января - 6 января
Док5 от 9 января - 7 января
Ну а дальше считаешь разницу как тебе нужно.
18 acsent
 
17.11.11
10:54
Классическая задача из разряда "курсы валют на каждую дату документа"
19 VVi3ard
 
17.11.11
10:55
На больших объемах >100 000 этот запрос будет не очень оптимален и возможно лучше будет действительно воспользоваться ТЗ или СКД