В процессе работы с документами в системах 1С, таких как 1С:ERP, 1С:Управление торговлей или 1С:Комплексная автоматизация, пользователи часто сталкиваются с удобным функционалом автоподбора или истории выбора. Система автоматически предлагает те позиции номенклатуры, которые были выбраны ранее. Однако стандартное количество элементов в этом списке может быть ограничено, что не всегда удобно для активной работы. Давайте разберем, как найти этот механизм и увеличить количество отображаемых позиций.
Чтобы понять, как система наполняет выпадающий список, нам необходимо проанализировать программный код конкретной формы документа. Важно помнить, что в типовых конфигурациях логика может быть распределена по общим модулям.
Рассмотрим пошаговый алгоритм поиска:
Поле формы, привязанное к реквизиту типа СправочникСсылка.Номенклатура).НачалоВыбора или Автоподбор.Чаще всего в типовых решениях разработчики используют СписокВыбора для динамического заполнения элемента. Вам нужно найти участок кода, где происходит добавление элементов в этот список.
При изучении кода вы, скорее всего, встретите условие, которое ограничивает количество выводимых строк. Программно это выглядит примерно следующим образом:
// Пример логики ограничения списка выбора
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10
| ИсторияВыбора.Номенклатура
|ИЗ
| РегистрСведений.ИсторияВыбора КАК ИсторияВыбора
|УПОРЯДОЧИТЬ ПО
| ИсторияВыбора.Период УБЫВ";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если вы видите конструкцию ВЫБРАТЬ ПЕРВЫЕ 10, то именно это число определяет размер вашего списка. Чтобы изменить его, вам потребуется внести изменения в запрос.
Поскольку мы работаем с типовыми конфигурациями, мы настоятельно рекомендуем не снимать конфигурацию с поддержки. Используйте для этого механизм Расширения конфигурации.
Выполним действия по модификации через расширение:
Расширение конфигурации в конфигураторе.СписокВыбора, используя аннотацию &AtOverride.Будьте внимательны: излишнее увеличение количества элементов может негативно сказаться на быстродействии формы при открытии выпадающего списка, особенно если выборка строится на основе тяжелых запросов к базе данных.
Если стандартный механизм СписокВыбора кажется недостаточно гибким, рассмотрим другие варианты:
Во-первых, можно использовать механизм избранного. Вы можете реализовать отдельный РегистрСведений, куда будут записываться наиболее часто используемые пользователем товары. С помощью кнопки или специального подменю на форме можно выводить этот список «избранной» номенклатуры, который будет содержать столько позиций, сколько необходимо для комфортной работы.
Во-вторых, проанализируйте общие модули с названиями, содержащими подстроку ИсторияВыбора или ПодборНоменклатуры. Часто разработчики выносят настройки лимитов в Константы или Параметры сеанса, что позволяет изменять поведение системы без прямого вмешательства в код запросов, если такая возможность была предусмотрена архитекторами типового решения.
Таким образом, для решения задачи увеличения количества последних выбранных номенклатур, необходимо найти место формирования списка в коде формы, проанализировать запрос к истории выбора и, используя расширение, изменить лимит выборки в операторе ПЕРВЫЕ.