Выражение и фильтр индекса
При работе с индексами во время исполнения 1С:Предприятия XBase-объекты производят вычисление выражения индекса и фильтра. Выражение индекса и фильтра — это строковые выражения, составленные на специальном языке объектов XBase.
Выражение индекса используется для вычисления значения ключа для каждой записи базы данных. Результатом вычисления выражение должно быть значение одного из следующих типов: числовое, строковое, дата или булево. Выражение фильтра должно возвращать результат типа булево. Если значение выражения фильтра для конкретной записи базы данных равно истине, информация об этой записи будет включена в индексный файл, в противном случае индексный файл не будет содержать информацию об этой записи и позиционирование на эту запись XBase-объекта с данным текущим индексом производиться не будет.
Атрибуты (кроме "Ключ"), константы и функции могут быть использованы как части выражений. Части выражения могут объединяться с помощью других функций или операторов. Простейшим выражением может быть имя атрибута: "FULL_NAME". В таком случае тип выражения будет соответствовать типу атрибута.
Константы могут иметь числовой, строковый и булевый тип. Строковые константы заключаются в одиночные кавычки ('Строковая константа'). При необходимости включить в состав строковой константы символа двойной кавычки, его следует предварять обратной косой чертой, например, 'Фирма \"Вега\" '. Булевы константы записываются как .TRUE. или .Т. для обозначения истины и .FALSE. или .F. в противном случае.
Операторы используются для объединения частей выражения. Части выражения должны иметь тип, соответствующий оператору, например, оператор "/" (деление) работает с двумя числовыми значениями.
Порядок выполнения операторов в выражении соответствует общепринятому — с учетом скобок и приоритетов операторов. Например выражение "1+2*3" возвратит 7, а "(1+2)*3" возвратит 9.
Числовые операторы:
Имя оператора | Обозначение
| Приоритет | |||
Сложение | + | 5 | |||
Вычитание | - | 5 | |||
Умножение | * | 6 | |||
Деление | / | 6 | |||
В степень | ** или ^ | 7 |
Строковые операторы:
Имя оператора |
Обозначение |
Приоритет |
Объединение 1 |
+ |
5 |
Объединение 2 |
- |
5 |
Операторы отношений:
Имя оператора |
Обозначение |
Приоритет |
Равно |
= |
4 |
Не равно |
<> или # |
4 |
Меньше |
< |
4 |
Больше |
> |
4 |
Меньше или равно |
<= |
4 |
Больше или равно |
>= |
4 |
Содержит |
$ |
4 |
" 'CD' $ 'ABCD' " вернет ".Т."
" 8 < 7 " вернет ".F."
Логические операторы:
Имя оператора |
Обозначение |
Приоритет |
Отрицание |
.NOT. |
3 |
И |
.AND. |
2 |
ИЛИ |
.OR. |
1 |