25.03.2021 Айдар Фархутдинов 27405
ИНДЕКСИРОВАТЬ ПО в запросе в системе 1С Предп...

Содержание:

1.       Что значит «индексировать»?

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

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


1.    Что значит «индексировать»?


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


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


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

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


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


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


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


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


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


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


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

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


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


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


Специалист компании «Кодерлайн»

Айдар Фархутдинов

Наши проекты

ОАО «Интер РАО – Электрогенерация»
ОАО «Интер РАО – Электрогенерация»

Отрасль:
Электрогенерация

Внедренное типовое решение:
1С:Управление производственным предприятием

Для работы 2500 пользователей в 9 часовых поясах организована территориально-...

ООО «Мир Аксиомы»
ООО «Мир Аксиомы»

Отрасль:
Аудиторские и консалтинговые услуги

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

ООО «ПраксисКом»
ООО «ПраксисКом»

Отрасль:
Аутсорсинг бухгалтерских услуг

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

- Взаиморасчеты с поставщиками
- Учет прихода ТМЦ
- Взаиморасчеты с поку...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

Внедренное типовое решение:

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

ООО «Экслтрейд»
ООО «Экслтрейд»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оптовая торговля Торговые операции ...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Уче...

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Отказ от бумажного документооборота, от громоздких систем на базе офисного...

Группа компаний АО «Киномакс»
Группа компаний АО «Киномакс»

Отрасль:
Культура, шоу-бизнес

Внедренное типовое решение:
БИТ.Финанс

- Разработка Положения о Казначействе группы компаний
- Разработка Положе...

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автома...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- ...

ООО "СЖД"
ООО "СЖД"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

Компания IBS
Компания IBS

Отрасль:
Системный интегратор

Внедренное типовое решение:
1С:Управление производственным предприятием

- Интеграция систем – АСУП и «1С:Управление производственным предприятием»...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение