Имя: Пароль:
1C
1С v8
Помощь в конструировании задач, наверное.
,
0 Azxcvbn
 
16.01.15
13:16
Задача.
Нужно хранить в регистре сведений время перерывов.
Регистр заполняется на год по типу:

Измерение        Измерение   Ресурс     Ресурс
дата        график работы      с          по
01.01.2015     пятидневка    00:00       09:00
01.01.2015     пятидневка    13:00       14:00
01.01.2015     пятидневка    18:00       23:59

Такую информацию нельзя хранить в непериодическом регистре, приходится делать периодический в секундах, но мне не нравится делать записи по типу период - 01.01.2015 00:00:00, 01.01.2015 00:00:01
ну не красиво, есть ли альтернатива какая нибудь?
1 Адский плющ
 
16.01.15
13:19
"нельзя хранить в непериодическом регистре" - религия запрещает?
2 sherstnev
 
16.01.15
13:21
то что сейчас сделано как ресурсы - нужно делать измерениями.
3 butterbean
 
16.01.15
13:22
(0) убери время перерывов в измерения и не надо будет морочиться с периодикой
4 Адский плющ
 
16.01.15
13:23
Да вообще всё в измерения посади! В п-ду Кодда!
5 Azxcvbn
 
16.01.15
13:27
(1) Если есть строки с одинаковыми строками в непериодическом регистре, он не дает сделать такие записи.

Мне потом ресурсы эти надо вытаскивать запросом
6 Azxcvbn
 
16.01.15
13:31
Хотя, по-моему действительно, сделать непериодическим и сунуть все в ресурсы, должно помочь.
7 Azxcvbn
 
16.01.15
13:31
Измерения*
8 Classic
 
16.01.15
13:33
Период            Измерение      Актуальность

01.01.2015 00:00  пятидневка     Истина
01.01.2015 09:01  пятидневка     Ложь
01.01.2015 13:00  пятидневка     Истина
01.01.2015 14:01  пятидневка     Ложь
9 Azxcvbn
 
16.01.15
13:36
(8) не так не пойдет, мне потом будет неудобно перерывы сравнивать.
10 Classic
 
16.01.15
13:38
(9)
Твои проблемы. Сравниваются перерывы элементарно.
Но при данной схеме очень легко определять, попадает ли какой-то график на перерыв.
11 Адский плющ
 
16.01.15
13:39
(5) Измерения

- Дата начала перерыва
- график работы

Ресурсы

- Дата окончания
12 Fish
 
16.01.15
13:40
Изобретаем типовой механизм работы по графику?
13 Azxcvbn
 
16.01.15
13:42
(12) нет
14 Адский плющ
 
16.01.15
13:42
(8) тоже хорошо. Избавляемся от проверок на пересечение периодов, но редактирование и получение данных превращается в гимор.
15 Classic
 
16.01.15
13:42
+(10)
Вот тебе подзапрос, приводящий структуру данных к твоему виду

ВЫБРАТЬ
    Регистр.Измерение,
    Регистр.Период,
    МИНИМУМ(Регистр2.Период)
ИЗ РегистрСведений.Регистр КАК Регистр
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Регистр КАК Регистр2
    ПО Регистр.График = Регистр2.График
       И Регистр.Период < Регистр2.Период    
ГДЕ
   Регистр.Актуальность
   И НЕ Регистр2.Актуальность
СГРУППИРОВАТЬ ПО
    Регистр.Измерение,
    Регистр.Период
16 Classic
 
16.01.15
13:44
(14)
Это как посмотреть.
Например добавлять новый перерыв намного легче.

в (0)
надо удалить строку

13.00 - 14.00
и добавить 13.00-13.30   13.40-14.00

в (8)
просто добавить две записи
13.31  ложь
13.40  истина
17 Classic
 
16.01.15
13:48
(16)
Точнее не перерыв, а разрыв перерыва :)