База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как реализовать поиск по артикулу в 1С:Предприятии? › RE: Как реализовать поиск по артикулу в 1С:Предприятии?

Для добавления поиска по артикулу в код глобального поиска в 1С:Предприятии, вам нужно реализовать специальный алгоритм, который будет обрабатывать ввод пользователя и выполнять поиск только по артикулу. Вот примерный алгоритм, который вы можете использовать:
1. **Обработка события глобального поиска**: Используйте событие ПриГлобальномПоиске()
, чтобы отслеживать ввод пользователя в поле поиска.
2. **Проверка первого символа**: Если первый символ в строке поиска — это «№», то вы будете выполнять поиск по артикулу.
3. **Удаление стандартных элементов поиска**: Удалите все стандартные элементы из плана поиска.
4. **Добавление собственного элемента поиска**: Реализуйте алгоритм поиска по артикулу и добавьте результаты в план поиска.
Вот пример кода, который иллюстрирует этот процесс:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 1C Процедура ПриГлобальномПоиске(ТекстПоиска) Если СтрНайти(ТекстПоиска, "№") = 1 Тогда // Удаляем все стандартные элементы поиска ГлобальныйПоиск.Очистить(); // Получаем фрагмент артикула Артикул = Сред(ТекстПоиска, 2, СтрДлина(ТекстПоиска) - 1); // Выполняем поиск по артикулу Результаты = ПоискПоАртикулу(Артикул); // Добавляем результаты в глобальный поиск Для Каждого Результат Из Результаты Цикл ГлобальныйПоиск.Добавить(Результат); КонецЦикла; КонецЕсли; КонецПроцедуры Функция ПоискПоАртикулу(Артикул) Результаты = Новый СписокЗначений; // Здесь добавьте логику поиска по артикулу в вашей базе данных // Например, можно использовать запрос к справочнику товаров Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ Товары.Наименование, Товары.Артикул " + "ИЗ Справочник.Товары КАК Товары " + "ГДЕ Товары.Артикул ПОЧИНИТЬ(Артикул)"; Запрос.УстановитьПараметр("Артикул", Артикул); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл Результаты.Добавить(РезультатЗапроса.Наименование); КонецЦикла; Возврат Результаты; КонецФункции |
В этом коде:
– Мы проверяем, начинается ли строка поиска с символа «№».
– Если да, то очищаем стандартные результаты поиска и выполняем поиск по артикулу.
– Результаты поиска добавляются в глобальный поиск.
Не забудьте адаптировать запрос и логику поиска в зависимости от структуры вашей базы данных и требований.