|
Отбор элементов справочника | ☑ | ||
---|---|---|---|---|
0
Black Dragon
30.08.11
✎
14:35
|
Всем доброго дня!
Вот такой вопрос: нужно из справочника сделать отбор элементов по нескольким реквизитам. Каковы мои действия? Есть конечно метод Выбрать, но Выбрать (Select) Синтаксис: Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>) Параметры: <Родитель> (необязательный) Тип: СправочникСсылка. Отбор по родителю. Имеет смысл только для многоуровневых справочников. Если параметр не задан, то отбор по родителю не производится. Чтобы отобрать элементы верхнего уровня, нужно в качестве данного параметра указать пустую ссылку на элемент справочника. <Владелец> (необязательный) Тип: СправочникСсылка. Отбор по владельцу. Имеет смысл только для подчиненных справочников. Если параметр не задан, то отбор по владельцу не производится. <Отбор> (необязательный) Тип: Структура. Задает поле и значение отбора открываемой выборки. Ключ структуры описывает имя поля, а значение структуры - значение отбора по этому полю. В качестве полей для отбора могут задаваться только поля "Код", "Наименование" и реквизиты справочника, для которых в конфигураторе признак индексирования установлен в значение "Индексировать" или в значение "Индексировать с доп. упорядоч.". Важно! Структура может содержать только один элемент. Если параметр не указан, то отбор не используется. <Порядок> (необязательный) Тип: Строка. Строка с именем реквизита справочника, определяющая упорядочивание элементов в выборке. Может быть указано "Код", "Наименование" или имя одного из реквизитов примитивного типа (Число, Строка, Дата, Булево), для которого установлен признак "Индексирование" в значение "Индексировать" или в "Индексировать с дополнительным упорядочиванием" в конфигураторе. После имени реквизита через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Если параметр не указан, то порядок определяется основным представлением справочника. Значение по умолчанию: Пустая строка Возвращаемое значение: Тип: СправочникВыборка. Описание: Формирует выборку элементов справочника по заданным условиям Однако структура может содержать только одну запись! |
|||
1
Wobland
30.08.11
✎
14:36
|
зачем сюда СП постить в таком количестве? какой выбрать, когда есть Запрос
|
|||
2
Black Dragon
30.08.11
✎
14:37
|
Ну так уж получилось....
|
|||
3
Black Dragon
30.08.11
✎
14:37
|
Ну да, наверное...
|
|||
4
Wobland
30.08.11
✎
14:41
|
(3) точно говорю. за Выбрать() вместо запроса следует выстрел в коленку, линейкой по рукам и прочие кары небесные
|
|||
5
kosts
30.08.11
✎
14:47
|
Изучай запросы
|
|||
6
Black Dragon
30.08.11
✎
14:49
|
(5) Ух ты, запрос!
Ну ладно, ладно, захотелось по быстрому, по простому! Раз нет значит нет - написаю запрос и всех дел! :-) |
|||
7
Black Dragon
30.08.11
✎
14:55
|
А как насчет повторного исполнения запроса,
Запрос.УстановитьПараметр - перед повторным Выполнить как Очистить и Новые параметры указать? |
|||
8
kosts
30.08.11
✎
14:57
|
(7) Желательно минимизировать количество запросов, нужно получить все данные в одном запросе.
Тем более запрос в цикле-зло. Но если все же нужно, то просто устанавливаешь новый параметр и выполняешь. |
|||
9
Wobland
30.08.11
✎
14:58
|
(6) это и есть быстро и просто ;)
|
|||
10
Wobland
30.08.11
✎
14:58
|
(5) это типовое? обход по группировкам
|
|||
11
Black Dragon
30.08.11
✎
14:58
|
С тем же именем можно, да? он корректно обновится, в смысле, параметр?
|
|||
12
Black Dragon
30.08.11
✎
14:59
|
(10) Да это же просто пример привели - там то и группировки ни одной нету )
|
|||
13
Wobland
30.08.11
✎
15:01
|
(11) да
|
|||
14
Black Dragon
30.08.11
✎
15:01
|
(13)спасибо
|
|||
15
Wobland
30.08.11
✎
15:03
|
я вот думаю, а не хочет ли автор такого:
ГДЕ Параметр=&Параметр1 ИЛИ Параметр=&Параметр2 |
|||
16
Black Dragon
30.08.11
✎
15:25
|
у меня в принципе такое невозможно, потому как количество выполнений запроса произвольное
в общем, суть такова что из OLE базы надо перебрать записи определенного справочника и в УТ синхронизоровать с разделением на несколько справочников, вот и буду по каждому элементу делать выборку из имеющихся |
|||
17
hhhh
30.08.11
✎
15:29
|
(16) а про список или массив ты ни разу в жизни не слышал?
|
|||
18
Black Dragon
30.08.11
✎
15:43
|
Вот примерно так будет:
База77КонтактЛица = База.CreateObject("Справочник.я_КонтактныеЛица"); База77КонтактЛица.ИспользоватьВладельца(СпрКонтрагенты); Отбор = Новый Запрос; Отбор.Текст = " | ВЫБРАТЬ | КонтактныеЛица.Ссылка | ИЗ Справочник.КонтактныеЛица как Контакты | ГДЕ Справочник.КонтактныеЛица.Фамилия = &Фамилия И | Справочник.КонтактныеЛица.Имя = &Имя И | Справочник.КонтактныеЛица.Отчество = &Отчество"; База77КонтактЛица.ВыбратьЭлементы(); Пока База77КонтактЛица.ПолучитьЭлемент() Цикл Отбор.УстановитьПараметр("Фамилия",СокрЛП(База77КонтактЛица.Фамилия)); Отбор.УстановитьПараметр("Имя",СокрЛП(База77КонтактЛица.Имя)); Отбор.УстановитьПараметр("Отчество",СокрЛП(База77КонтактЛица.Отчество)); Результат = Отбор.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Количество() = 0 Тогда // создать запись КонецЕсли; КонецЦикла; |
|||
19
Black Dragon
30.08.11
✎
15:47
|
А про список либо массив - не применимо!!! Параметры разные каждый раз - к чему плодить избыточность - можно на грабли напоротся!
|
|||
20
hhhh
30.08.11
✎
15:50
|
(19) ну эта твоя программа будет выполняться в 500 раз медленнее чем обычно, только из-за того, что ты испытываешь мистический ужас перед граблями и вместо одного запроса формируешь 10000 запросов.
|
|||
21
Black Dragon
30.08.11
✎
15:55
|
(20) Хм...Да, определенно!
|
|||
22
Black Dragon
30.08.11
✎
15:57
|
Но иначе не представляю как - параметр 3-ы составной - нужно уникальность по строке соблюдать!
|
|||
23
Error pro
30.08.11
✎
16:11
|
(19) при чем тут избыточность? В массив можешь запихнуть свои "разные параметры" , а 18 - жесть и "не избыточность"...
|
|||
24
kosts
30.08.11
✎
18:27
|
(18) Если это для постоянного использования,есть смысл оптимизировать.
Через временные таблицы. Что то в этом роде.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |