Для программного поиска строк в таблице значений во встроенном языке 1С:Предприятие 8.3 имеется два различных метода:
Метод Найти()
С помощью метода Найти() таблицы значений можно найти первое вхождение строки по значению ячейки. Значение можно искать по всей таблице значений или по определенным колонкам, например:
ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Код"); ТаблицаЗначений.Колонки.Добавить("Наименование"); //поиск во всех колонках таблицы значений: ПерваяСтрока = ТаблицаЗначений.Найти("Товар1"); Если ПерваяСтрока = Неопределено Тогда Сообщить("Совпадений нет!"); КонецЕсли; //поиск по определенным колонкам: ПерваяСтрока = ТаблицаЗначений.Найти("Товар", "Наименование"); Если ПерваяСтрока = Неопределено Тогда Сообщить("Совпадений нет!"); КонецЕсли;
Метод НайтиСтроки()
Метод НайтиСтроки() таблицы значений позволяет найти все строки, удовлетворяющие условиям отбора. При этом условие м.б. составным:
ПараметрыПоиска = Новый Структура("Наименование", "Услуга"); мНайденныеСтроки = ТаблицаЗначений.НайтиСтроки(ПараметрыПоиска); Если мНайденныеСтроки.Количество() = 0 Тогда Сообщить("Совпадений нет!"); Иначе Для каждого НайдСтрока Из мНайденныеСтроки Цикл ТаблицаЗначений.Удалить(НайдСтрока); КонецЦикла; КонецЕсли;
Читайте также:
Поделиться страницей в соц.сетях
А можно как-то реализовать поиск вхождений? Типа, надо найти слово «1С» во всех колонках и остановиться на форме в той, где найдено? Идея: перебор строк, по колонкам проверяем содержимое. Но как встать в определенной колонке при нахождении?
Эффективнее будет использование метода Найти() без указания колонок, а конкретную колонку уже искать перебором значений колонок. Текущую колонку на форме можно установить методом табличного поля
ТекущаяКолонка()
для обычных форм или
для управляемых