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