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