Поиск в 1С

Настройки списков в 1С 8.3.5.

В новой версии 1С 8.3.5 улучшена работа с настройками списков.

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

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

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

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

Поиск в списках.

Был переработан механизм поиска в списках. Поиск стал более удобным и понятным.

Первое внешнее отличие заключается в том, что теперь в командной панели формы присутствуют два новых элемента: «Строка поиска» и «Управление поиском».

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

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

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

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

Расширенный поиск.

Механизм поиска, существовавший в платформе раньше, остался, и называется теперь «Расширенный поиск». Немного изменился внешний вид его диалога и была добавлена возможность поиска по началу строки.

Для вызова расширенного поиска есть отдельная команда и, кроме этого, платформа использует его тогда, когда меняются значения, по которым уже выполнен поиск.

Выбор периода.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оператор нечеткости «#». Если неизвестно точное написание названия, имени.

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

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

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

Код 1C v 8.х Процедура ОбновлениеИндексы() Экспорт
ПолнотекстовыйПоиск.ОбновитьИндекс();
КонецПроцедуры

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

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

Код 1C v 8.х Перем СписокПоиска;

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

Код 1C v 8.х Процедура ПриОткрытии()
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок();
КонецПроцедуры

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

Код 1C v 8.х Процедура НайтиНажатие(Элемент)
СписокПоиска.СтрокаПоиска = ПоисковоеВыражение;
Попытка
СписокПоиска.ПерваяЧасть();
Исключение
Предупреждение(ОписаниеОшибки());
КонецПопытки;
Если СписокПоиска.ПолноеКоличество() = 0 Тогда
ЭлементыФормы.СообщениеОРезультате.Значение = «Не найдено»;
ЭлементыФормы.РезультатПоиска.УстановитьТекст(«»);
Иначе
ВывестиРезультатПоиска();
КонецЕсли;
КонецПроцедуры

Сначала в этой процедуре мы устанавливаем поисковое выражение, введенное пользователем, в качестве строки поиска для полнотекстового поиска. Затем выполняем метод ПерваяЧасть(), который собственно запускает полнотекстовый поиск и возвращает первую порцию результатов. По умолчанию порция содержит 20 элементов. После этого мы анализируем количество элементов в списке поиска. Если он не содержит ни одного элемента, то мы выводим в форму соответствующее сообщение. В противном случае вызывается процедура ВывестиРезультатПоиска(), которая отображает полученные результаты пользователю.

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

Код 1C v 8.х Процедура ВывестиРезультатПоиска()
ЭлементыФормы.СообщениеОРезультате.Значение = «Показаны » + Строка(СписокПоиска.НачальнаяПозиция() + 1) + » — » + Строка(СписокПоиска.НачальнаяПозиция() +СписокПоиска.Количество()) + » из » + СписокПоиска.ПолноеКоличество();
Результат = СписокПоиска.ПолучитьОтображение(ВидОтображенияПолнотекстовогоПоиска.HTMLТекст);
ЭлементыФормы.РезультатПоиска.УстановитьТекст(Результат);
ДоступностьКнопок();
КонецПроцедуры

Действия, выполняемые в этой процедуре, просты. Сначала мы формируем сообщение о том, какие элементы отображены и сколько всего элементов найдено. Затем получаем результат полнотекстового поиска в виде HTML-текста и выводим этот текст в поле HTML-документа, расположенное в форме.

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

Код 1C v 8.х Процедура ДоступностьКнопок()
ЭлементыФормы.СледующаяПорция.Доступность = (СписокПоиска.ПолноеКоличество() — СписокПоиска.НачальнаяПозиция()) > СписокПоиска.Количество();
ЭлементыФормы.ПредыдущаяПорция.Доступность = (СписокПоиска.НачальнаяПозиция() > 0);
КонецПроцедуры

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

Код 1C v 8.х Процедура ПредыдущаяПорцияНажатие(Элемент)
СписокПоиска.ПредыдущаяЧасть();
ВывестиРезультатПоиска();
КонецПроцедуры
Процедура СледующаяПорцияНажатие(Элемент)
СписокПоиска.СледующаяЧасть();
ВывестиРезультатПоиска();
КонецПроцедуры

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

Код 1C v 8.х Процедура РезультатПоискаonclick(Элемент, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Проверить идентификатор элемента
Если (htmlElement.id = «FullTextSearchListItem») Тогда
// Получить имя файла (номер строки списка поиска),
// содержащегося в гиперссылке
НомерВСписке = Число(htmlElement.nameProp);
// Получить строку списка поиска по номеру
ВыбраннаяСтрока = СписокПоиска;
// Открыть форму найденного объекта
ОткрытьЗначение(ВыбраннаяСтрока.Значение);

Получить значение перечисления 1С

ИмяПеречисления = СсылкаНаПеречисление.Метаданные().Имя;

КоличествоЗначенийПеречисления=Метаданные.Перечисления.ЗначенияПеречисления.Количество();

КолекцияЗначенийПеречисления = Метаданные.Перечисления.ЗначенияПеречисления;
ИндексЗначенияПеречисления=Перечисления.Индекс(СсылкаНаПеречисление);

ИмяЗначенияПеречисления = Метаданные.Перечисления.ЗначенияПеречисления.Имя
Перебор коллекции значений перечисления
Для каждого знач из КолекцияЗначенийПеречисления Цикл
Сообщить(знач.Имя);
КонецЦикла;
ПредставлениеПеречисления=Строка(СсылкаНаПеречисление); //синоним

полезной будет функция:

Функция ПолучитьИмяЗначенияПеречисления(Ссылка) Экспорт

ИмяПеречисления = Ссылка.Метаданные().Имя;
Индекс = Перечисления.Индекс(Ссылка);

Возврат Метаданные.Перечисления.ЗначенияПеречисления.Имя;

КонецФункции // ПолучитьИмяЗначенияПеречисления()

альтернативный способ получения имени значения перечисления:

ИмяЗначенияПеречисления = XMLстрока(СсылкаНаПеречисление);

Полезный прием для работы с перечислениями при COM соединении с другой ИБ 8.0 (например при обмене данных):

надо передать ссылку на перечисление:
Здесь
V8 — COM объект «V8.Application» — ИБ внешнего соединения
СсылкаНаПеречислениеCOM — COM объект — ссылка на перечисление в ИБ внешнего соединения

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

Пример получения значений перечисления запросом

Глобальный поиск и модернизация интерфейса клиентского приложения

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.15.1489.

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

Модернизация интерфейса

Поскольку эта статья описывает не тестовую и даже не бета-версию платформы, дизайн конкретных элементов носит рабочий, предварительный характер. Однако конструктивные решения, о которых пойдёт речь, скорее всего так и перейдут в «боевую» версию платформы. Хотя и тут мы не исключаем возможных изменений.

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

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

Главное меню содержит, в том числе, и те команды, которые раньше находились в системной командной панели.

Если команды прибавления, вычитания и копирования чисел в буфер обмена нужны часто, вы можете нажать «Показать М, М+, М-«, и эти команды появятся в главной панели перед строкой поиска.

Также мы изменили внешний вид вспомогательных окон.

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

Глобальный поиск «из коробки»

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

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

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

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

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

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

Один пользователь может скопировать эту ссылку, и послать её другому пользователю.

Другой пользователь просто вставляет её в строку поиска, и сразу может открыть нужный элемент данных.

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

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

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

Настройка глобального поиска

Если вы хотите «чего-то особенного» или стандартное поведение глобального поиска вас не устраивает, вы можете настроить его работу под свои задачи.

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

Перехватить нажатие на найденную ссылку

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

В этом вам поможет событие ПриВыбореРезультатаГлобальногоПоиска(). Оно возникает в момент нажатия на одну из найденных ссылок в списке, расположенном под полем ввода. Обработать это событие вы можете в модуле приложения.

Исключить некоторые виды поиска

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

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

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

Добавить собственный вид поиска

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

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

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

Когда пользователь наберёт в строке поиска искомое слово, на первом месте он увидит ссылку на ваш интернет-ресурс.

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

Уточнить поиск в данных

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

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

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

Когда пользователь введёт в строке фрагмент номера накладной, в первой строке результатов он увидит подходящую накладную, если такая существует.

Выполнять собственный поиск по псевдокоманде

Например, в вашем прикладном решении довольно частой задачей является поиск товаров по фрагменту артикула. Глобальный поиск «из коробки» справляется с этой задачей, однако возвращает очень много результатов (т.к. ищет везде), и делает это недостаточно быстро (т.к. использует полнотекстовый поиск в данных).

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

После этого вы можете воспользоваться событием ПриГлобальномПоиске(). Это событие возникает тогда, когда в процессе набора текста в поле поиска сделана пауза. Это событие вы можете обработать в модуле приложения.

Если в строке поиска первый символ «№», вы удаляете все элементы из плана поиска и добавляете свой собственный элемент. Алгоритм его работы написан в процедуре ПоискПоАртикулу(), которая находится в общем модуле МодульГлобальногоПоискаСервер.

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

Чтобы быстро получить такое представление, вы можете использовать функцию СтрВыделитьОформлением(). В первом параметре вы передаёте ей ту строку, которую будете показывать, а во втором параметре – тот фрагмент, который надо выделить в этой строке.

В результате, когда пользователь введёт в строку поиска «№2», он быстро получит список только тех товаров, у которых в артикуле есть «2». Если пользователь не будет вводить «№» первым символом в поисковую строку, глобальный поиск будет работать как обычно, «из коробки».

Дополнить описание поиска новыми возможностями

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

Глобальный поиск имеет описание, которое открывается по ссылке «Что искать». Вы можете добавить в него свою подсказку.

Для этого вам снова понадобится менеджер глобального поиска.

В результате пользователь увидит такое описание:

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

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

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

Теги: UI

Рассказать друзьям:

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

Однако не во всех конфигурациях это поле присутствует, например, его нет в «Бухгалтерии Предприятия»:

Появилось поле «Артикул» только в новой 3 редакции этой конфигурации:

Чтобы обойти это ограничение (когда нет реквизита) пользуются таким приемом: записывают артикул перед названием товара: например, «123 краска масляная». Когда же надо найти товар по артикулу в списке, начинают набирать артикул и программа позиционируется на искомом товаре. Это достаточно удобно для тех кто помнит наизусть артикулы. (Причем, это настолько распространенный способ, что его используют даже там где реквизит «Артикул» присутствует, а он был изначально во всех «Торговлях» и теперь уже и в «Бухгалтерии предприятия».)

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

Как же избежать ошибочных ситуаций при работе с артикулом? Все очень просто — артикул необходимо записывать в соответствующий реквизит, а в последствии, если необходимо искать товар по артикулу — то искать именно в этом поле. Что же делать с «Бухгалтерией Предприятия», спросите вы… Ведь в БП (до 3 версии) данного поля нет. Но подумайте: возможно оно там и не нужно вовсе… Это же не оперативная программа — бухгалтеру совсем не обязательно знать артикул. В большинстве случаем хватит обычного наименования.

Теперь вернемся в Управление Торговлей… Есть еще один вопрос: что делать, если артикула товара нет, а очень хочется? А хочется его вполне обоснованно — увеличить скорость поиска товара. Тут есть несколько вариантов плохих и хороших.

  • Один из плохих: писать в артикул код поставщика. Никогда его не используйте! Лучше не вписать никакой, чем код поставщика, ибо это верный путь к пересортице.
  • Один из приемлемых вариантов: использовать в качестве артикула кусок ШК EAN-13 (если есть).

Кстати, EAN переводится как Европейский артикульный номер.
Но брать надо не все 13 символов, а только код товара который находится так: возьмем цифровой код SSSPPPPPPGGGX — и выделим из нее «GGG» — это и есть код (артикул) товара. Но опять же относиться к использованию ШК надо аккуратно — подробности использования вы найдете в курсе «Эффективное использование ШК». (skladuchet.ru)

Завершим статью небольшим обзором средств , быстрого поиска товара в новых (и не очень) конфигурациях «УТ» и «БП»

  • В Управление Торговлей 10.3 при быстром поиске товарных позиций необходимо было выбрать где (в каком реквизите) мы будем искать какую-либо информацию (наименование, артикул, код):
  • В Бухгалтерии Предприятия 1.6 и 2.0 быстрый поиск примерно такой же убогий как и в 1С:Предприятие 77:

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

  • Зато в УТ 11 и БП 3 механизм быстрого поиска сделали универсальным, что не может не радовать:

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

Вот вкратце и все, что касается средств быстрого поиска в справочниках. Что же касается поиска вообще — мы не рассмотрели одно мощное средство — «Отбор и сортировка». Но это тема отдельного разговора, мы к этому вернемся вскоре.
Если же вам удобнее смотреть данный урок в видео-формате — пожалуйте сюда:

Успехов в учете.

Поделиться ссылкой: