Как установить поиск по умолчанию "Везде" в подборе товаров РМК?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

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

Способ 1. Настройка свойств формы в Конфигураторе

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

Рассмотрим пошагово, что нужно проверить в Конфигураторе:

  1. Откроем конфигурацию и найдем форму подбора товаров (обычно она находится в обработке ПодборТоваровВПродажах или непосредственно в документах РМК).
  2. Перейдем на закладку «Реквизиты» формы.
  3. Найдем реквизит, отвечающий за текущий вариант поиска (например, ВариантПоиска или СпособПоиска).
  4. В окне свойств этого реквизита найдем флаг Сохраняемые данные и установим его.
  5. Теперь обратимся к свойствам самой формы. В самом низу списка свойств найдем раздел «Сохранение данных». Убедимся, что свойство Автоматическое сохранение данных в настройках установлено в значение «Использовать».
  6. В списке Сохраняемые значения поставим галочку напротив нашего реквизита поиска.

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

Способ 2. Программная установка через расширение (для базовых и типовых версий)

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

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


&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    
    // Устанавливаем нужный вариант поиска программно
    // Значение может быть числом или элементом перечисления в зависимости от версии
    ЭтаФорма.ВариантПоиска = 0; // Обычно 0 соответствует поиску "Везде"
    
    // Если используется перечисление, код будет выглядеть так:
    // ЭтаФорма.ВариантПоиска = Перечисления.ВариантыПоиска.Везде;
    
КонецПроцедуры

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

Способ 3. Эмуляция нажатия клавиш (WScript.Shell)

Рассмотрим нестандартный, но действенный метод, который упоминался на форуме. Он заключается в имитации действий пользователя. В 1С часто настроены «горячие клавиши» для переключения режимов поиска (например, Ctrl+0 для выбора режима «Везде»).

Мы можем заставить систему «нажать» эти клавиши автоматически при открытии формы. Для этого используется COM-объект Wscript.shell. Разберем пример кода, который можно вставить в процедуру ПриОткрытии:


Процедура ПриОткрытии()
    
    // Создаем объект для работы с системными командами Windows
    Wsh = Новый COMОбъект("Wscript.shell");
    
    // Посылаем комбинацию клавиш Ctrl + 0
    // Символ ^ означает Ctrl, а {0} - клавишу ноль
    Wsh.SendKeys("^{0}");
    
КонецПроцедуры

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

Способ 4. Настройка полнотекстового поиска

Иногда проблема кроется не в самой настройке формы, а в том, как работает поиск «Везде». В современных конфигурациях («Розница 2.3+», «УТ 11.4+») этот режим часто опирается на Полнотекстовый поиск (ПП).

Если вы установили поиск «Везде», но он не находит товары по артикулу или фрагменту, проверим следующие настройки:

  1. Перейдем в раздел Администрирование — Поддержка и обслуживание.
  2. Найдем пункт Полнотекстовый поиск данных.
  3. Убедимся, что флаг «Полнотекстовый поиск данных» включен.
  4. Нажмем кнопку «Управление индексом» и выполним «Обновить индекс».

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

Способ 5. Пользовательские настройки в интерфейсе РМК

Прежде чем приступать к программированию, посмотрим на настройки самого РМК в пользовательском режиме. В новых релизах «1С:Розница» разработчики добавили возможность управления формой подбора через профили.

Разберем, где это искать:

  1. Зайдем в раздел Продажи — Настройки РМК.
  2. Откроем используемый Полнофункциональный профиль (или создадим новый).
  3. Внутри настроек поищем флаги, отвечающие за упрощенную форму подбора или «Поиск по всем полям».
  4. Также в самой форме подбора обратим внимание на значок Шестеренки. Нажав на неё, можно выбрать способ поиска и нажать кнопку Установить как основной (если такая опция предусмотрена в вашем релизе).

Помните, что корректное закрытие формы (нажатием кнопки «ОК» или «Выбрать») способствует сохранению настроек в системном хранилище, в то время как закрытие «крестиком» или аварийное завершение работы может сбросить все изменения.

Таким образом, мы изучили пять различных подходов к решению задачи. Для стабильной работы рекомендуется использовать Способ 2 (Расширение) или Способ 1 (Настройка свойств в Конфигураторе), так как они являются наиболее «чистыми» с точки зрения разработки на платформе 1С.

← На главную