v7: НайтиПоКоду в справочнике с несквозной нумерацией #584717


#0 by Patrio_O_Muerte
Доброго времени суток. Господа. Есть справочник с нумерацией в пределах подчинения, то есть возможно наличие элементов с одинаковыми кодами. При использовании метода НайтиПоКоду какой именно элемент он вернет?
#1 by ДенисЧ
Если родителя укажешь, то вернёт по родителю. Иначе  - с минимальным ИД
#2 by Patrio_O_Muerte
Не, без родителя. Минимальный ИД - это че? Это по времени создания?
#3 by ДенисЧ
по численному значению :-) Хотя тут я прогнал слегка. Вернуть может всё, что угодно, ибо в SQL не определён порядок выборки, если нет явного указания сортировки. Нужно поставить экскремент и посмотреть на запрос, который 1с генерит при этом...
#4 by Patrio_O_Muerte
Не, это тижило. :) В смысле много времени займет - потом разбираться что к чему :) Спасибо за ответ.
#5 by ДенисЧ
да я про себя говорил :-) Если не забуду, завтра поставлю опыт...
#6 by Patrio_O_Muerte
Если не затруднит отпишись по результату эксперимента:)
#7 by Rie
НайтиПоКоду - какие параметры указаны? Если уникальность стоит в пределах подчинения, то НайтиПоКоду по умолчанию ищет по полному коду.
#8 by Patrio_O_Muerte
Никаких, только код (числовой).
#9 by ДенисЧ
Вот результат профайлинга select * from SC1817(NOLOCK INDEX=CODE) where CODE='    1' order by CODE,ROW_ID То есть действительно, первый по времени создания.
#10 by Patrio_O_Muerte
гг шикарус :)
#11 by Злопчинский
это как??? указываем НафтиПоКоду("007") - то по какому ПОЛНОМУ коду будет поиск?
#12 by Rie
Значит, искомый код будет рассматриваться как полный код элемента справочника - то есть будет найден на верхнем уровне или вообще не найден.
#13 by Rie
"НайтиПоКоду(<?>,); Синтаксис: НайтиПоКоду(<Код>,<ФлагПоиска>) Назначение: Найти элемент справочника по коду. Возвращает: 1 - если действие выполнено; 0 - если действие не выполнено (элемент не найден). Параметры: <Код> - выражение со значением искомого кода, <ФлагПоиска> - флаг поиска (необязателен):  0 - поиск во всем справочнике вне зависимости от родителя;  1 - поиск внутри установленного подчинения (родителя);  2 - поиск по полному коду через разделитель. Значение по умолчанию:  0 - если код уникален во всем справочнике;  2 - если код уникален только в группе. Замечание: Метод  можно использовать только для объектов, созданных функцией СоздатьОбъект".
#14 by Patrio_O_Muerte
+То есть насколько бы бездарно не была бы построена структура БД, 1С всегда нас спасет своей непредсказуемостью :)
#15 by Patrio_O_Muerte
Всем спасибо за участие, тему можно закрывать. Хотя если есть желание холивар какой-нить устроить, я не против, ща тока пива возьму :)
#16 by Rie
Утверждение проверено электроникой: не находит элементы внутри группы. ,,, Справочник Ноыф
#17 by Rie
+ Справочник Новый1 содержал группу с кодом 00002, в которой был элемент с кодом 00001
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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