Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска. Если в таблице значений добавлены индексы, подбор индекса для поиска осуществляется по точному соответствию состава колонок в индексе и в параметрах поиска, порядок следования колонок значения не имеет.
Синтаксис
НайтиСтроки(<ПараметрыОтбора>)Примеры платформы
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
// текст запроса
// ...
";
Запрос.Текст = ТекстЗапроса;
СписокРаботников = Запрос.Выполнить().Выгрузить();
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Строки = СписокРаботников.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
ЭлементыФормы.СписокРаботников.ТекущаяСтрока = Строки[0];
КонецЕсли;Полное описание, параметры и ограничения
ТаблицаЗначений.НайтиСтроки (ValueTable.FindRows)
ТаблицаЗначений (ValueTable)
НайтиСтроки (FindRows)
Доступен, начиная с версии 8.0.
Синтаксис:
НайтиСтроки(<ПараметрыОтбора>)
Параметры:
<ПараметрыОтбора> (обязательный)
Тип: Структура.
Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
Возвращаемое значение:
Тип: Массив.
Массив строк таблицы значений, соответствующих условиям поиска.
Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным.
Описание:
Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска.
Если в таблице значений добавлены индексы, подбор индекса для поиска осуществляется по точному соответствию состава колонок в индексе и в параметрах поиска, порядок следования колонок значения не имеет.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Метод эффективно использовать для выборки неуникальных значений.
Пример:
// СписокРаботников - реквизит формы для представления информации
// о работниках (тип ТаблицаЗначений).
// В форме расположено табличное поле СписокРаботников, в котором
// показываются данные СписокРаботников.
// С помощью запроса выбирается информация о работниках.
Запрос = Новый Запрос;
ТекстЗапроса =
"ВЫБРАТЬ
// текст запроса
// ...
";
Запрос.Текст = ТекстЗапроса;
СписокРаботников = Запрос.Выполнить().Выгрузить();
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Строки = СписокРаботников.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
ЭлементыФормы.СписокРаботников.ТекущаяСтрока = Строки[0];
КонецЕсли;
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Найти все строки нужного товара и посчитать количество
Учимся отличать поиск первой строки от отбора нескольких совпадений.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Таблица создаётся на сервере.
В данных намеренно две строки с одинаковым кодом.
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код");
Товары.Колонки.Добавить("Количество");
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Код = "A-01";
СтрокаТовара.Количество = 2;
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Код = "A-01";
СтрокаТовара.Количество = 3;
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Код = "B-02";
СтрокаТовара.Количество = 4;
Отбор = Новый Структура("Код", "A-01");
СтрокиТовара = Товары.НайтиСтроки(Отбор);
Итого = 0;
Для Каждого СтрокаТовара Из СтрокиТовара Цикл
Итого = Итого + СтрокаТовара.Количество;
КонецЦикла;
Сообщить(СтрокиТовара.Количество());
Сообщить(Итого);
ПерваяСтрока = Товары.Найти("A-01", "Код");
Если ПерваяСтрока <> Неопределено Тогда
Сообщить(Товары.Индекс(ПерваяСтрока));
КонецЕсли;Разбор по шагам
НайтиСтроки принимает структуру условий и возвращает массив строк.
Суммируем значения только найденных строк.
Найти возвращает первое совпадение; Индекс определяет его позицию с нуля.
Как проверить результат
Количество найденных строк 2, сумма 5, индекс первой 0.
Замените код отбора на X: количество и сумма должны быть 0.
Ожидаемый результат
2; 5; 0.
На что обратить внимание
Найденные строки принадлежат исходной таблице: изменение строки меняет её данные.
Проверяйте Неопределено перед использованием результата Найти.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.