Имя: Пароль:
1C
 
НайтиПоКоду() так и должно отрабатывать?
0 MNS_Ротерта
 
18.11.08
15:26
Справочники.Валюты.НайтиПоКоду("899") результат пустая ссылка
Справочники.Валюты.НайтиПоКоду("810010000000000") результат ссылка руб
Справочники.Валюты.НайтиПоКоду("810") результат ссылка руб

Платформа 1С:Предприятие 8.1 (8.1.11.67)
Мне всегда казалось что код должен быть однозначно задан. Независимо от того, сколько задано символов в коде справочника. Кто нибудь задавался этим вопросом?
1 Scooter
 
18.11.08
15:28
в 1С:Предприятие 8.0 (8.0.18.2) такаяже фигня
2 Fragster
 
гуру
18.11.08
15:29
НайтиПоКоду (FindByCode)
Синтаксис:
НайтиПоКоду(<Код>, <Поиск по полному коду>, <Родитель>, <Владелец>)
Параметры:
<Код> (обязательный)
Тип: Число, Строка. Искомый код.
Строка или число в зависимости от настроек справочника в конфигураторе.
<Поиск по полному коду> (необязательный)
Тип: Булево. Определяет режим поиска по полному коду. Истина - искомый код следует задавать в виде строки, состоящей из последовательности кодов по уровням справочника, разделенных символом "/".
Значение по умолчанию: Ложь
<Родитель> (необязательный)
Тип: СправочникСсылка. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
<Владелец> (необязательный)
Тип: СправочникСсылка. Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>, Неопределено. Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка.
Если код не задан, то будет возвращено Неопределено.
Описание:
Осуществляет поиск элемента по его коду.
Пример:
СтрокаКода = "840";
Валюты = Справочники.Валюты;
НайденнаяСсылка = Валюты.НайтиПоКоду(СтрокаКода);
Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
   Сообщить("Валюты """ + СтрокаКода + """ еще нет");
КонецЕсли;
3 Scooter
 
18.11.08
15:29
ищет по первым трем символам (по длине кода)
4 Filippov
 
18.11.08
15:30
См Синтакс-Помощник:
НайтиПоКоду (FindByCode)
Синтаксис:
НайтиПоКоду(<Код>, <Поиск по полному коду>, <Родитель>, <Владелец>)
Параметры:
<Код> (обязательный)
Тип: Число, Строка. Искомый код.
Строка или число в зависимости от настроек справочника в конфигураторе.
<Поиск по полному коду> (необязательный)
Тип: Булево. Определяет режим поиска по полному коду. Истина - искомый код следует задавать в виде строки, состоящей из последовательности кодов по уровням справочника, разделенных символом "/".
Значение по умолчанию: Ложь
<Родитель> (необязательный)
Тип: СправочникСсылка. Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
<Владелец> (необязательный)
Тип: СправочникСсылка. Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>, Неопределено. Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка.
Если код не задан, то будет возвращено Неопределено.
Описание:
Осуществляет поиск элемента по его коду.
Пример:
СтрокаКода = "840";
Валюты = Справочники.Валюты;
НайденнаяСсылка = Валюты.НайтиПоКоду(СтрокаКода);
Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
   Сообщить("Валюты """ + СтрокаКода + """ еще нет");
КонецЕсли;
5 Fragster
 
гуру
18.11.08
15:31
а если длина передаваемой строки больше, чем длина кода в конфигураторе - то она обрезается до длины кода в конфигураторе...
6 Filippov
 
18.11.08
15:31
Прошу прощения - пока копипастил, ответ уже был дан
7 MNS_Ротерта
 
18.11.08
16:00
(5) Меня как раз это и интересует. Я помню структуру параметров. 2,3,4 параметр не имеют в моем примере никакого значения так что их можно опустить. Просто меня допущение смущает немного "а если длина передаваемой строки больше, чем длина кода в конфигураторе - то она обрезается до длины кода в конфигураторе...". Может оно конечно и логично, но с другой стороны если пытаться что - то искать изначально неверной длины, то можем получить неверный элемент и платформа даже не матюкнется. Мне кажется что 1Снегам логичнее было бы сделать жесче контроль кода, хотя им виднее...
8 Fragster
 
гуру
18.11.08
16:01
а если код - числовой - то если длина 3, то искать будет по 999 ;)
9 vde69
 
18.11.08
16:03
(7) обьектные функции оставлены скорее для совместимости, ими не рекомендуеться пользоваться, по этому притензии не принимаються
10 MNS_Ротерта
 
18.11.08
16:19
(9) Согласен. Спасибо.
2 + 2 = 3.9999999999999999999999999999999...