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

Таблица значений в 1С 8.3

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Таблица значений — это универсальная коллекция 1С, которая предназначена для хранения данных в табличном виде. Таблица значений хранит ссылки на объекты СтрокаТаблицыЗначений. Помимо строк у таблицы есть колонки. Таблицу значений нельзя создать на клиенте и нельзя передавать между клиентом и сервером.

Создание таблицы значений

Для создания таблицы значений используются конструктор:

В данной таблице не будет ни одной колонки и добавление в нее строк бессмысленно. Для добавления колонок нужно использовать свойство Колонки таблицы значений:

Теперь в таблицу можно добавить несколько строк. Добавление строк выполняется методом Добавить. Данный метод вернет строку таблицу значений. К именам колонок таблицы значений можно обращаться как к свойствам строки:

Типы колонок таблицы значений

В таблицу было добавлено 2 колонки. Тип не был определен и поэтому в эту колонку можно поместить любой тип данных, тип будет определяться в зависимости от типа данных значения в колонке. В примере выше тип колонки Товар — строка, а колонки Цена — число. Если добавить еще одну строку с другим типом, то тип колонки станет составным:

Тип можно указать при добавлении новой колонки, тогда в нее можно будет помещать значения только данного типа, для всех остальных значений будет выполняться преобразование типа:

Работа с колонками таблицы значений

Для проверки наличия необходимой колонки в таблице можно выполнить поиск в коллекции колонок. Если такой колонки нет, то метод Найти вернет Неопределено:

Колонку можно переименовать. При этом, значения в данной колонке сохранятся. Изменить тип колонки нельзя.

Колонки можно удалять, соответственно будут удалены и все значения в данной колонке:

Изменение значений в существующих строках

К строкам таблицы значений можно обращаться через оператор индексации [ ]. Индексация строк начинается с нуля, чтобы изменить значение в первой строке нужно использовать индекс 0:

Перебор строк таблицы значений

Перебрать все строки таблицы значений можно с помощью циклов Для Каждого и Для. При необходимости на каждой итерации цикла можно изменить значения колонок строки.

Удаление строк

Удалить строку из таблицы можно методом Удалить. Параметром можно передать индекс строки или саму строку. Для удаления всех строк таблицы можно воспользоваться методом Очистить.

Иногда нужно удалить несколько строк из таблицы по условию. Например, все строки, где цена меньше 100. На первый взгляд это можно сделать так:

Однако после удаления линейка осталась в таблице, хотя ее цена равна 80. Почему так произошло? При удалении строки, таблица как бы сжимается. То есть на первой итерации цикла мы получили первую строку с диваном, его цена больше 100, поэтому строка осталась. Получаем вторую строку с ручкой за 50. Так как цена меньше 100, строка была удалена. И после удаления все строки сдвинулись, третья строка переместилась на вторую позицию, четвертая на третью и т.д. На следующей итерации мы получаем третью строку, а там уже кресло за 2000. Линейка была пропущена, цикл даже не проверял ее цену.

Поэтому правильно удалять строки с конца таблицы. При удалении строки цикл может несколько раз пройти по одной строке, но точно не пропустит ни одну строку:

Источник

Поиск в коллекциях значений

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. При двух и более операциях поиска в объекте ТаблицаЗначений с большим количеством строк (*) рекомендуется:

* Примечание: следует ориентироваться на 1000 строк и более, а также учитывать не только размер таблицы, в которой выполняется поиск, но и сколько раз он выполняется. Например, даже если таблица относительно небольшая в 100 строк, но поиск по ней выполняется 100 раз, ее тоже имеет смысл индексировать. В то же время, нет смысла индексировать таблицу из-за только одной единственной операции поиска.

2. Для поиска значений предусмотрены два метода объекта ТаблицаЗначений :

При поиске значения в одной колонке таблицы значений оба метода одинаково эффективно используют индекс, если он был задан (см. п.1).
Однако при поиске значения сразу по нескольким (или по всем) колонкам необходимо учитывать следующие ограничения.

2.1. Не следует использовать метод Найти для поиска по нескольким колонкам в таблицах значений с большим количеством строк, даже если проиндексированы все колонки, обладающие хорошей селективностью. Это ограничение вызвано тем, что метод Найти выполняет поиск с применением индекса только по одному полю.
Например:

ТЗ.Индексы.Добавить(«Колонка1»);
ТЗ.Индексы.Добавить(«Колонка2»);
. = ТЗ.Найти(«найдется все», «Колонка1, Колонка2»); // Индекс НЕ используется!

2.2. При использовании метода НайтиСтроки в таблицах значений с большим количеством строк следует обеспечить, чтобы список полей индекса был точно таким же, как он задан в структуре поиска (порядок полей не важен). В противном случае, индекс не будет задействован, и поиск будет выполняться перебором всех строк в таблице значений (что очень ресурсоемко на больших объемах данных).
Например:

ТЗ.Индексы.Добавить(«Колонка1»); // Индекс1
ТЗ.Индексы.Добавить(«Колонка2»); // Индекс2

2.3. Аналогичное ограничение действует и для метода Скопировать таблицы значений при вызове с параметром ПараметрыОтбора ( Структура ).

3. В тех случаях, когда для таблицы значений применяется сортировка по колонкам, содержащим ссылочные значения, необходимо учитывать, что при этом для каждой из этих колонок для всех строк таблицы значений системой будет выполнено обращение к информационной базе за представлением этой ссылки.

ОбъектСравнения = Новый СравнениеЗначений;
ТаблицаДокументов.Сортировать(«Дата,Ссылка», ОбъектСравнения);

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

3.1. При поиске в объекте Массив с большим количеством элементов(*) следует отказаться от массива в пользу:

Это обусловлено тем, что в указанных случаях поиск занимает в большинстве случаев константное время, а в массиве поиск выполняется перебором и поэтому пропорционален количеству элементов.

* Примечание: следует ориентироваться на 1000 элементов и более, а также учитывать не только размер массива, но и сколько раз выполняется поиск. Например, если поиск выполняется многократно, в частности, в цикле, то эта рекомендация также действительна для массивов меньшего размера (до 1000 элементов). Особого внимания требуют универсальные механизмы, которые могут применяться на сколь угодно больших объемах данных.

3.2. При необходимости обеспечить уникальность элементов в большом массиве следует однократно в конце алгоритма вызвать функцию СвернутьМассив или процедуру ДополнитьМассив с параметром ТолькоУникальныеЗначения = Истина (модуль ОбщегоНазначения Библиотеки стандартных подсистем).

Источник

Поиск значений с помощью функций ВПР, ИНДЕКС и ПОИСКПОЗ

Совет: Попробуйте использовать новые функции ПРОСМОТРX и XMATCH, а также улучшенные версии функций, описанные в этой статье. Эти новые функции работают в любом направлении и возвращают точные совпадения по умолчанию, что упрощает и упрощает работу с ними по сравнению с предшественниками.

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

Функции ВВ., а также ИНДЕКС и ВЫБОРПОЗ — одни из самых полезных функций в Excel.

Примечание: Мастер подметок больше не доступен в Excel.

Ниже в качестве примера по выбору вы можете найти пример использования в этой области.

В этом примере B2 является первым аргументом —элементом данных, который требуется для работы функции. В случае СРОТ ВЛ.В.ОВ этот первый аргумент является искомой значением. Этот аргумент может быть ссылкой на ячейку или фиксированным значением, таким как «кузьмина» или 21 000. Вторым аргументом является диапазон ячеек C2–:E7, в котором нужно найти и найти значение. Третий аргумент — это столбец в диапазоне ячеек, содержащий ищите значение.

Четвертый аргумент необязателен. Введите истина или ЛОЖЬ. Если ввести ИСТИНА или оставить аргумент пустым, функция возвращает приблизительное совпадение значения, указанного в качестве первого аргумента. Если ввести ЛОЖЬ, функция будет соответствовать значению, заведомо первому аргументу. Другими словами, если оставить четвертый аргумент пустым или ввести ИСТИНА, это обеспечивает большую гибкость.

В этом примере показано, как работает функция. При вводе значения в ячейку B2 (первый аргумент) в результате поиска в ячейках диапазона C2:E7 (2-й аргумент) выполняется поиск в ней и возвращается ближайшее приблизительное совпадение из третьего столбца в диапазоне — столбца E (третий аргумент).

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Четвертый аргумент пуст, поэтому функция возвращает приблизительное совпадение. Иначе потребуется ввести одно из значений в столбец C или D, чтобы получить какой-либо результат.

Если вы хорошо разучились работать с функцией ВГТ.В.В., то в равной степени использовать ее будет легко. Вы вводите те же аргументы, но выполняется поиск в строках, а не в столбцах.

Использование индекса и MATCH вместо ВРОТ

При использовании функции ВПРАВО существует ряд ограничений, которые действуют только при использовании функции ВПРАВО. Это означает, что столбец, содержащий и look up, всегда должен быть расположен слева от столбца, содержащего возвращаемого значения. Теперь, если ваша таблица не построена таким образом, не используйте В ПРОСМОТР. Используйте вместо этого сочетание функций ИНДЕКС и MATCH.

В данном примере представлен небольшой список, в котором искомое значение (Воронеж) не находится в крайнем левом столбце. Поэтому мы не можем использовать функцию ВПР. Для поиска значения «Воронеж» в диапазоне B1:B11 будет использоваться функция ПОИСКПОЗ. Оно найдено в строке 4. Затем функция ИНДЕКС использует это значение в качестве аргумента поиска и находит численность населения Воронежа в четвертом столбце (столбец D). Использованная формула показана в ячейке A14.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Дополнительные примеры использования индексов и MATCH вместо В ПРОСМОТР см. в статье билла Https://www.mrexcel.com/excel-tips/excel-vlookup-index-match/ Билла Джилена (Bill Jelen), MVP корпорации Майкрософт.

Попробуйте попрактиковаться

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

Пример работы с ВЛОКОНПОМ

Скопируйте следующие данные в пустую таблицу.

Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).

Источник

Полнотекстовый поиск в 1С. №2 Самое основное для разработчика

Продолжаем

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуПродолжаем развивать тему штатного полнотекстового поиска платформы 1С. До этого был представлен инструмент для обслуживания полнотекстового индекса «Мастер полнотекстового поиска» c расширенными возможностями и подробно рассмотрены нюансы работы поиска в динамических списках в публикации «Полнотекстовый поиск в 1С. №1 Грабли в динамических списках».

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

Индексировать все

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Эта настройка позволяет включить / исключить объект из полнотекстового индекса. При создании объектов по умолчанию поиск включен для всех объектных типов, а для регистров выключен. Настройка доступна почти для всех объектов метаданных.

Также доступно свойство «Полнотекстовый поиск» для отдельных полей (реквизитов, ресурсов, измерений) вне зависимости (почти) от их типа (кроме ссылок на внешние источники данных разве что). Да, полнотекстовый индекс можно использовать даже для регистров, но используется это редко. Какой смысл искать данные через индекс ППД в регистре накопления? Наверное, для регистров сведений еще это как-то можно применить, и то в особых случаях. Например в 1С:Документооборот что-то подобное применялось.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуКроме этого, есть еще настройки поиска данных при вводе по строке. В разделе настроек «Поле ввода» объектных типов можно найти настройку «Полнотекстовый поиск» для ввода по строке. Эта настройка имеет описание на ИТС.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуПозволяет выполнять поиск не средствами СУБД, как это делается обычно, а с помощью индекса ППД. Также управлять использованием ППД при вводе можно в событии «ОбработкаПолученияДанныхВыбора» модуля менеджера объекта.

Для событий ввода по строке в технологический журнал даже были добавлены события «INPUTBYSTRING» для анализа его работы. Подробнее есть информация здесь.

Пожалуй, это практически все настройки полнотекстового поиска, которые может использовать разработчик для определения состава данных, которые платформа 1С добавила в индекс ППД, а также некоторых действий при поиске.

Первая проблема и обслуживание

Основные настройки мы рассмотрели, но появилась и первая проблема. Если в конфигурации множество объектов, а на стороне базы в этих объектах большое количество записей, то сразу возникает вопрос: а что, если полнотекстовый поиск мне нужно использовать только для одного справочника?

На небольших и средних базах такой вопрос может вообще не возникнуть, но если база «весит» сотни гигабайт или терабайты, то просто так взять и проиндексировать ее штатными средствами платформы 1С практически невозможно. Или же это займет несколько дней, неделю (делайте ставки). Для любознательных: краткое описание процесса поддержки полнотекстового индекса.

В общих чертах, сам процесс поддержки индекса ППД выглядит следующим образом:

1. Пользователь изменяет данные, для которых включено использование индекса ППД. Платформа регистрирует эти данные для последующего помещения в индекс, добавляя записи вида «числовой идентификатор типа + уникальный идентификатор» (для регистров вместо гуида комбинация значений ключевых полей) в служебный файл.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуФайлы со списком изменений находятся в каталоге полнотекстового индекса 1Cv8FTxt. Для файловой базы находится рядом с базой, а клиент-серверный режим сохраняет каталог полнотекстового индекса в специальном каталоге сервера:

. \srvinfo\ \1Cv8FTxt

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

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуПримерно тот же принцип используется для формирования списка объектов к индексированию в инструменте «Мастер полнотекстового поиска».

2. Далее в базе работают два регламентных задания: обновление инднайти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуекса ППД, которое в течении дня с некоторой периодичностью (обычно 1 минута) обрабатывает список измененных данных и актуализирует частичный индекс ППД. После обновления, конечно же, список изменений очищается. Также обычно присутствует второй задание «Слияние индекса ППД», которое объединяет частичный и основной индекс для эффективной работы поиска.

Именно на этапе обновления или слияния индекса платформа 1С может значительно «подвиснуть», если данных к индексированию в базе очень много. Не спасет даже многопоточное обновление индекса несколькими фоновыми заданиями, которое появилось в платформе. Именно поэтому в таких случаях нужно выбрать конкретные объекты метаданных, для которых будет использоваться полнотекстовый поиск, а для каких нет.

Но сделать последнее не так просто, ведь групповой обработки изменения свойства «Полнотекстовый поиск» нет, а «прокликивать» каждый объект это та еще задача (хотя определенным образом ее можно решить с помощью EDT, но. ). Плюс за всеми изменениями не уследишь. В итоге самым простым способом является отключение полнотекстового поиска для всех объектов через выгрузку конфигурации в файлы и последующее его включение только для нужных объектов и свойств:

На всякий случай это можно сделать на отдельной конфигурации. А позже применить изменения на основную конфигурацию через сравнение / объединение с проверками.

Теперь проблема индексирования всех объектов базы будет решена. Мы оставим в полнотекстовом индексе только те данные, те объекты, которые нам действительно нужны. К сожалению, через расширения изменять настройку использования полнотекстового поиска пока нет возможности, поэтому придется изменять все в самой конфигурации. Но, возможно, это временное ограничение. Идеальным решением была бы возможность настраивать индексирование объектов в режиме 1С:Предприятие, но пока такой возможности также не предоставляется.

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

Программный поиск

Мы рассмотрели основные настройки состава индекса ППД и проблему для больших баз данных, немного погрузились во внутренности механизма обслуживания и привели некоторые полезные ссылки. Это то, что точно следует знать разработчику о полнотекстовом поиске для эффективной работы. Теперь рассмотрим примеры программного использования индекса ППД и ключевые возможности функционала.

Внимание. Все данные из примеров вымышленные. Любое сходство с реальными людьми случайно 🙂 Для примера было сгенерировано порядка 1 млн. записей в справочнике «Физические лица», который есть во многих типовых конфигурациях.

Самый простой пример

Выполнять операции поиска данных через индекс ППД можно через объект «СписокПолнотекстовогоПоиска», который создается следующим образом:

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

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

Опции «ПолучитьОписание» и «ПолучатьПредставление» позволяет к результату поиска добавить контекстные данные и представления объектов, но это может снизить производительность. Следует использовать при необходимости. Если установить обе опции в «Ложь», то иногда можно заметно ускорить поиск.

Когда все параметры заданы, мы можем получить первую порцию результатов. Есть несколько вариантов:

Это может быть получение либо первой порции данных, либо новой порции от предыдущего результат поиска (следующую или предыдущую). Также можно использовать метод «Получить» для получения конкретного элемента результата поиска, который был получен в текущей порции. Фактически эти методы позволяют обходить результаты запроса постранично. Никто, кстати, не мешает обойти результаты текущей порции простым циклом.

Когда порция получена, мы можем извлечь дополнительную информацию о результате поиска:

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

Для получения результата поиска в виде HTML или XML платформа 1С предоставляет метод «ПолучитьОтображение».

Именно этим способом в типовых конфигурациях реализуется отображение результата поиска в обработке «ПолнотекстовыйПоискДанных» из БСП. Вот так выглядит эта обработка.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Это практически все средства для программной работы, которые имеет платформа 1С из коробки. Мы не рассматриваем процедуры обслуживания и настройки индекса ППД. Это Вы можете посмотреть в других публикациях, ссылки на которые были пару раз упомянуты выше. Теперь мы рассмотрим еще примеры работы со строкой поиска, чтобы увидеть всю мощь работы полнотекстового поиска.

Магия строки поиска

Строка поиска позволяет указывать как именно этот самый поиск должен выполняться. При этом есть возможность делать как четкий поиск, так и более гибкий с разными допущениями и условиями. Все примеры далее будем делать с использованием стандартной обработки поиска из БСП, которую Вы также можете использовать для изучения работы механизма.

Логические операторы

Самоотверженный Валун Кубрикович

то фактически используются операторы И между словами:

Самоотверженный И Валун И Кубрикович

Это стандартное поведение. В результат попадут все объекты, в тексте которых присутствуют все три слова. При этом если поменять местами искомые слова, то результат будет тот же.

Самоотверженный И Кубрикович И Валун

Таким же образом мы можем использовать оператор ИЛИ:

Самоотверженный ИЛИ Валун ИЛИ Кубрикович

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

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

Самоотверженный Лемович НЕ Меридиан

найдет все объекты, в которых содержатся слова «Самоотверженный» и «Лемович», но при этом нет слова «Меридиан».

Есть один нюанс: эти операторы не используются как унарные в начале строки поиска. То есть нельзя сделать вот такой запрос:

НЕ Меридиан

Таким образом, с помощью операторов можно выполнять поиск вхождения слов по текстовому содержимому объектов. Вот так выглядят все примеры выше.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Теперь мы можем перейти к следующему оператору.

Рядом

Гордый РЯДОМ/2 Фарадеевич

при этом этот запрос будет эквивалентен:

Фарадеевич РЯДОМ/2 Гордый 2005

Мы найдем все объекты, где после слова «Гордый» через одно слово идет «Фарадеевич». При этом поиск выполняется как в левую, так и в правую сторону. Можно комбинировать поиск с другими операторами. Например, так мы найдем тех же физ. лиц, но с годом рождения 2005.

Гордый РЯДОМ/2 Фарадеевич 2005

Также этот оператор позволяет указывать направление поиска слов. Для это перед параметром n нужно указать знак + (для поиска после первого слова) или (для поиска до первого слова). Изменим предыдущее выражение:

Гордый РЯДОМ/+2 Фарадеевич

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

Гордый РЯДОМ/-2 Фарадеевич

Оператор может быть полезен для более точного поиска данных.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Теперь мы можем перейти к другим операторам.

Точный поиск

В случаях, когда нужно найти текст по конкретной фразе, то можно указать это через двойные кавычки. Например, поиск по:

найдет все значения, в которых есть эта фраза целиком. Если же сделать поиск по:

то результат поиска будет пустым, т.к. нигде такой фразы не встречается.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

Таким образом, если нужен поиск конкретной фразы, то этот оператор в помощь.

Группировка слов

Отдельно стоит упомянуть возможность группировки слов с неограниченным уровнем вложенности с помощью скобок: ( и ). Например, выражение:

(Самоотверженный И Валун) ИЛИ (Яростный И Эрудит)

найдет все объекты, в текстовом содержимом которых есть вместе слова «Самоотверженный» и «Валун» или «Яростный» и «Эрудит». Очень полезно для сложных условий поиска.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексуИдем дальше.

Групповой символ

Групповой символ * используется для поиска по началу строки. Например, есть физ. лицо с ИНН 739780874266. Его можно найти явно, указав ИНН, или с помощью выражений:

7397808742*

7397808*

739780*

Чем меньше значащих символов в начале строки, тем больше подобный поиск может найти данных. А вот такое выражение, как Вы уже поняли, вообще ничего не найдет:

*39780874266

Поиск по началу строки часто может быть очень эффективным инструментом поиска данных.

найти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

При использовании этого оператора может быть найдено огромное количество слов, поэтому в платформе 1С реализовано ограничение: максимальное количество слов для группового поиска равно 300.

Еще кое-чтонайти строку по индексу. Смотреть фото найти строку по индексу. Смотреть картинку найти строку по индексу. Картинка про найти строку по индексу. Фото найти строку по индексу

— нечеткий поиск слов с указанным количеством отличий (по умолчанию равен 1).

Здесь приведу пример из синтаксис-помощника. Например, запрос «

Система» найдет «систама», «сивтема», а запрос «Система

2″ найдет «ситтама», «сеттема».

При использовании этого оператора может быть найдено огромное количество слов, поэтому в платформе 1С реализовано ограничение: максимальное количество слов для группового поиска равно 300.

Еще добавлю, что в корне конфигурации можно настраивать дополнительные словари полнотекстового поиска. Но все это уже другая история.

Кстати, в платформе 8.3.16 добавился поиск с помощью индекса ППД по хештегам (строки вида #Слово, от символа # до первого пробела). Еще не приходилось использовать на практике.

Все это достаточно специфические возможности и на моей практике их приходилось использовать очень редко. Если вообще приходилось.

Подводные камни

Вот так, от вопросов обслуживания и настройки полнотекстового индекса, проблем его использования в самом распространенном кейсе и до вопросов разработки и особенностей работы мы прошли небольшой путь. Так были затронуты почти все вопросы, связанные со штатным механизмом полнотекстового поиска платформы 1С. Но это еще не все!

При работе с ним можно встретиться с некоторыми подводными камнями, о которых стоит знать заранее:

В общем, полнотекстовый поиск полезен, но нужно быть готовым к решению проблем.

Вместо заключения

Это вторая публикация в серии статей про полнотекстовый поиск, в которой был сделан упор на вопросы разработки и использования индекса ППД и связанные нюансы его работы. Немного поговорили и о сопровождении. Подведем итог и соберем основные плюсы и минусы штатного механизма полнотекстового поиска.

А что Вы думаете о штатном полнотекстовом поиске?

В следующих статьях мы подробней поговорим о производительности полнотекстового индекса и практические примеры его использования в рамках оптимизации производительности. Рассмотрим несколько кейсов его применения в рамках highload (да, такое возможно).

Другие ссылки

Авторские разработки (все разработки на одной странице)

Диагностика контекста выполнения (внешняя компонента) — небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *