Имя: Пароль:
1C
1С v8
Несколько диапазонов дат в запросе
0 Сотрудница
 
01.10.14
07:23
не могу сообразить, как сделать, чтоб не косолапо было
нужно выбрать некоторые документы по условию, что они принадлежат одному из нескольких диапазанов дат.
и сгруппировать по ним.

например:
(01.02.2014 06:00:00 - 02.02.2014 01:59:59),
(02.02.2014 06:00:00 - 03.02.2014 01:59:59),
(03.02.2014 06:00:00 - 04.02.2014 01:59:59)

в голову приходит только условие:
где ((дата между нач1 и кон1) или (дата между нач2 и кон2) или (дата между нач3 и кон3))

проблема в том, что диапазонов может быть и больше
1 Рэйв
 
01.10.14
07:27
ГДЕ
  Док.Дата Между &Д1 И &Д2
  ИЛИ  Док.Дата Между &Д3 И &Д4
  ИЛИ  Док.Дата Между &Д5 И &Д6
   .... и т.д.
2 Godofsin
 
01.10.14
07:27
Динамически формировать текст запроса с объединением. И это, запрашивать документы не комильфо, запрашивай регистр.
3 Рэйв
 
01.10.14
07:27
а поля для группировки через выбор
4 Godofsin
 
01.10.14
07:29
(1) Так она же говорит, что кол-во диапозонов не статично. Как динамически устанавливать параметры запроса?
5 Сотрудница
 
01.10.14
07:29
а как группировать по периоду?
6 patria0muerte
 
01.10.14
07:29
(0) Ну если считать, что документы находятся в одном периоде, но не должны попадать в один временной диапазон с 02:00 до 06:00, то можно посчитать количество секунд прошедших с начала дня (00:00) и если допустим количество секунд > 7200 и < 21600 тогда ЛОЖЬ
7 Сотрудница
 
01.10.14
07:30
(4)
вообще на вход идут две даты - начало и конец
например 01.02.2014 06:00:00 и 04.02.2014 01:59:59
при этом диапазон вот такие:
(01.02.2014 06:00:00 - 02.02.2014 01:59:59),
(02.02.2014 06:00:00 - 03.02.2014 01:59:59),
(03.02.2014 06:00:00 - 04.02.2014 01:59:59)
8 patria0muerte
 
01.10.14
07:31
+(6) А потом уже в СКД разбить по группировкам ДЕНЬ по полю период
9 magicSan
 
01.10.14
07:31
если выборка за месяц то ограничение по месяцу, далее по часам
10 Godofsin
 
01.10.14
07:31
(7) Так кол-во диапозонов всегда одинаково или меняется по прихоти пользователя?
11 mergan
 
01.10.14
07:32
передать диапазон таблицей ... и потом левым соединением на по дате документа между периодами в таблице
12 Сотрудница
 
01.10.14
07:32
(10) начало и конец задаются пользователем и далее разбиваются
13 Godofsin
 
01.10.14
07:32
(7) ааа... так у тебя диапозоны это каждый день с 6 утра из интервала дат?
14 Godofsin
 
01.10.14
07:33
(12) все, понял.
15 Сотрудница
 
01.10.14
07:33
(11) попробую
16 Сотрудница
 
01.10.14
07:34
(13) время в начале и окончании тоже могут произвольное задать. может получиться, что диапазоны без перехода на другие сутки
17 Godofsin
 
01.10.14
07:35
(16) Я сообразил, пробуй (11), должно взлететь
18 mergan
 
01.10.14
07:44
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка
ИЗ
    тзИнтревалы КАК тзИнтревалы
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПО (РеализацияТоваровУслуг.Дата МЕЖДУ тзИнтревалы.ДатаНачала И тзИнтревалы.ДатаОкончания)


все работает
19 mergan
 
01.10.14
07:45
ну и в запрос через менеджер временных таблиц загружаешь саму таблицу с нужными тебе диапазонами
20 Godofsin
 
01.10.14
07:51
(19) МВТ необязателен
21 lxndr
 
01.10.14
08:01
можно таблицу периодов состряпать в запросе
22 Сотрудница
 
01.10.14
08:06
(21)
наверное было бы красивее, но пока так сделаю, чтоб работало, потом допиливать
23 Сотрудница
 
01.10.14
08:51
спасибо всем, все получилось