Имя: Пароль:
1C
1С v8
мин и макс значения периода смен и графиков работы.
,
0 Uchenica74
 
16.10.13
07:25
Доброе утро! Пожалуйста подскажите как составить запрос на поиск начала и конца смены к таблице вида http://www.fotolink.su/v.php?id=5b8afb6a95bb7bc52d3ccc221f8a2885 (найти нужно выделенное время).Использовать мин и макс не могу, т.к. время окончания смены находиться в той же дате, что и время начала. Можно ли просто взять первое значения из одного столбца и последнее значение из другого столбца?
1 Повелитель
 
16.10.13
07:26
Бери разрешаю
2 Uchenica74
 
16.10.13
07:30
хороший совет
3 1Сергей
 
16.10.13
07:33
А по условию ВремяНачала = ВремяОкончания не подойдёт?
Что-то не понятна задача, по каким принципам оно выбирается
4 kosts
 
16.10.13
07:34
(0) непонятно.
Почему последняя смена оканчивается в 8-00?
5 Uchenica74
 
16.10.13
07:39
у кпп 20-часовой рабочий день, и по идеи время начало должно быть 01.01.0001 8:00 и время окончания 02.01.0001 8:00
6 Uchenica74
 
16.10.13
07:40
а также у смены может быть время начала с 8:00 и время окончания 17:00
7 Uchenica74
 
16.10.13
07:41
я вот думаю может взять мин строку по колонке время начала и макс строку по колонке время окончания и соединить их по смене
8 1Сергей
 
16.10.13
07:41
(5) в сутках 24 часа. Если начало в 8:00, и окончание в 8:00, то это либо 24-часовой рабочий день, либо нулевой
9 kosts
 
16.10.13
07:42
(5)(6) В таком случае не все данные внесены.
10 Йохохо
 
16.10.13
07:42
в (5) и (6) разные графики работы, не путайте
11 Uchenica74
 
16.10.13
07:43
так заполнен справочник, и в кадрах никто данные менять не будет(((
12 kosts
 
16.10.13
07:43
А если смена 36 часов?
13 kosts
 
16.10.13
07:44
(11) Значит нужно четкое правило, что бы разграничить в одних сутках смена или на вторые попадает...
14 Uchenica74
 
16.10.13
07:44
(12) тогда вообще мозг взрывается(((((
15 1Сергей
 
16.10.13
07:44
(12) я в неделю столько не отрабатываю
16 kosts
 
16.10.13
07:45
(15) Видимо не всем так везет...
17 Йохохо
 
16.10.13
07:46
(11) справочник чего? какой у Вас эксель?
данные на картинке ни к одному случаю не подходят
18 Uchenica74
 
16.10.13
07:47
(13) да согласна, в этом случае наверное лучше разбить эту смену на 2 дня с 01.01.0001 8:00:00 до 01.01.0001 23:59:59 и с 02.01.0001 00:00:01 до 02.01.0001 8:00:00, но опять же как понять что именно этот период нужно разбивать
19 kosts
 
16.10.13
07:52
(18) Да зачем разбивать. Сформулируй, что тебе нужно, а то не поняли из (0).
20 Uchenica74
 
16.10.13
07:53
Мне просто нужно получить период смены, без всех промежутков. Во сколько она началась и во сколько закончилась.
21 Uchenica74
 
16.10.13
08:08
получилось что то вроде этого:
ВЫБРАТЬ РАЗЛИЧНЫЕ
    СменыПериодыСмены.Ссылка,
    МАКСИМУМ(СменыПериодыСмены.НомерСтроки) КАК НомерСтроки
ПОМЕСТИТЬ НомСтрМакс
ИЗ
    Справочник.Смены.ПериодыСмены КАК СменыПериодыСмены
ГДЕ
    СменыПериодыСмены.Ссылка В(&Список)

СГРУППИРОВАТЬ ПО
    СменыПериодыСмены.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НомСтрМакс.Ссылка,
    СменыПериодыСмены.ВремяОкончания
ПОМЕСТИТЬ ВремяОконч
ИЗ
    НомСтрМакс КАК НомСтрМакс
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Смены.ПериодыСмены КАК СменыПериодыСмены
        ПО НомСтрМакс.Ссылка = СменыПериодыСмены.Ссылка
            И НомСтрМакс.НомерСтроки = СменыПериодыСмены.НомерСтроки
ГДЕ
    СменыПериодыСмены.Ссылка В(&Список)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СменыПериодыСмены.Ссылка,
    МИНИМУМ(СменыПериодыСмены.НомерСтроки) КАК НомерСтроки
ПОМЕСТИТЬ НомСтрМин
ИЗ
    Справочник.Смены.ПериодыСмены КАК СменыПериодыСмены
ГДЕ
    СменыПериодыСмены.Ссылка В(&Список)

СГРУППИРОВАТЬ ПО
    СменыПериодыСмены.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    НомСтрМин.Ссылка,
    СменыПериодыСмены.ВремяНачала
ПОМЕСТИТЬ ВремНач
ИЗ
    НомСтрМин КАК НомСтрМин
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Смены.ПериодыСмены КАК СменыПериодыСмены
        ПО НомСтрМин.Ссылка = СменыПериодыСмены.Ссылка
            И НомСтрМин.НомерСтроки = СменыПериодыСмены.НомерСтроки
ГДЕ
    СменыПериодыСмены.Ссылка В(&Список)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВремНач.Ссылка,
    ВремНач.ВремяНачала,
    ВремяОконч.ВремяОкончания
ИЗ
    ВремяОконч КАК ВремяОконч
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремНач КАК ВремНач
        ПО ВремяОконч.Ссылка = ВремНач.Ссылка
22 kosts
 
16.10.13
08:36

ВЫБРАТЬ
    МИНИМУМ(ПериодыСмен.ВремяНачала) КАК ВремяНачала,
    МАКСИМУМ(ВЫБОР
            КОГДА ПериодыСмен.ВремяОкончания <= ПериодыСмен.ВремяНачала
                ТОГДА ДОБАВИТЬКДАТЕ(ПериодыСмен.ВремяОкончания, ЧАС, 24)
            ИНАЧЕ ПериодыСмен.ВремяОкончания
        КОНЕЦ) КАК ВремяОкончания
ИЗ
    ПериодыСмен КАК ПериодыСмен