Найти - по индексу

Ищет в таблице запись с начала по указанному индексу.

Синтаксис

Найти(Объект, Индекс)

Параметры

Объект (объект) – объект, содержащий запись. В случае успешного поиска сюда будет извлечена найденная запись.

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

Если же объект содержит запись, уже извлечённую из базы данных, то берётся по указанному индексу следующая запись.

Индекс (текст) – имя индекса. Именно индексом определяется, по каким полям и в какой последовательности будет искаться запись. Список индексов каждой таблицы можно посмотреть, открыв соответствующий словарь данных (файл с расширением ".dic") и выбрав нужную таблицу. Там же можно посмотреть и список полей, входящих в каждый из индексов.

При проведении поиска учтите, что, во-первых, некоторые поля в индексе могут быть отсортированы в обратном порядке, а, во-вторых, индекс может строиться не по целому полю, а только по его части (так индексируется большинство текстовых полей).

Возвращает

1 – найдена запись с указанными значениями ключевых полей. Найденная запись устанавливается в объекте, указанном при вызове функции.

0 – нужная запись не найдена. В этом случае запись в объекте инициализируется нулевыми значениями (становится "пустой").

-1 - нужная запись не найдена. В этом случае в объекте устанавливается ближайшая запись с индексом, наиболее подходящим по заданному в поиске параметру.

Примеры

Чтобы найти организацию по ИНН, нужно написать следующее:

оОрг = Таблица("Организации");
оОрг.ИНН = "7605015333"; # ИНН организации
Если(Найти(оОрг, "ИНН"))
   Сообщить(оОрг.Название);
иначе
   Сообщить("Нет такой организации!");

Если точное название организации неизвестно, можно выбрать все организации, название которых начинается со слова "ИМНС":

оОрг = Таблица("Организации");
оОрг.Название = "ИМНС";
Пока(Найти(оОрг, "Название"))
{
   Если(ПодСтрока(оОрг.Название,1,4) != "ИМНС")
      Прервать; # если не "ИМНС*", выходим из цикла
         Сообщить(оОрг.ИНН, оОрг.Название);
}

См. также:

•  Следующий по индексу

•  Предыдущий по индексу

•  УстановитьМаксКлюч

•  УстановитьМинКлюч

•  НайтиСКонца – по индексу

•  Найти – по значению индекса