![]() |
![]() |
![]() |
|
Подскажите, как работает выбрать для справочника? | ☑ | ||
---|---|---|---|---|
0
evorle145
21.02.13
✎
11:19
|
Когда использую Справочники.Номенклатура.НайтиПоНаименованию(), то в параметрах могу указать точное соотвествие = Истина. Но если существует несколько элементов с указанным наименованием, то будет найден только один из них. А мне нужно получить все эти найденные элементы.
Поэтому делаю так: НоменклатураС = Справочники.Номенклатура; Отбор = Новый Структура("Наименование"); Отбор.ТипНоменклатуры = Файл.Значение; Выборка = НоменклатураС.Выбрать(,,Отбор,); Пока Выборка.Следующий() Цикл КонецЦикла; Но вот вопрос: в этом случае я получу точное соответсвие или нет? Ведь здесь нет никакого параметра "точное соответствие" как в первом случае. Спасибо. |
|||
1
Галахад
гуру
21.02.13
✎
11:20
|
Точное.
|
|||
2
Maxus43
21.02.13
✎
11:22
|
Юзай запросы, Выбрать не кошерно
|
|||
3
evorle145
21.02.13
✎
11:23
|
(1), спасибо. А это точно? Просто в справке ничего не сказано про это.
|
|||
4
evorle145
21.02.13
✎
11:23
|
(2),а запросом быстрее будет поиск осуществлять в моем случае?
|
|||
5
Maxus43
21.02.13
✎
11:25
|
(4) правильней будет.
А ещё лучше сразу всё запросом вытащить, и лучше не по наименованию конечно |
|||
6
evorle145
21.02.13
✎
11:27
|
(5), понял, сейчас пробую все вытащить в одном запросе. К сожалению, кроме наименования ничего нет. Коды не совпадают (базы разные), артикулов нет.
|
|||
7
Maxus43
21.02.13
✎
11:29
|
(6) наименования тогда тоже не совпадают почти наверняка. Ну часть вытащиш, сотальное хз
|
|||
8
evorle145
21.02.13
✎
11:35
|
(7), Да, наименования частично не совпадают. Ну хотя бы часть вытащу. Сейчас оформляю все одним запросом. Спасибо за совет!
|
|||
9
Reset
21.02.13
✎
11:36
|
В запросе можно использовать подобно &Наименование+"%", тогда поиск будет как при "неточном соответствии" у найтиПоНаименованию
|
|||
10
Maxus43
21.02.13
✎
11:39
|
(9) частный случай, боюсь там не совпадает не конечные символы, а "Карандаш черный" и "Черный карандаш"
|
|||
11
Reset
21.02.13
✎
11:43
|
(10) Это да. Ну еще можно накидвать буковок в условия.
Я собственно хотел только в поддержку (2) высказаться |
|||
12
evorle145
21.02.13
✎
11:56
|
ну вот результат готов: эта таблица где посчитано сколько найдено позиций соответствующих искомой номенклатуре.
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ * ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ"; Запрос.УстановитьПараметр("ТЗ", ТаблицаПроверка); Запрос.Выполнить(); Запрос.Текст = "ВЫБРАТЬ | ТЗ.Номенклатура, | Ном.Наименование КАК НаименованиеИзНом, | СУММА(ВЫБОР | КОГДА Ном.Наименование ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ) КАК Количество |ИЗ | ТЗ КАК ТЗ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном | ПО ТЗ.Номенклатура = Ном.Наименование | |СГРУППИРОВАТЬ ПО | ТЗ.Номенклатура, | Ном.Наименование"; Выборка = Запрос.Выполнить().Выбрать(); |
|||
13
Галахад
гуру
21.02.13
✎
12:01
|
(12) Или я тупой, или это то самое, что (0)
|
|||
14
Maxus43
21.02.13
✎
12:03
|
(13) да, тупой :)
в (0) выборка по каждой номенклатуре, в (12) вся куча вытаскивается |
|||
15
Галахад
гуру
21.02.13
✎
12:05
|
(14) Куча 100% одинаковых?
|
|||
16
Maxus43
21.02.13
✎
12:05
|
(15) да
|
|||
17
Галахад
гуру
21.02.13
✎
12:06
|
(16) Ну да, тупой...
|
|||
18
Maxus43
21.02.13
✎
12:07
|
тут просто в одном запросе весь объём тащит, а не "выбрать()" в цикле по каждой.
Проблему несоответсвия наименований не решить автоматом полностью |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |