Основная таблица регистра сведений в языке запросов
Имя таблицы — имя-регистра-сведений.
Например, выбрать записи с измерением Товар, ресурсом Цена и реквизитом Примечание из регистра Цены можно следующим образом:
пер Запрос = Запрос{ВЫБРАТЬ
Цены.Товар КАК Товар,
Цены.Цена КАК Цена,
Цены.Примечание КАК Примечание,
Цены.КлючЗаписи,
Цены.Период
ИЗ
Цены КАК Цены}
Поля
Эта таблица содержит следующие поля:
-
имя-измерения
Значение измерения записи регистра сведений
-
имя-ресурса
Значение ресурса записи регистра сведений
-
имя-реквизита
Значение реквизита записи регистра сведений
-
КлючЗаписи
имя-регистра-сведений.КлючЗаписи
-
КлючОсновногоФильтра
имя-регистра-сведений.КлючОсновногоФильтра
. Структура содержит:-
период, если регистр сведений периодический и период входит в основной фильтр;
-
поле для каждого измерения, входящего в основной фильтр регистра сведений.
-
-
Период
Момент
|ДатаВремя
|Дата
. Период, к которому относится запись регистра. Это поле есть только у периодических регистров сведений -
СледующийПериод
Имеет значение поля Период следующей записи с такими же значениями измерений или максимальное значение типа поля Период, если следующей записи нет. Доступно только для чтения. Это поле есть только у периодических регистров сведений. Пример:
знч Запрос = Запрос{
ВЫБРАТЬ
Период,
Курс,
Валюта,
СледующийПериод
ИЗ
Курсы
}
знч Результат = Запрос.Выполнить().Единственный()
пер СледующийПериод = Результат.СледующийПериодДля того чтобы проверить наличие следующего периода у записи в таблице периодического регистра сведений, можно сравнить значение поля СледующийПериод с максимальным значением типа поля Период. Если они равны — значит значение следующего периода отсутствует для данной записи.
Получить максимальное значение типа поля Период можно за счет использования встроенного строкового литерала соответствующего типа:
*Тип*{Максимум}
. Например, если поле Период имеет типДатаВремя
, запрос может выглядеть следующим образом:ВЫБРАТЬ
УчетРабочегоВремениСрезПоследних.Период КАК Период,
ВЫБОР
КОГДА УчетРабочегоВремени.СледующийПериод == ДатаВремя{Максимум} ТОГДА ДатаВремя{}
ИНАЧЕ УчетРабочегоВремени.СледующийПериод
КОНЕЦ КАК ПериодОкончания,
УчетРабочегоВремениСрезПоследних.Статус КАК Статус,
УчетРабочегоВремениСрезПоследних.Комментарий КАК Комментарий
ИЗ
УчетРабочегоВремени.СрезПоследних(%ДатаСреза) КАК УчетРабочегоВремениСрезПоследних
Индексы
Таблица непериодического регистра сведений имеет следующий индекс:
-
имя-измерения-1 + ... + имя-измерения-N
Индекс, включающий все поля-измерения в том порядке, в котором они описаны в регистре сведений
Таблица периодического регистра сведений имеет следующие индексы:
-
Период + имя-измерения-1 + ... + имя-измерения-N
Индекс, включающий поле Период и все поля-измерения в том порядке, в котором они описаны в регистре сведений
-
имя-измерения-1 + ... + имя-измерения-N + Период
Индекс, включающий все поля-измерения в том порядке, в котором они описаны в регистре сведений, и поле Период
-
СледующийПериод + имя-измерения-1 + ... + имя-измерения-N
Индекс, включающий поле СледующийПериод и все поля-измерения в том порядке, в котором они описаны в регистре сведений
Поле СледующийПериод содержит значение поля Период следующей (по возрастанию значения поля Период) записи с такими же значениями измерений.
Если следующей записи нет, то это поле содержит максимальное значение того типа, который имеет поле Период:
- Дата{9999-12-31} для типа
Дата
- ДатаВремя{9999-12-31 23:59.999} для типа
ДатаВремя
Эти индексы удобны в общем случае, но могут не подходить для конкретных операций поиска и чтения элементов регистра сведений в вашем приложении. Тогда вы можете описать в проекте, какие дополнительные индексы «Шина» должен создать в таблицах регистра сведений.
Для этого используйте свойство регистра сведений Индексы. В этом свойстве вы можете перечислить наборы полей. По каждому такому набору «Шина» создает некластерный индекс в базе данных. Порядок следования полей в составном индексе определяется порядком следования реквизитов в наборе. На создаваемые индексы накладываются следующие ограничения:
- суммарный размер полей, входящих в индекс, не должен превышать 900 байт;
- суммарное количество полей, входящих в индекс, не должно превышать 16;
- в индексе не должно быть строковых или байтовых полей неограниченной длины.