Выбор единственного значения по левому соединению #734805


#0 by commdt
Извечная проблема, но хочется ещё раз помусолить. Делаю поиск номенклатуры по Артикулу и (или) Наименованию в одном запросе (Левое соединение по условию наподобие "Таб.Артикул = Номенклатура.Артикул ИЛИ НЕ &ИскатьПоАртикулу"). Цель - избавиться от циклов вообще, при этом не плодить текстов запроса и сборок запроса по кускам. В запрос загружается вся табличная часть, обрабатывается и целиком выгружается обратно. Всё работает замечательно, но если существует более одной номенклатуры, например, с одинаковым артикулом, то на выходе получаем 2 строки по одному артикулу. Если бы поиск был жёстко по артикулу, то можно было бы организовать вложенный запрос к справочнику номенклатура, а в нём группировку по артикулу и Максимум по Номенклатура.Ссылка, там же можно было бы посчитать повторяющиеся элементы. Но беда в том, что искать предстоит как по артикулу, так и по наименованию. Группировки по условию, насколько я понимаю, не существует. Может быть есть какое-то лекарство? Уж больно не хочется возвращаться к циклам
#1 by mikecool
сделать предварительно выбор только по одному значению в вт связать эту вт справа к основному запросу и это - в условиях лучше писать "НЕ &ИскатьПоАртикулу ИЛИ Таб.Артикул = Номенклатура.Артикул ")
#2 by FIXXXL
результат запроса - задвоенная строка ТЧ? сгруппировать во все поля или есть случаи атрикул 001, наименование 002 артикул 002, наименование 003 и тогда две строки с разным товаром лезут?
#3 by commdt
Одинаковые лезут, например, когда ТЧ: Арт1 - Ном? ... Стоит поиск по артикулу. А в базе у нас есть Ном1 с Арт1 Ном2 с Арт1 ... На выходе получаем ТЧ Арт1 - Ном1 Арт1 - Ном2 ... Не совсем понял, как сделать выбор по одному значению в ВТ? В смысле по одному значению для каждой строки справочника? Это смысла не имеет, в ВТ и так все поля уникальны. Вообще фильтровать по одному элементу? Так мне не один нужен, а вся таблица заполненная. По тем же причинам условия поиска задаются в связях, а не в отборе
#4 by mikecool
не понял тогда, что нужно есть один артикул и две номенклатуры, надо выбрать одну номенклатуру?
#5 by commdt
Есть несколько тысяч артикулов и наименований, и есть весь справочник номенклатуры - нужно сопоставить :) И чтобы выполнялось не десять лет
#6 by Адский плющ
На манер поиска курсов валют на каждую дату, сначала выбираешь для каждого артикула единственную номенклатуру (группировка + максимум). И юзаешь эту таблицу.
#7 by Адский плющ
+ А блин, не дочитал сабж )
#8 by commdt
Сгруппировать было бы круто, но по какому полю? Поиск может выполняться как по артикулу, так и по наименованию, плюс вместе с номенклатурой подгружается цена из регистра, то есть на выходе вообще нельзя юзать группиорвку. Во вложенном запросе к справочнике номенклатуры было бы можно, но опять же, по какому полю?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С