Имя: Пароль:
1C
1С v8
Как в запросе разбить период на подпериоды
0 MrBoss
 
22.01.16
19:10
Есть интервал времени, например с 13:00 до 15:00, как его разбить на два периода с 13:00 до 14:00 и с 14:00 до 15:00, или с 13:00 до 13:30 - с 13:30 до 14:00 и т. д?
1 Euguln
 
22.01.16
19:11
А чем РАЗНОСТЬДАТ не устраивает?
2 2S
 
22.01.16
19:12
Добавь поле, 1/2/3. Обрабатывай при выводе
3 MrBoss
 
22.01.16
19:12
(1) Устраивает, тока сообразить не могу как с ним разбить бы... если не трудно маленький примерчик бы
4 MrBoss
 
22.01.16
19:23
Ну вот есть у меня период, с 9:00 до 12:00, надо разбить его на подпериоды по 20 минут, т. е. получить таблицу:
9:00
9:20
9:40
10:00
10:20
и т. д.
Как мне разностьдат поможет?
Надо для отчета на СКД
5 mistеr
 
22.01.16
20:19
(4) Задача сводится к генерации арифметической прогрессии, соединению и сложению с началом периода. По генерации уже все обсосано, поиск в помошь.
6 Лефмихалыч
 
22.01.16
20:29
добавитькдате() + в поиске найди "порядковый номер в запросе"
7 Garykom
 
гуру
22.01.16
21:02
(4) лектронную очередь ваяем? случайно не для ЛПУ?
8 MrBoss
 
26.01.16
17:10
(7) Не совсем очередь, просто расписание, допустим врач работает с 9 до 10:20, время приема 20 мин, записано всего два пациента, скажем на 9:00 и 9:40, должно получиться примерно это:
9:00 |пациент|
9:20 |       |
9:40 |пациент|
10:00|       |
10:20|       |

Всё сижу и придумать не могу как мне пустые строки впихнуть
9 kosts
 
26.01.16
17:23
(8) Дык сделал или нет?
10 MrBoss
 
26.01.16
17:25
(9) Неа. Было бы на обычных формах давно бы нарисовал и не парился, с этими УП как лучше сделать сижу гадаю
11 AceVi
 
26.01.16
17:34
(5) Генерация в запросе? я только в цикле такое умею. как ты в запросе сгенерируешь то?
Нужно просто в цикле сформировать таблицу и в запрос ее засунуть. а затем только левым соединением время прихода пациентов. только так.
12 mikecool
 
26.01.16
17:56
(10) смотри (6) + в скд есть служебное поле - номер по порядку
побуй из них собрать пользовательское поле
13 kittystark
 
26.01.16
18:36
ВЫБРАТЬ
    0 КАК val
ПОМЕСТИТЬ tt1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&Нач, МИНУТА, (tab1.val + 10 * tab2.val + 100 * tab3.val + 1000 * tab4.val) * 20) КАК Период
ИЗ
    tt1 КАК tab1,
    tt1 КАК tab2,
    tt1 КАК tab3,
    tt1 КАК tab4
ГДЕ
    ДОБАВИТЬКДАТЕ(&Нач, МИНУТА, (tab1.val + 10 * tab2.val + 100 * tab3.val + 1000 * tab4.val) * 20) <= &Кон

УПОРЯДОЧИТЬ ПО
    ДОБАВИТЬКДАТЕ(&Нач, МИНУТА, (tab1.val + 10 * tab2.val + 100 * tab3.val + 1000 * tab4.val) * 20)
14 kittystark
 
26.01.16
18:40
УПОРЯДОЧИТЬ ПО - это для консоли запросов, чтоб посмотреть

для СКД этого не надо
15 Garykom
 
гуру
26.01.16
20:48
(10) каким образом УФ запрещают юзать код? Вместо чистых запросов?
Даже в СКД можно функции засунуть при желании
AdBlock убивает бесплатный контент. 1Сергей