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