Найти по фильтру 1с

Обновлено: 06.07.2024

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

Полнотекстовый поиск предоставляет следующие возможности:

  • Есть поддержка транслитерации (написание русских слов символами латиницы в соответствии с ГОСТ 7.79-2000). Пример: "русская фраза" = "russkaya fraza".
  • Есть поддержка замещения (написание части символов в русских словах одноклавишными латинскими символами). Пример: "руссrfz фраpf" (окончания каждого слова набраны латиницей, допустим, в результате ошибки оператора).
  • Есть возможность нечеткого поиска (буквы в найденных словах могут отличаться) с указанием порога нечеткости. Пример: указав в строке поиска слово "привет" и нечеткость 17 %, найдем все аналогичные слова с ошибками и без: "привет", "превет", "привед".
  • Есть возможность указать область выполнения поиска по выбранным объектам метаданных.
  • Полнотекстовое индексирование названий стандартных полей ("Код", "Наименование" и т. д.) производится на всех языках конфигурации.
  • Поиск выполняется с учетом синонимов русского, английского и украинского языков.
  • Морфологический словарь русского языка содержит ряд специфических слов, относящихся к областям деятельности, автоматизируемым с помощью системы программ "1С:Предприятие".
  • Стандартно в состав поставляемых словарей включены словарные базы и словари тезауруса и синонимов русского, украинского и английского языков, которые предоставлены компанией "Информатик".
  • Поиск можно осуществлять с использованием подстановочных символов ("*"), а также с указанием поисковых операторов ("И", "ИЛИ", "НЕ", "РЯДОМ") и спецсимволов.

Полнотекстовый поиск можно осуществлять в любой конфигурации на платформе 1С:Предприятие 8

Для того чтобы открыть окно управления полнотекстовым поиском необходимо выполнить следующее:

Обычное приложение - пункт меню Операции - Управление полнотекстовым поиском.


Управляемое приложение - пункт меню Главное меню - Все функции - Стандартные - Управление полнотекстовым поиском.


  • Обновить индекс – Создание индекса/Обновление индекса;
  • Очистить индекс – обнуление индекса(рекомендуется после обновления всех данных);
  • пункт Разрешить слияние индексов – отвечает за слияние основного и дополнительного индекса.


Полнотекстовый поиск осуществляется при помощи полнотекстового индекса. При отсутствии индекса полнотекстовый поиск как таковой не возможен. Для того чтобы поиск имел результат, все необходимые данные должны быть включены в полнотекстовый индекс. Если пользователем введены в базу новые данные, их следует включить в рассматриваемый индекс, иначе они не будут участвовать в поиске. Чтобы этого избежать, необходимо обновлять полнотекстовый индекс. При обновлении система анализирует только определенные типы данных: Строка, Данные ссылочного типа (ссылки на документы, справочники),Число, Дата, ХранилищеЗначения. Если пользователь не имеет прав доступа к определенной информации, то он не сможет увидеть ее в результатах поиска. Следует также помнить и о том, что в свойствах объектов, по которым будет происходить поиск должно быть установлено значение Полнотекстовый Поиск – Использовать, которое задано по умолчанию.

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

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

Специальные операторы, допустимые при задании поискового выражения

Механизм полнотекстового поиска допускает написание части символов русского слова одноклавишными латинскими символами. Результат поиска при этом не измениться.


Два оператора РЯДОМ

  • упрощенный. На расстоянии 8 слов друг от друга
  • РЯДОМ/[+/-]n – поиск данных в одном реквизите на расстоянии n-1 слов между ними.

Знак указывает в каком направлении от первого слова будет поиск второго. (+ - после, - до)

Групповой символ «*» может использоваться только в качестве замены конца слова

Программными средствами и средствами 1с: программирование.

Оператор синонимов «!». Позволяет найти слово и его синонимы

Как программно обновить индекс полнотекстового поиска?

Пример полнотекстового поиска данных

Определение переменной СписокПоиска

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

Теперь для события нажатия на кнопку Найти напишем код, который позволит нам выполнять поиск в соответствии с тем выражением, которое задано в поле ПоисковоеВыражение

Создадим в модуле формы процедуру с таким именем и напишем в ней код,

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

Теперь необходимо создать обработчики событий нажатия на кнопки ПредыдущаяПорция() и СледующаяПорция().

Заключительным «штрихом» будет создание обработчика события onclick поля HTML-документа, расположенного в форме. Дело в том, что результат полнотекстового поиска, представленный в виде HTML-текста, содержит гиперссылки на номера элементов списка поиска. И нам хотелось бы, чтобы при переходе пользователя на эту ссылку система открывала бы форму того объекта, который содержится в этом элементе списка. Для этого мы будем перехватывать событие onclick HTML-документа, содержащегося в поле HTML-документа, получать номер элемента списка из гиперссылки и открывать форму соответствующего объекта. Текст обработчика события onclick поля HTML-документа представлен в коде

Использован релиз 3.0.104

В программе "1С:Бухгалтерия 8" (ред. 3.0) реализован механизм полнотекстового поиска во всех полях любого справочника, документа, списка и др.:

  1. Сочетание клавиш "Ctrl" и "F" автоматически устанавливает курсор в поле "Поиск". Начните набирать текст и поиск будет запущен автоматически.
  2. По кнопке со значком лупы (или сочетанием клавиш "Alt" и "F") можно выбрать "Расширенный поиск" и установить параметры поиска (рис. 1).


Если работа поиска по каким-то причинам нарушена, либо осуществляется медленно, рекомендуется очистить индексы и затем обновить их (рис. 2). Эти действия доступны только пользователям с правами "Администратор".

Внимание! При работе через облачные технологии операции по очистке и обновлению индексов выполняются автоматически.


Для автоматического обновления индексов, быстрой и корректной работы поиска должно быть настроено выполнение двух регламентных заданий – "Обновление индекса ППД" и "Слияние индекса ППД". Обычно эти регламентные задания настроены по умолчанию и выполняются в программе ежедневно по расписанию в автоматическом режиме (например, каждый день с 8.00 каждый час).

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

  1. Раздел: Администрирование – Обслуживание.
  2. Раскройте подраздел "Регламентные операции" и перейдите по ссылке "Регламентные и фоновые задания".
  3. В сформированном списке установите флажки у заданий "Обновление индекса ППД" и "Слияние индекса ППД".
  4. Поочередно двойным щелчком мыши откройте каждое задание, перейдите по ссылке "Расписание".
  5. В форме "Расписание" на закладке "Общее" указываются дата начала и завершения задания и режим повтора.
  6. На закладке "Дневное" укажите время начала задания и время повтора.
  7. На закладке "Недельное" и "Месячное" проверьте установку флажков по дням недели и по месяцам.
  8. Кнопка "ОК", затем кнопка "Записать и закрыть".


Смотрите также

8.3.7, УТ 11.2.
Юзер открыл список документов (любых, не важно), щелкнул в колонку, нажал Ctrl+F и выполнил поиск. Как отловить это событие?

похоже, нет события, которое сработает при поиске в дин.списке.

Разработчики платформы, если вы читаете этот бред, знайте, НУЖНО БОЛЬШЕ СОБЫТИЙ в динамическом списке

(2) Для нахрена?
Разработчики сидят на другом форуме. Осиль сертификат и сможешь с ними пообщаться.

Чтобы итоги считать по динамическому списку. Также чтобы знать перечень вариантов какого-то реквизита. К примеру, какие в списке Заказов есть Менеджеры. Нужно для организации гибкого фильтра. Всё это уже работает, но:

Подскажет кто-нибудь событие, возникающее по поиску по Ctrl+F?

(5) получить доступ к фильтрам пользователя можно через компоновщик.ПользовательскиеНастройки (или как-то так, по памяти). Посмотри что там есть, около 90% это всё что нужно для разных хотелок.
В крайнем случае переопредели CTRL+F и сделай свой обработчик фильтрации.
(5)итоги. по динамическому списку. отстреливать будут когда количество объектов в списке вырастет, или итоги или их автора, а то и вместе
Да и CTRL+F тоже отстрелить неплохо бы, отборы быстрее

(7) Не будут отстреливать, там всегда автоотборы по периоду при открытии + через запрос всё моментально работает

(6) Сделал свой поиск по Ctrl+F, спасибо за подсказку

(8) Итоги можно запросто получать через компоновку данных

О, знакомая проблема, зело знакомая.
Хорошо когда 8.3.
А в 8.2 платформенного механизма получения данных динсписка через компоновку нет.
А у меня филиал госкорпорации, млин, там версия z обязательна. 8.2z, 8.3z и так далее. 8.3z вышла совсем недавно, в следующем году перейдем.
Пока ее не нет, я давно написал универсальные процедуры получения строк ДС с учетом всех отборов и параметров.
Итоги штука нужная. В онлайне зло, согласен, вернее имеет ограниченное применение, иначе будет тормозить.
На это я ответил дописыванием процедур, чтобы получать только нужные поля и только итоги, а не тащить все подряд.

Но все равно онлайн мы выключили и сделали итоги по запросу, по кнопке.


3. ПроцессорВыводаКомпоновкиДанныхИмениНуралиева

(12) ДА! ЭТО ТО ЧТО НАДО! Много упростит жизнь.

а пока 8.3.10 не вышла - использую ПриАктивизацииСтроки с отключением и подключением обработчика ожидания в 1 сек, чтобы не перегружать систему пересчетом итога. Это событие всегда возникает после поиска по Ctrl+F

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

И так: Менеджерам хочется открыть список контрагентов, и быстро найти контрагента по любым данным которые они помнят!

Реализованно следующим образом:
1. На форму в Командную панель Действия формы добавленно 2 Кнопки
а) Найтиконтр (с картинкой поиск, Процедура НайтиКонтр(Кнопка)) будет использоваться для запроса данных у пользователя для отбора
б) Инф (с картинкой бинокль) будет отображать параметр текущего запроса
в) В свойствах табличного поля добавим Событие При Активизации Колонки - Процедура ИзмНазваниеКнопки(Элемент)

2. В модуль добавим код:
Код 1C v 8.х

В результате перемещаясь по колонкам списка, меняется Поиск по. (Названию колонки)


title

Для примера нужно быстро получить список Контрагентов у которых телефон содержит 783

title

Результат:


Автор: Евгений Мигачев

Разместил: E_Migachev  Версии: | 8.x |  Дата: 12.01.2010   Прочитано: 16342

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш Google maps, поиск оптимального маршрута  5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению  1
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени База для Разработки или Рабочая? Как быстро определить?  3
Когда-то я работал консультантом SAP . В SAPe есть настройка изменения цвета главного окна программы и у нас было негласное правило: Рабочая программа - Красный фон , Тестовая - Зеленый , Разработка - Синий . Работая в 1С, всегда открыто по 5-6 Посмотреть все результаты поиска похожих

Еще в этой же категории

Как в форме списка реализовать сортировку по своему реквизиту?  10
Если реквизит примитивного типа, то достаточно установить для свойства реквизита «Индексировать» значение «Индексировать» или «Индексировать с доп. упорядочиванием» (не доступно для реквизитов типа ХранилищеЗначения). Если же реквизит ссылочного типа Сортировка списка по произвольной колонке?  7
В процедуру ПриОткрытии или в конец модуля добавить: ЭлементыФормы.РегистрСведенийСписок.НастройкаПорядка.НомерСоглашения.Доступность=Истина; Где НомерСоглашения - Колонка в списке регистра сведений по которой нужно сортировать! Далее щелкнув Оформление строки в ПриПолученииДанных или ПриВыводеСтроки   6
Событие ПриПолученииДанных использется для оформления ячеек строк данных, отображаемых табличным полем. Обработчик данного события вызывается табличным полем в тех же случаях, что и обработчик ПриВыводеСтроки , т.е. при обновлении данных, отображ Табличное поле

Как получить строки табличного поля, отобранные отбором?  4
ОтборСтрок = ТабличнаяЧастьИсточник.ОтборСтрок ; ПостроительЗапроса = Новый ПостроительЗапроса; ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличнаяЧастьИсточник); // Добавляются необходимые отборы, такие же как в отбор Отбор по списку значений  3
СозданныйСписок = Новый СписокЗначений; СозданныйСписок.Добавить(Перечисления.СтатусЗаявки.Выполнено); СозданныйСписок.Добавить(Перечисления.СтатусЗаявки.ЗакрытиеЗаявки); СозданныйСписок.Добавить(Перечисления.СтатусЗаявки.ОтклоненаРукОтдЗакупок); Посмотреть все в категории Список Справочника, Документов, Регистров

Ключевые слова и Изображения

Слова упорядочены по частоте использования в тексте

Изображения

Делаем быстрый поиск по списку Справочника, Документов.
Делаем быстрый поиск по списку Справочника, Документов.
Делаем быстрый поиск по списку Справочника, Документов.
Делаем быстрый поиск по списку Справочника, Документов.
Делаем быстрый поиск по списку Справочника, Документов.

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

В 1С 8.3 по умолчанию настройки справочника номенклатуры такие:


При такой настройке, механизм поиска в справочнике номенклатуры работает так:


- в документе вводим первые символы Пета и видим такой результат подсказки:


Но, такой поиск не удобен и менеджеры захотели подбирать номенклатуру по артикулу, например 1320

Для этого изменим настройки указав поиск по Любой части и включив полнотекстовый поиск:


Сохраняем конфигурацию и в режиме предприятие обновляем Полнотекстовый поиск: Меню - Все функции - Стандартные - Управление полнотекстовый поиском


После этого пробуем в документе выполнить поиск по 1320 и видим:


Все Менеджеры пищат как дети на новогодней елке!

Пока писал эту статью нашел в интернете другое решение для платформы 8.2:

СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)

ОбработкаПолученияДанныхВыбора(<ДанныеВыбора>, <Параметры>, <СтандартнаяОбработка>)

В модуле менеджера справочника "Номенклатура" пишем:

В обработчике - ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбраблтка) для нас важны все три параметра. В первый "ДанныеВыбора" мы загружаем наш список номенклатуры, полученный по нашему алгоритму. Из параметра "Параметры" мы получим значение введенное пользователем, а третьему параметру "СтандартнаяОбработка" мы должны поставить значение "Ложь"(отключаем стандартный алгоритм системы).

В результате одной небольшой процедурой мы полностью решили поставленную задачу.

Читайте также: