Перейти к основному содержимому

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

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

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

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

Поля

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

  • имя-измерения

    Значение измерения записи регистра сведений

  • имя-ресурса

    Значение ресурса записи регистра сведений

  • имя-реквизита

    Значение реквизита записи регистра сведений

  • КлючЗаписи

    имя-регистра-сведений.КлючЗаписи

  • КлючОсновногоФильтра

    имя-регистра-сведений.КлючОсновногоФильтра. Структура содержит:

    • период, если регистр сведений периодический и период входит в основной фильтр;

    • поле для каждого измерения, входящего в основной фильтр регистра сведений.

  • Период

    Момент | ДатаВремя | Дата. Период, к которому относится запись регистра. Это поле есть только у периодических регистров сведений

  • СледующийПериод

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

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

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

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

    Получить максимальное значение типа поля Период можно за счет использования встроенного строкового литерала соответствующего типа: *Тип*{Максимум}. Например, если поле Период имеет тип ДатаВремя, запрос может выглядеть следующим образом:

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

Индексы

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

  • имя-измерения-1 + ... + имя-измерения-N

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

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

  • Период + имя-измерения-1 + ... + имя-измерения-N

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

  • имя-измерения-1 + ... + имя-измерения-N + Период

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

  • СледующийПериод + имя-измерения-1 + ... + имя-измерения-N

    Индекс, включающий поле СледующийПериод и все поля-измерения в том порядке, в котором они описаны в регистре сведений

примечание

Поле СледующийПериод содержит значение поля Период следующей (по возрастанию значения поля Период) записи с такими же значениями измерений.

Если следующей записи нет, то это поле содержит максимальное значение того типа, который имеет поле Период:

  • Дата{9999-12-31} для типа Дата
  • ДатаВремя{9999-12-31 23:59.999} для типа ДатаВремя

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

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

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