Имя: Пароль:
1C
1С v8
Как правильно спроектировать РС
,
0 Vadimugatu
 
24.01.15
16:35
Всем привет!!!
Как правильно спроектировать регистр сведений?
Необходимо на определенную дату получать значение в разрезе сотрудника. Исходя из этого, вижу два варианта:
1. Периодический РС с одним измерением «Сотрудник», периодичность – день.
2. Непериодический с двумя измерениями «Сотрудник» и «Дата».
Понимаю, что в первом случае я могу обращаться к ВТ «Срез последних», но мне как бы и не нужен этот срез, так как мне нужно значение именно на ДАТУ, т.е. если значения на дату нет, то и в выборку попадать ничего не должно. С другой стороны, при использовании этой ВТ, я могу параметр «дату» фильтровать не в поле «период» а  параметрах таблицы. Также плюсом использования ВТ вижу то, что можно накладывать фильтр на сотрудников  также в параметрах ВТ.
Или все таки использовать непериодический.
Вообще, проблем при реализации в обоих случаях не вижу. Просто хотелось бы прояснить для себя, что лучше. Заранее спасибо.
1 ShoGUN
 
24.01.15
16:53
(0) Если тебе не нужен срез последних, а нужно значение на дату - то толку тебе от параметров ВТ? Ты всё равно не сможешь её использовать, она будет выдавать не то, что тебе нужно. Кроме того, виртуальная таблица в данном случае принципиально медленней тупой выборки из обычной таблицы. Хотя на маленьких объемах данных это может быть незаметно.
Конкретно в твоём случае никакой особенной разницы между периодическим и непериодическим регистром нет, только "индексировать" поставь по измерениям в непериодическом регистре.
2 Vadimugatu
 
24.01.15
17:05
(1)"Ты всё равно не сможешь её использовать, она будет выдавать не то, что тебе нужно" - почему? Я же могу фильтровать по дате не в поле "Период" а полях таблицы, там же, где и фильтруются измерения. Согласен, что разницы особой нет. Спасибо за ответ.
3 ShoGUN
 
24.01.15
17:10
(2) >Я же могу фильтровать по дате не в поле "Период" а полях таблицы, там же, где и фильтруются измерения.
И нафига тебе срез последних, в таком случае? Ты посмотри, как он внутри устроен:
Книга знаний: Срез последних на каждую дату в запросе
Проще выбирать напрямую из таблицы, не нужны тебе никакие срезы.
4 floody
 
24.01.15
17:54
Использовать периодический РС, но запрашивать не срез, а основную таблицу?
5 ShoGUN
 
24.01.15
18:06
(0) В этом случае нет особой разницы, периодический это регистр, или непериодический с измерением "Дата".
6 ShoGUN
 
24.01.15
18:06
(5) к (4).
7 Лефмихалыч
 
24.01.15
18:20
(0) без описания задачи, то есть - зачем и что тебе получать, - объективных советов тебе ни кто не даст.
8 EvgeniuXP
 
24.01.15
18:22
(0) для 8.3 срез последних будет выгоднее :), но это если тебе надо получать значение на дату, не зависимо от того когда ранее устанавливалось - получишь последнее значение. А если тебе надо на конкретную дату - то причем тут периодический, там на другую дату и не получишь если этого значения нет в РС.
9 EvgeniuXP
 
24.01.15
18:23
(+8) опять же для 8.3 выгоднее, если чаще будешь обращаться без параметра даты в срезе последних :)
10 EvgeniuXP
 
24.01.15
18:26
а вообщем, у тебя есть инструменты, есть голова - посмотри что получается в профайлере и делай выводы.
11 PR
 
24.01.15
18:46
(0) Ну ахренеть, смешал колбасу с дорогой.
Если нужно значение на определенную дату, и на другую не подойдет, то два измерения.
Если именно срез, то период.
Вещи принципиально разные, как методологически, так и технически.
12 Vadimugatu
 
24.01.15
18:51
(11) Как мне кажется при добавлении измерения типа Дата в непериодический регистр по сути сделает его периодическим, т.е. также будет происходить контроль уникальности записей (в данном случае по измерению - дата). С прикладной точки зрения разницы вообще никакой - на один и тот же день ни в первом ни во втором случае двух одинаковых записей по одному сотруднику и одной дате естественно не будет.
13 Vadimugatu
 
24.01.15
18:56
а вопрос был с последующим получением данных. Мне нужно на определенную дату получать значения по сотрудникам, хранящимся в этом РС. Если записи нет на дату, то в выборку попадать ничего не должно, т.е. обычный срез неподойдет. Почитал статью из (3), понял что в данном случае Срез вообще все только усложнит, даже если дату подставлять в описание таблицы (не в поле период). В итоге склоняюсь все таки к периодическому РС, данные буду получать из реальной таблицы.
14 EvgeniuXP
 
24.01.15
19:53
(13) кавардак в голове, у вас магистр

периодический РС - создает виртуальные таблицы - срез первых и срез последних по которым можешь получить - это не реальная таблица. Реальная таблица - это не периодический регистр.
15 EvgeniuXP
 
24.01.15
19:54
в периодическом регистре присутствует реальная таблица и виртуальные таблицы.
16 Vadimugatu
 
24.01.15
20:36
(13)- "В итоге склоняюсь все таки к периодическому РС, данные буду получать из реальной таблицы." (15) - "в периодическом регистре присутствует реальная таблица и виртуальные таблицы." Т.е. имелось ввиду использование периодического РС, а при обращении к РС использовать реальную таблицу.
17 PR
 
24.01.15
20:43
(12) Нет
18 PR
 
24.01.15
20:44
(16) рукалицо
19 Vadimugatu
 
24.01.15
20:48
(18) Всмысле?
20 PR
 
24.01.15
21:02
(19) В смысле можно можно гвоздь микроскопом забить и ниче, забьется.
А можно даже молотком забить, но случайно, по незнанию.
А правильно все-таки понимать, что микроскопом гвозди не забивают, а забивать нужно молотком.

Периодический регистр нужен не для того, чтобы в нем хранить значения на конкретные даты, а чтобы использовать срезы.
Не нужны срезы, не трахай мозг и делай не периодический регистр с измерением дата. Всё.
21 PR
 
24.01.15
21:06
+(20) Сразу ответ на глупый вопрос "А что плохого в том, чтобы использовать период периодического регистра, а не добавить дату в непериодический регистр?".
собственно, ничего, кроме разве того, что людей, смотрящих твою поделку, будет смущать, что гвозди забиваются микроскопом. Кто-то из них, возможно, даже будет пытаться понять, не пытаешься ли ты рассмотреть микрорисунок на шляпке гвоздя в момент забивания гвоздя.
22 PR
 
24.01.15
21:08
+(21) На всякий случай перевожу для тех, кто сам не допетрил.
Людей будет подмывать использовать срез последних, раз уж он есть, а не выбирать записи с датой, жестко равной заданной.
Закон Брукера: Даже маленькая практика стоит большой теории.