Имя: Пароль:
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)
            ИНАЧЕ ПериодыСмен.ВремяОкончания
        КОНЕЦ) КАК ВремяОкончания
ИЗ
    ПериодыСмен КАК ПериодыСмен
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn