Имя: Пароль:
1C
1С v8
Организация "среза последних" у таблицы.
0 Lama12
 
06.01.14
10:26
Есть необходимость хранить в хронологической последовательности определенный набор данных организованный в виде таблицы. Выборки потребуются в виде "срез последних".
Вот думаю, стоит ли делать регистр сведений, или достаточно будет обойтись документом с табличной частью.
С одной стороны, достаточно документа, но в запросе придется эмитировать срез последних.
При использовании регистра все равно придется тащить данные из документа, т.к. в регистре не будет ни измерений ни ресурсов. Просто в качестве регистратора документ. Один плюс - в запросе не надо эмитировать срез последних. Просто дополнительная связь среза с табличной частью документа.

Пока склоняюсь к варианту без регистра. Может есть у кого соображения в противоположную строну?
1 palpetrovich
 
06.01.14
10:31
имхо, если в документах всегда будет ожин и тот-же набор товаров - РС не нужен, иначе - нужен, причем таки с измерениями и ресурсами
2 Сергей Викторович
 
06.01.14
10:35
что за набор данных ?
3 Рэйв
 
06.01.14
10:42
(0)Выборку скорее всего все равно запросом делать будешь. Легко можно обойтись стандартными условиями

Типа:

Выбрать
   ТабЧасть.Чтото,
   Максимум(ТабЧасть.ДатаСреза)
Из Документы.Какойто.ТабЧасть КАК ТабЧасть
ГДЕ ДатаСреза<=&МоментСрезаПоследних
4 Lama12
 
06.01.14
10:55
(3) Ну в общем то так и собираюсь делать.
(2) У элемента справочника табличная часть, но нужно хранить ее историю (это в двух словах). обычную табличную часть не использую, т.к. нужна фиксация события вноса данных, и хронология. Экономического смысла не ищу - какая-то аналитика.
5 zulu_mix
 
06.01.14
11:15
(3)
1. группировку забыл по что_то
2. к полученным данным лучше сджойнить эту же таблицу по дате и что_то (при условии что там несколько полей, по которым не сгруппируешь)

Выбрать
   ТабЧасть.КлючевоеПоле КАК Ключ,
   Максимум(ТабЧасть.Дата) КАК ДатаСреза
Поместить Данные_ТЧ
Из Документы.Какойто.ТабЧасть КАК ТабЧасть
ГДЕ ДатаСреза<=&МоментСрезаПоследних
Сгруппировать по ТабЧасть.КлючевоеПоле
;
Выбрать
   ТабЧасть.Поле1,
   ТабЧасть.Поле2,
   ТабЧасть.Поле3
Из Данные_ТЧ
Левое Соединение Документы.Какойто.ТабЧасть КАК ТабЧасть
По Данные_ТЧ.ДатаСреза = ТабЧасть.Дата
И Данные_ТЧ.КлючевоеПоле = ТабЧасть.КлючевоеПоле
ГДЕ НЕ Поле1 ЕСТЬ NULL
6 Lama12
 
06.01.14
11:23
(5) Спасибо конечно :)
С запросом разберусь. У меня были сомнения в принципе, стоит делать регистр или да ну его на фиг.
7 Пеппи
 
06.01.14
11:28
Регистр более универсальнее!)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший