|
Поиск объекта по реквизиту и несколько объектов удовлетворяющие выбору. | ☑ | ||
---|---|---|---|---|
0
Wirtuozzz
28.02.17
✎
10:48
|
Добрый день Мистяне. У меня появился вопросик, по работе платформы 8.3.
Есть справочник, в нем происходит поиск по реквизиту (пусть это будет КПП), в справочнике есть несколько элементов, удовлетворяющие моему отбору. Соответственно система получает несколько элементов. Собственно вопрос: как система определяет порядок как расположить элементы в массиве? Согласно индексу? Что надо сделать что бы находился не первый элемент из списка найденных? Перезаписать его? |
|||
1
Волшебник
модератор
28.02.17
✎
10:49
|
ищи запросом с фразой УПОРЯДОЧИТЬ ПО
|
|||
2
Wirtuozzz
28.02.17
✎
10:51
|
У меня кривизна полезла не в запросе
|
|||
3
Wirtuozzz
28.02.17
✎
10:51
|
Да, вопрос стоит не как исправить, а как работает.
|
|||
4
DrShad
28.02.17
✎
10:55
|
перезапись ничего не изменит
|
|||
5
Wirtuozzz
28.02.17
✎
10:55
|
Но дело я правильно говорю что в Индексе. Да?
|
|||
6
Вафель
28.02.17
✎
10:56
|
скорее всего выборка идет по кластерному индексу, если не сказано про упорядочивание
|
|||
7
Вафель
28.02.17
✎
10:56
|
но индекс это ссылка, а ее поменять у существующего элемента уже нельзя
|
|||
8
xxTANATORxx
28.02.17
✎
11:03
|
без УПОРЯДОЧИТЬ не факт что на файловой версии (на постгрии и пр.) у тебя будет таже сортировка
|
|||
9
Wirtuozzz
28.02.17
✎
11:04
|
База серверная.
|
|||
10
Вафель
28.02.17
✎
11:05
|
(8) в ЗУП 2.5 есть косяк на эту тему
|
|||
11
Wirtuozzz
28.02.17
✎
11:13
|
Но правильно я понимаю, что программная сортировка объектов выборки происходит по умолчанию по Индексу?
|
|||
12
h-sp
28.02.17
✎
11:35
|
(11) ну вы отсортируйте, проверьте. Это же быстро.
|
|||
13
Wirtuozzz
28.02.17
✎
13:16
|
(12) Что проверить? Посоветуйте как проверить, я проверю.
|
|||
14
Wirtuozzz
28.02.17
✎
13:19
|
Самое главное что СП тут не говорит внятно что будет найдено:
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>) НайтиПоРеквизиту (FindByAttribute) Синтаксис: НайтиПоРеквизиту(<ИмяРеквизита>, <ЗначениеРеквизита>, <Родитель>, <Владелец>) Параметры: <ИмяРеквизита> (обязательный) Тип: Строка. Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины. <ЗначениеРеквизита> (обязательный) Тип: Произвольный. Значение реквизита, по которому должен выполняться поиск. <Родитель> (необязательный) Тип: СправочникСсылка.<Имя справочника>. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике. <Владелец> (необязательный) Тип: СправочникСсылка.<Имя справочника>. Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике. Возвращаемое значение: Тип: СправочникСсылка.<Имя справочника>. Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым значением реквизита, то будет возвращена пустая ссылка. Описание: Осуществляет поиск элемента по значению реквизита. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Если существует несколько элементов с указанным значением реквизита, то будет найден только один из них. Для реквизитов типа Строка поиск осуществляется по точному соответствию. ------------------- Будет найден только 1, но блин как он его определит первый этот |
|||
15
mistеr
28.02.17
✎
13:30
|
(14) Поведение системы в этом случае неопределено, вот что говорит СП. Хочешь определенности — приложи усилия.
Если же интересно именно "как работает", возьми профайлер и посмотри план запроса. В следующем релизе может поменяться. |
|||
16
Wirtuozzz
28.02.17
✎
13:40
|
(15) можно ссылку на то где описано как это сделать?
|
|||
17
mistеr
28.02.17
✎
14:06
|
(16) Что именно?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |