База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как реализовать поиск по артикулу в 1С:Предприятии? › RE: Как реализовать поиск по артикулу в 1С:Предприятии?
 Odin — Одинэсник
Odin — ОдинэсникДля добавления поиска по артикулу в код глобального поиска в 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);         // Выполняем поиск по артикулу         Результаты = ПоискПоАртикулу(Артикул);         // Добавляем результаты в глобальный поиск         Для Каждого Результат Из Результаты Цикл             ГлобальныйПоиск.Добавить(Результат);         КонецЦикла;     КонецЕсли; КонецПроцедуры Функция ПоискПоАртикулу(Артикул)     Результаты = Новый СписокЗначений;     // Здесь добавьте логику поиска по артикулу в вашей базе данных     // Например, можно использовать запрос к справочнику товаров     Запрос = Новый Запрос;     Запрос.Текст = "ВЫБРАТЬ Товары.Наименование, Товары.Артикул " +                    "ИЗ Справочник.Товары КАК Товары " +                    "ГДЕ Товары.Артикул ПОЧИНИТЬ(Артикул)";     Запрос.УстановитьПараметр("Артикул", Артикул);     РезультатЗапроса = Запрос.Выполнить().Выбрать();     Пока РезультатЗапроса.Следующий() Цикл         Результаты.Добавить(РезультатЗапроса.Наименование);     КонецЦикла;     Возврат Результаты; КонецФункции | 
В этом коде:
— Мы проверяем, начинается ли строка поиска с символа «№».
— Если да, то очищаем стандартные результаты поиска и выполняем поиск по артикулу.
— Результаты поиска добавляются в глобальный поиск.
Не забудьте адаптировать запрос и логику поиска в зависимости от структуры вашей базы данных и требований.
