Основная таблица регистра сведений в языке запросов

Имя таблицы — имя-регистра-сведений.

Например, выбрать записи с измерением Товар, ресурсом Цена и реквизитом Примечание из регистра Цены можно следующим образом:

пер Запрос = Запрос{ВЫБРАТЬ
                        Цены.Товар КАК Товар,
                        Цены.Цена КАК Цена,
                        Цены.Примечание КАК Примечание,
                        Цены.КлючЗаписи,
                        Цены.Период
                    ИЗ
                        Цены КАК Цены}

Поля

Эта таблица содержит следующие поля:

имя-измерения
Значение измерения записи регистра сведений
имя-ресурса
Значение ресурса записи регистра сведений
имя-реквизита
Значение реквизита записи регистра сведений
КлючЗаписи
имя-регистра-сведений.КлючЗаписи
КлючОсновногоОтбора
имя-регистра-сведений.КлючОсновногоОтбора. Структура содержит:
  • Период, если регистр сведений периодический и период входит в основной отбор

  • Поле для каждого измерения, входящего в основной отбор регистра сведений

Период
Момент | ДатаВремя | Дата. Период, к которому относится запись регистра. Это поле есть только у периодических регистров сведений
СледующийПериод
Имеет значение поля Период следующей записи с такими же значениями измерений или максимальное значение типа поля Период, если следующей записи нет. Доступно только для чтения. Это поле есть только у периодических регистров сведений. Пример:
знч Запрос = Запрос{

        ВЫБРАТЬ
            Период,
            Курс,
            Валюта,
            СледующийПериод
        ИЗ
            Курсы
        }

знч Результат = Запрос.Выполнить().Единственный()
пер СледующийПериод = Результат.СледующийПериод

Для того чтобы проверить наличие следующего периода у записи в таблице периодического регистра сведений, можно сравнить значение поля СледующийПериод с максимальным значением типа поля Период. Если они равны — значит значение следующего периода отсутствует для данной записи.

Получить максимальное значение типа поля Период можно за счет использования встроенного строкового литерала соответствующего типа: Тип{Максимум}. Например, если поле Период имеет тип ДатаВремя, запрос может выглядеть следующим образом:
ВЫБРАТЬ
    УчетРабочегоВремениСрезПоследних.Период КАК Период,
    ВЫБОР
        КОГДА УчетРабочегоВремени.СледующийПериод == ДатаВремя{Максимум} ТОГДА ДатаВремя{}
        ИНАЧЕ УчетРабочегоВремени.СледующийПериод
    КОНЕЦ КАК ПериодОкончания,
    УчетРабочегоВремениСрезПоследних.Статус КАК Статус,
    УчетРабочегоВремениСрезПоследних.Комментарий КАК Комментарий
ИЗ
    УчетРабочегоВремени.СрезПоследних(%ДатаСреза) КАК УчетРабочегоВремениСрезПоследних

Индексы

Таблица непериодического регистра сведений имеет следующий индекс:

имя-измерения-1 + ... + имя-измерения-N
Индекс, включающий все поля-измерения в том порядке, в котором они описаны в регистре сведений

Таблица периодического регистра сведений имеет следующие индексы:

Период + имя-измерения-1 + ... + имя-измерения-N
Индекс, включающий поле Период и все поля-измерения в том порядке, в котором они описаны в регистре сведений
имя-измерения-1 + ... + имя-измерения-N + Период
Индекс, включающий все поля-измерения в том порядке, в котором они описаны в регистре сведений, и поле Период
СледующийПериод + имя-измерения-1 + ... + имя-измерения-N
Индекс, включающий поле СледующийПериод и все поля-измерения в том порядке, в котором они описаны в регистре сведений
Примечание: Поле СледующийПериод содержит значение поля Период следующей (по возрастанию значения поля Период) записи с такими же значениями измерений.
Если следующей записи нет, то это поле содержит максимальное значение того типа, который имеет поле Период:
  • Дата{9999-12-31} для типа Дата
  • ДатаВремя{9999-12-31 23:59.999} для типа ДатаВремя

Эти индексы удобны в общем случае, но могут не подходить для конкретных операций поиска и чтения элементов регистра сведений в вашем приложении. Тогда вы можете описать в проекте, какие дополнительные индексы «1С:Шина» должен создать в таблицах регистра сведений.

Для этого используйте свойство регистра сведений Индексы. В этом свойстве вы можете перечислить наборы полей. По каждому такому набору «1С:Шина» создает некластерный индекс в базе данных. Порядок следования полей в составном индексе определяется порядком следования реквизитов в наборе. На создаваемые индексы накладываются следующие ограничения:

  • Суммарный размер полей, входящих в индекс, не должен превышать 900 байт;
  • Суммарное количество полей, входящих в индекс, не должно превышать 16;
  • В индексе не должно быть строковых или байтовых полей неограниченной длины.