Индексирование в 1с что это

Обновлено: 07.07.2024

В данной статье будет рассмотрена конструкция «ИНДЕКСИРОВАТЬ ПО» в запросах системы 1С:Предприятие 8.3, варианты её использования, ошибки разработчиков и методы индексирования. Все вышеперечисленное будет проиллюстрировано на реальных примерах.

Вначале для качественного понимания конструкции стоит заложить общие понятия. Итак, что значит «индексировать» в 1С? Индекс – это некоторый объект внутри базы данных, который создаётся ради увеличения эффективности отбора (поиска) данных. В базах данных встречаются довольно большие таблицы с тысячами, а то и миллионами строк, которые находятся в случайном порядке. Чтобы осуществить запрос по какому-то критерию и найти нужную строку нужно прождать немало времени, пока строки одна за другой будут перебираться. Формирование индекса происходит по нумерации столбцов в таблице, а также благодаря указателям. Повышение скорости в работе через индексы производится из-за его структуры, которая имеет оптимизацию для поиска (например, сбалансированное дерево (АВЛ-дерево – сбалансированное дерево, балансировка ведётся по высоте и дерево является двоичным, для любой из его вершин высота двух нижестоящих деревьев отличается на 1 или меньше, показано на рисунке ниже). Таким образом имеем, что индексация – это процесс поиска элемента по индексу, который существенно сокращает время запроса.

Сбалансированное дерево

Рис. 1 Сбалансированное дерево

2. В каких случаях используется индексированные данные?

Разработчики в 1С довольно редко используют конструкцию «ИНДЕКСИРОВАТЬ ПО». Возможно, это связано с тем, что большинство не знает её точного механизма работы. Принцип поиска «ИНДЕКСИРОВАТЬ ПО» стоит начинать использовать именно внутри полей временных таблиц, по этим полям раннее указанная таблица будет искать соединение с другими таблицами из различных баз данных. Как раз такая схема и повысит эффективность и скорость выполнения операции по соединению двух таблиц.

Примечание: стоит учитывать, что построение и написание участка кода, который включает индексированные данные – это тоже затрата времени, поэтому нецелесообразно использовать процедуру «ИНДЕКСАЦИЯ ПО», если строк большое количество (как минимум, должно быть тысяч 5 строк). В случае, когда эта конструкция была использована на маленькое количество строк, то временной эффект будет обратным – время для построения индекса окажется существенно больше, чем последующее быстродействие конструкции.

3. Работа с методом индексирования

Вначале система 1С:Предприятие 8.3 формирует для временной таблицы индекс как и обычно, только именно для временной таблицы.

Приведём пример, как выглядит данная конструкция в коде программы 1С. В нашем случае идёт поиск по базе с физическими лицами, где нас интересует их доход, смотреть скриншот ниже:

Конструкция метода индексирования в коде

Рис. 2 Конструкция метода индексирования в коде

Как видим, требования соблюдены: база с физическими лицами – это временная таблица, при этом база довольно большая, так что время будет сэкономлено.

В данной статье была рассмотрена конструкция «ИНДЕКСИРОВАТЬ ПО» в системе 1С:Предприятие 8.3, принцип индексации, случаи её необходимости и достаточности, а также пример написания данной процедуры внутри кода программы 1С, обоснована её уместность там.

Сегодня речь пойдет о индексах СУБД MS SQL и их внутреннем устройстве. Я постараюсь рассказать о индексах и с точки зрения СУБД, и с точки зрения 1С 8.3.

Индексы в 1С

Создание индексов неявным образом:

Платформа создает индексы сама по заранее известным для каждого объекта метаданных ключам данных (ссылка, код, наименование, измерения и т.п.)

Создание индексов явным образом возможна тремя способами:

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>


Индексы в СУБД Microsoft SQL

Виды индексов в СУБД MS SQL:

Виды ключей в СУБД:

Важные нюансы использования индексов

Запускайте чаще дефрагментацию индексов на уровне СУБД MS SQL: при частом использовании индексов возможно появление эффекта фрагментации, нельзя допускать уровня фрагментации выше 25%.

Отсутствие индексов может привести к полному сканированию таблицы (table scan), что, в свою очередь, приведет к избыточной блокировке.

Поддержите нас, расскажите друзьям!

СПРОСИТЕ в комментариях!

Вы правы. Спасибо большое!

Из литературы вычитал что так, не верно?

Согласен, интересно было бы спросить у официальных источников.

Не совсем так. Форэйнкеи в первую очередь нужны для обеспечения целостности данных на уровне СУБД. Так как в 1С используются составные типы данных, т.е в одном поле могут храниться ссылки на праймарикей разных таблиц справочников документов и т.д., то для ФК каждой из этих таблицы пришлось бы использовать отдельное поле, что чревато постоянной реорганизацией таблиц БД.

Я что-то сделал не так или можно утверждать, что выигрыш от использования индексов возможен только в случае единичного создания индекса и последующего многократного использования для поиска?

Особенности использования варианта индексирования "Индексировать с доп. упорядочиванием"

При описании в метаданных реквизитов различных объектов существует возможность установить свойство Индексировать . Это свойство позволяет разработчику конфигурации указать системе необходимость построения в базе данных отдельного индекса по соответствующему реквизиту.

Кроме варианта "Индексировать" в данном свойстве для большинства объектов можно установить вариант "Индексировать с доп. упорядочиванием". Данный вариант предназначен, прежде всего, для использования в динамических списках.

В варианте "Индексировать" строится индекс непосредственно по реквизиту. Индекс также дополняется ссылкой, чтобы обеспечить определенный порядок записей в индексе при повторяющихся значениях реквизита.

В варианте "Индексировать с доп. упорядочиванием" индекс строится по реквизиту, а также по некоторому полю, которое обычно используется для упорядочивания объектов этого типа. Для справочника индекс в зависимости от основного представления дополняется кодом или наименованием. А для документа, индекс дополняется датой. Этот индекс также дополняется ссылкой.

В варианте "Индексировать" в динамическом списке может быть обеспечен эффективный просмотр больших объемов информации с упорядочиванием по данному реквизиту, так как для этого будет использоваться созданный индекс.

В варианте "Индексировать с доп. упорядочиванием" в динамическом списке может быть обеспечен эффективный просмотр больших объемов информации с отбором по значению данного реквизита и с упорядочиванием, соответствующим основному упорядочиванию для данного объекта. В этом случае наличие индекса включающего реквизит, по которому выполняется отбор, и поля основного упорядочивания позволит системе использовать индекс при просмотре списка.

Разумеется, индексы так же влияют и на другие способы выборки информации (получение данных с помощью методов менеджеров объектов или запросов).

Таким образом при определении варианта свойства Индексировать следует исходить из того, какие варианты выборки информации необходимо оптимизировать в первую очередь. Например, если требуется просмотр списка с отбором по реквизиту, то имеем смысл использовать вариант "Индексировать с доп. упорядочиванием". А если индекс нужен, например, только для поиска с помощью запроса объектов по данному реквизиту без упорядочивания, то лучше использовать вариант "Индексировать", чтобы создаваемые индекс требовал меньше ресурсов системы.

Подробно состав индексов формируемых системой при различных сочетаниях свойств метаданных приводится в с статье "Индексы таблиц базы данных".

Индексы таблиц базы данных

В данном разделе приведен список индексов таблиц базы данных, которые создаются системой 1С:Предприятие 8. Индексы таблиц создаются неявным образом при создании объектов конфигурации, а также при тех или иных настройках объектов конфигурации. Для тех случаев, когда создание индексов зависит от настроек объектов конфигурации приведены условия создания индексов.

В приведенных ниже таблицах имена индексных полей приведены так, как они описаны в разделе документации "Таблицы запросов".
Для измерений, реквизитов и т.д. применяются условные имена Измерение1, Реквизит1 и т.д.
Для общих реквизитов, являющихся разделителями в режиме "независимо", будем использовать имена ОРНР (ОРНР1, ОРНР2, и т.д.).
Для общих реквизитов, являющихся разделителями в режиме "независимо и совместно", будем использовать имена ОРСР.
Если режим разделения не имеет значения, то для общих реквизитов, являющихся разделителями, будем использовать имена ОРР.
Если в конфигурации определены разделители, то в индексы может входит поле, которое содержит значение хэш-функции набора значений разделителей. Такое поле будем обозначать именем ОРРХ.
Те индексные поля, которые не являются обязательными приведены в квадратных скобках, а если в индексе присутствует набор однотипных полей, это описывается многоточием, например: Реквизит + Измерение1 + [Измерение2 +. ].

Данным материалом следует руководствоваться при написании текстов запросов с целью оптимизации времени их исполнения.

Справочник

Основные индексы

[ОРНР1 + . +] Ссылка (Кластерный)

Всегда.
В индекс входят поля независимых разделителей, которые разделяют этот справочник.

[ОРРХ | ОРНР1 +] Код + Ссылка

Свойство "Длина кода" не равно 0.
Если справочник разделяется одним независимым разделителем, тип которого не Строка, то индекс содержит поле этого разделителя.
Если тип разделителя - Строка, или разделитель независимый и совместный, или разделителей больше одного, то индекс содержит поле значения хэш-функции значений разделителей.
Это правило справедливо для всех индексов, в составе которых указано [ОРРХ | ОРНР1 +].

Свойство "Длина наименования" не равно 0.

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ ОРРХ | ОРНР1 +] Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ ОРРХ | ОРНР1 +] Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Справочник включен в критерий отбора через реквизит "Реквизит".

Индекс по идентификатору предопределенного объекта метаданных.

Дополнительные индексы для подчиненного справочника (вне зависимости от иерархичности справочника)

Свойство "Длина кода" равно 0.

[ ОРРХ | ОРНР1 +] Владелец + Код + Ссылка

Свойство "Длина кода" не равно 0.

[ ОРРХ | ОРНР1 +] Владелец + Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ ОРРХ | ОРНР1 +] Владелец + Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ ОРРХ | ОРНР1 +] Владелец + Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ ОРРХ | ОРНР1 +] Владелец + Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Дополнительные индексы для иерархического неподчиненного справочника

Если для справочника установлено свойство "Размещать группы сверху", то в индексах, наряду с полем Родитель, участвует поле ЭтоГруппа. Состав индексов соответствует приведенной ниже таблице.

[ ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Ссылка

Свойство "Длина кода" равно 0 и свойство "Длина наименования" равно 0.

[ ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Код + Ссылка

Свойство "Длина кода" не равно 0.

[ ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Для справочников без размещения групп сверху состав индексов соответствует приведенной выше таблице, но в индексы при этом не включено поле ЭтоГруппа.

Дополнительные индексы для иерархического подчиненного справочника

Если для справочника установлено свойство "Размещать группы сверху", то в индексах, наряду с полем Родитель, участвует поле ЭтоГруппа. Состав индексов соответствует приведенной ниже таблице.

[ ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Ссылка

Свойство "Длина кода" равно 0 и свойство "Длина наименования" равно 0.

[ ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Код + Ссылка

Свойство "Длина кода" не равно 0.

[ ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Для справочников без размещения групп сверху состав индексов соответствует приведенной выше таблице, но в индексы при этом не включено поле ЭтоГруппа.

Индекс (англ. index) — объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путём последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева.

Если простым языком индекс похож на содержание книги, когда вам надо найти что-то в книге у вас два варианта:

1. Если содержания нет - просмотреть всю книгу с первой по последнюю страницу в поисках нужной главы. Повторять это для каждого запроса.

2. Зайти в содержание (индекс), найти быстро номер страницу нужной главы (адрес). Перейти на нужную страницу.

Понятно что второй способ занимает, особенно если книга большая*, намного меньше времени. А если повторять это многократно то время экономится глобально (читай - ресурсы сервера).

* - Важно! Если книга очень маленькая, то использование содержания (индекса) становится бесполезным и даже вредным, проще просмотреть две страницы и сразу выяснить искомую главу.

Как выглядят индексы в базе 1С

В файловом режим базы данных (*.1cd) индексы не увидишь, а вот если база в клиент-серверном варианте, то индексы выглядят в консоли СУБД примерно так:

Как добавить индексы в 1С

В базу 1С индексы могут быть добавлены двумя способами:

1. Платформой автоматически. Независимо от действий программиста, при создании объектов метаданных в дереве (справочники, документы, регистры), одновременно с созданием в БД соотвествущей таблицы (таблиц), платформа создает и индексы для этих таблиц.

2. Явным указанием программиста. Программист может частично управлять созданием индекса, в "свойствах" реквизита для этого выделен специальный элемент "индексировать":

Конкретно в этом случае не используется разделение данных и ОРРХ | ОРНР1 не будет. Значит будет создан индекс "Реквизит + Ссылка", включающий в себя целевой реквизит "вид номенклатуры" и еще колонку "ссылка", составной индекс по двум полям таблицы.

Справка 1С:

Кроме варианта "Индексировать" в данном свойстве для большинства объектов можно установить вариант "Индексировать с доп. упорядочиванием". Данный вариант предназначен, прежде всего, для использования в динамических списках.

В варианте "Индексировать" строится индекс непосредственно по реквизиту. Индекс также дополняется ссылкой, чтобы обеспечить определенный порядок записей в индексе при повторяющихся значениях реквизита.

В варианте "Индексировать с доп. упорядочиванием" индекс строится по реквизиту, а также по некоторому полю, которое обычно используется для упорядочивания объектов этого типа. Для справочника индекс в зависимости от основного представления дополняется кодом или наименованием. А для документа, индекс дополняется датой. Этот индекс также дополняется ссылкой.

Таким образом при определении варианта свойства Индексировать следует исходить из того, какие варианты выборки информации необходимо оптимизировать в первую очередь. Например, если требуется просмотр списка с отбором по реквизиту, то имеем смысл использовать вариант "Индексировать с доп. упорядочиванием". А если индекс нужен, например, только для поиска с помощью запроса объектов по данному реквизиту без упорядочивания, то лучше использовать вариант "Индексировать", чтобы создаваемые индекс требовал меньше ресурсов системы.

Есть еще один способ явно указать платформе что надо создать индекс, необходимо этот реквизит справочника включить в какой-нибудь "критерий отбора".

Есть еще один способ - добавить индекс в вашем запросе, используется для временных таблиц. Во время написания запроса пишем "ИНДЕКСИРОВАТЬ ПО" после которого перечислить поля, по которым нужно построить индекс. Например:

Поля, по которым происходит индексирование, должны находиться в списке выборки.

Можно ли обойти ограничения платформы по индексам

Ограничение платформы - 1С сама добавляет к вашему индексу дополнительные колонки, т.е. делает его составным. А вот если вы решили сделать составной индекс из нескольких реквизитов, то эта возможность наоборот отсутствует.

Частично можно обойти ограничение следующим образом. Вычислить имя таблицы, есть обработки которые показывают настоящие имена таблиц, создать запрос создания индекса, примерно такой:

Выполняем его в консоли СУБД, готово индекс добавлен и будет работать.

Есть проблема, при реструктуризации базы данных (например после изменения справочника) все те индексы, что Вы создадите скриптами самостоятельно будут удалены. Вам потребуется заново запустить эти скрипты после реструктуризации, например, добавив их в Jobs на сервере СУБД на ежедневный запуск.

Внимание! Прежде чем лепить свои индексы попробуй оптимизировать код запроса средствами 1С, возможно одно добавленное условие, или смена порядка, приведет к "попаданию в индекс" и запрос ускорится в разы! Также не забывай что у тебя есть способ указать для реквизита "индексировать".

Как обслуживать индексы в базе 1С

А надо что-то делать? Ведь индексы уже созданы автоматически? Да, надо. Необходимо еженедельно\ежедневно и в некоторых случая частично ежечасно обновлять данные в индексах, чтобы они работали действительно эффективно. Для этого существуют стандартные команды обновления и\или перестроения индекса которые необходимо отправлять СУБД. Как правило для этого создают регламентную работу на сервере СУБД и она выполняется автоматически.

В MSSQL это можно сделать одной мышью в "планах обслуживания" - создаем задачу, указываем базу - готово. Выглядит примерно так.

Штатная реиндексация в 1С

В конфигураторе через меню Администрирование - Тестирование и исправление, можно попасть в форму где можно выбрать работу по реиндексации текущей базы.

Для измерений, реквизитов и т.д. применяются условные имена Измерение1, Реквизит1 и т.д.
Для общих реквизитов, являющихся разделителями в режиме "независимо", будем использовать имена ОРНР (ОРНР1, ОРНР2, и т.д.).
Для общих реквизитов, являющихся разделителями в режиме "независимо и совместно", будем использовать имена ОРСР.
Если режим разделения не имеет значения, то для общих реквизитов, являющихся разделителями, будем использовать имена ОРР.
Если в конфигурации определены разделители, то в индексы может входит поле, которое содержит значение хэш-функции набора значений разделителей. Такое поле будем обозначать именем ОРРХ.
Те индексные поля, которые не являются обязательными приведены в квадратных скобках, а если в индексе присутствует набор однотипных полей, это описывается многоточием, например: Реквизит + Измерение1 + [Измерение2 +. ].

Данным материалом следует руководствоваться при написании текстов запросов с целью оптимизации времени их исполнения.

Справочник

Основные индексы

[ОРНР1 + . +] Ссылка (Кластерный)

Всегда.
В индекс входят поля независимых разделителей, которые разделяют этот справочник.

[ОРРХ | ОРНР1 +] Код + Ссылка

Свойство "Длина кода" не равно 0.
Если справочник разделяется одним независимым разделителем, тип которого не Строка, то индекс содержит поле этого разделителя.
Если тип разделителя - Строка, или разделитель независимый и совместный, или разделителей больше одного, то индекс содержит поле значения хэш-функции значений разделителей.
Это правило справедливо для всех индексов, в составе которых указано [ОРРХ | ОРНР1 +].

[ОРРХ | ОРНР1 +] Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ОРРХ | ОРНР1 +] Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ОРРХ | ОРНР1 +] Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ОРРХ | ОРНР1 +] Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

[ОРРХ | ОРНР1 +] Реквизит

Справочник включен в критерий отбора через реквизит "Реквизит".

[ОРРХ | ОРНР1 +] PredefinedID

Индекс по идентификатору предопределенного объекта метаданных.

Дополнительные индексы для подчиненного справочника (вне зависимости от иерархичности справочника)

[ОРРХ | ОРНР1 +] Владелец + Ссылка

Свойство "Длина кода" равно 0.

[ОРРХ | ОРНР1 +] Владелец + Код + Ссылка

Свойство "Длина кода" не равно 0.

[ОРРХ | ОРНР1 +] Владелец + Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ОРРХ | ОРНР1 +] Владелец + Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ОРРХ | ОРНР1 +] Владелец + Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ОРРХ | ОРНР1 +] Владелец + Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Дополнительные индексы для иерархического неподчиненного справочника

Если для справочника установлено свойство "Размещать группы сверху", то в индексах, наряду с полем Родитель, участвует поле ЭтоГруппа. Состав индексов соответствует приведенной ниже таблице.

[ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Ссылка

Свойство "Длина кода" равно 0 и свойство "Длина наименования" равно 0.

[ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Код + Ссылка

Свойство "Длина кода" не равно 0.

[ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ОРРХ | ОРНР1 +] Родитель + ЭтоГруппа + Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Для справочников без размещения групп сверху состав индексов соответствует приведенной выше таблице, но в индексы при этом не включено поле ЭтоГруппа.

Дополнительные индексы для иерархического подчиненного справочника

Если для справочника установлено свойство "Размещать группы сверху", то в индексах, наряду с полем Родитель, участвует поле ЭтоГруппа. Состав индексов соответствует приведенной ниже таблице.

[ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Ссылка

Свойство "Длина кода" равно 0 и свойство "Длина наименования" равно 0.

[ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Код + Ссылка

Свойство "Длина кода" не равно 0.

[ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Наименование + Ссылка

Свойство "Длина наименования" не равно 0.

[ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Реквизит + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать".

[ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Реквизит + Код + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина кода" не равно 0, а свойство "Основное представление" равно "В виде кода".

[ОРРХ | ОРНР1 +] Владелец + Родитель + ЭтоГруппа + Реквизит + Наименование + Ссылка

Для реквизита "Реквизит" свойство "Индексировать" установлено в значение "Индексировать с доп. упорядочиванием" и при этом свойство "Длина наименования" не равно 0, а свойство "основное представление" равно "В виде наименования".

Для справочников без размещения групп сверху состав индексов соответствует приведенной выше таблице, но в индексы при этом не включено поле ЭтоГруппа.

Читайте также: