Вопрос по поводу запросов (как искать подстроку в строковом поле справочника).
Доброе время суток.
Прошу прошения за тупо-примитивный вопрос по поводу запросов.
Задача:
- Дано: Справочники.Номенклатура - в нем есть поле Аналоги куда записывается артикулы других номенклатур через запятую.
- Надо: осуществить поиск и вывести его в ТабЗначений.
- Примечание: артикул это буквенно-цыфровой код. запысывается он менеджером при добавлении новой номенклатуры. И каждый раз по разному т.е. когда прописными а когда заглавными.
Как реализовано сейчас у меня:
- Пробегаю перебором по справочнику, загоняю все в строго в верхний ренистр и сраниваю.
А как реализовать подобное через запрос.
т.е. как решить вопрос с регистрами и возможно ли такое?
Заранее благодарен.
Прошу прошения за тупо-примитивный вопрос по поводу запросов.
Задача:
- Дано: Справочники.Номенклатура - в нем есть поле Аналоги куда записывается артикулы других номенклатур через запятую.
- Надо: осуществить поиск и вывести его в ТабЗначений.
- Примечание: артикул это буквенно-цыфровой код. запысывается он менеджером при добавлении новой номенклатуры. И каждый раз по разному т.е. когда прописными а когда заглавными.
Как реализовано сейчас у меня:
- Пробегаю перебором по справочнику, загоняю все в строго в верхний ренистр и сраниваю.
СпрНоменклатура = Справочники.Номенклатура.Выбрать();
Пока СпрНоменклатура.Следующий() Цикл
Если Найти(ВРег(СпрНоменклатура.Аналоги), ВРег(ЭтаФорма.СтрокаПоиска)) > 0 Тогда
Таб = ЭтаФорма.ТаблицаЗначений.Добавить();
Таб.Наименование = СпрНоменклатура.Наименование;
Таб.Артикул = СпрНоменклатура.Артикул;
Таб.Аналоги = СпрНоменклатура.Аналоги;
КонецЕсли;
КонецЦикла;
ПоказатьА как реализовать подобное через запрос.
т.е. как решить вопрос с регистрами и возможно ли такое?
Заранее благодарен.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Artemovsky,
Так не делают. Правильное решение - табличная часть со списком ссылок на другие номенклатуры. Учитесь думать в терминах баз данных. Да и правописанию поучиться Вам стоит
Справочники.Номенклатура - в нем есть поле Аналоги куда записывается артикулы других номенклатур через запятую.
Так не делают. Правильное решение - табличная часть со списком ссылок на другие номенклатуры. Учитесь думать в терминах баз данных. Да и правописанию поучиться Вам стоит
цыфровой
(2) agrustny, С правописание в курсе. Исправляю не не все сразу.
(2) agrustny,
(3) byuf_in,
А по поводу зачем мне это?!
Ответ: Лично мне не зачем! И не я это изобретал. А вот передали мне базу на поддержку а вней такой зоопарк. И исправить будет трудновато, так как на эту строчку уж много чего наверчено из обработок. А я все голишь получил "это" уже в измененном виде. Исправлю но позже. сейчас же нужно доделать что бы мне мозг не трогали. а переделаю чуть позже, когда с меня все слузут со своими хотелками. При том что это доработка от Конторы которая является партнером 1С, и им платили по договору не малые деньги. А после того как эта кантора решила соскочить так как стали хотелки озвучивать уж совсем не тривиальные, базу принесли мне. А я теперь с этим разбираюсь.
(2) agrustny,
(3) byuf_in,
А по поводу зачем мне это?!
Ответ: Лично мне не зачем! И не я это изобретал. А вот передали мне базу на поддержку а вней такой зоопарк. И исправить будет трудновато, так как на эту строчку уж много чего наверчено из обработок. А я все голишь получил "это" уже в измененном виде. Исправлю но позже. сейчас же нужно доделать что бы мне мозг не трогали. а переделаю чуть позже, когда с меня все слузут со своими хотелками. При том что это доработка от Конторы которая является партнером 1С, и им платили по договору не малые деньги. А после того как эта кантора решила соскочить так как стали хотелки озвучивать уж совсем не тривиальные, базу принесли мне. А я теперь с этим разбираюсь.
(1) Artemovsky, А вообще по поводу поиска, то используйте , но опять таки если у вас вводят зоопарк, то приводить его к стандарту нужно сразу при записи в базу, т.е. хранить надо в одном регистре и всё.
подобно "%ВВЕРХНЕМ РЕГИСТРЕ%" ИЛИ подобно "%в нижнем регистре%" ИЛИ подобно "%Как ПоЛуЧилось%"
"ВЫБРАТЬ
Номенклатура.Наименование,
Номенклатура.Артикул,
Номенклатура.Аналоги
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Аналоги ПОДОБНО &СтрокаПоиска"
Метод ПОДОБНО не различает регистры.
Номенклатура.Наименование,
Номенклатура.Артикул,
Номенклатура.Аналоги
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Аналоги ПОДОБНО &СтрокаПоиска"
Метод ПОДОБНО не различает регистры.
Запрос = Новый Запрос;
СтрокаПоиска = " 1ff1 "; //указать свое значение
Запрос.Текст = "ВЫБРАТЬ
|Номенклатура.Наименование,
|Номенклатура.Артикул,
|Номенклатура.Аналоги
|ИЗ
|Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|Номенклатура.Аналоги ПОДОБНО &СтрокаПоиска" ;
Запрос.УстановитьПараметр("СтрокаПоиска", Врег(СокрЛП(СтрокаПоиска)));
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот