Имя: Пароль:
1C
1С v8
Поиск элемента справочника по коду.
,
0 kanalex
 
10.09.13
17:18
Код = "00000000922";
Контрагент = Справочники.Контрагенты.НайтиПоКоду(Код);

Почему такой код находит и возвращает ссылку на элемент справочника с кодом "000000009"?

Что это? Глюк платформы? или мой глюк?
Я не понимаю:(
1 ДенисЧ
 
10.09.13
17:19
Сколько длина кода в конфигураторе задана?
2 kanalex
 
10.09.13
17:19
(1) 11
3 Maxus43
 
10.09.13
17:21
Контрагент = Справочники.Контрагенты.НайтиПоКоду(Код, Истина);
4 Maxus43
 
10.09.13
17:22
хотя не, глюк
5 Maxus43
 
10.09.13
17:22
запросом ищи, всё остальное ересь :)
6 Тролль главный
 
10.09.13
17:22
(0) а почему ты так решил?
7 kanalex
 
10.09.13
17:23
(3) это поиск по полному коду, включая коды родителей, насколько я помню
8 fisher
 
10.09.13
17:23
Фигня какая-то...
Может и есть такой глюк.
В нормальных базах ведь не бывает кода "000000009" при длине кода 11.
9 kanalex
 
10.09.13
17:24
(6) проверил в отладчике:)
10 kanalex
 
10.09.13
17:24
(5) запросом - да....
придется
11 Rie
 
10.09.13
17:24
(0) А длина кода - какая?
12 kanalex
 
10.09.13
17:24
(8) код поправлен руками, судя по всему
13 kanalex
 
10.09.13
17:25
(11) 11, я уже ответил
14 Rie
 
10.09.13
17:25
(8) Дык это не в _базе_. Код у него - переменная. Значение которой...
15 kanalex
 
10.09.13
17:25
(14) 000000009 - это в базе
16 Тролль главный
 
10.09.13
17:26
Код это ведь реквизит у тебя? его длина какая?
17 wms
 
10.09.13
17:26
(9)зачем отладчик? может глючит
в сервис-табло введи
Справочники.Контрагенты.НайтиПоКоду("00000000922") и посмотри значение
18 kanalex
 
10.09.13
17:27
(17) ввел. получил элемент с кодом 000000009
19 wms
 
10.09.13
17:27
код скопируй у элемента
20 wms
 
10.09.13
17:27
Справочники.Контрагенты.НайтиПоКоду("00000000922").код
а так
21 kanalex
 
10.09.13
17:27
(16) в конфигураторе длина кода 11
22 kanalex
 
10.09.13
17:28
тестирую базу...
23 Rie
 
10.09.13
17:28
(13) Есть особенность одна при поиске НайтиПоКоду... Там параметров больше, чем один. Посмотри, что обозначают остальные.
24 Euguln
 
10.09.13
17:29
(21) на всякий случай, а в конфигурации БД? Демоническое обновление было? Код 00000000922 в справочнике можно задать?
25 Тролль главный
 
10.09.13
17:29
(21) найди отличия в следующих алгоритмах:

Код = "00000000922";
Контрагент = Справочники.Контрагенты.НайтиПоКоду(Код);

и:

Контрагент = Справочники.Контрагенты.НайтиПоКоду("00000000922");
26 kanalex
 
10.09.13
17:29
(23) сморел. второй отвечает за поиск по полному коду, включая коды всех родителей
27 wms
 
10.09.13
17:29
+(23)кстати да что за справочник может подчиненный
28 kanalex
 
10.09.13
17:30
Справочник Контрагенты в БП 2.0
29 wms
 
10.09.13
17:30
индексы пож полители, переиндексируй
30 kanalex
 
10.09.13
17:31
(29) тестирую базу...
31 Euguln
 
10.09.13
17:31
(28) в типовой длина кода - 9
32 wms
 
10.09.13
17:31
проверь с пом. запроса что возвращает
33 kanalex
 
10.09.13
17:32
(32) тестирование закончится - проверю
34 kanalex
 
10.09.13
17:32
(31) может быть...
35 Classic
 
10.09.13
17:34
(25)
Прикольно :)
(0)
А где ты ентот код исполняешь?
36 kanalex
 
10.09.13
17:35
в обработке внешней...
Знаю, что поиск по коду не слишком надежен, но на сегодня постановка задачи такова.
37 Classic
 
10.09.13
17:36
(36)
В обработке нет случайно реквизита Код?
38 kanalex
 
10.09.13
17:37
(37) нет:)
В консоли кода тоже находит не тот элемент
39 Glenas
 
10.09.13
17:37
(31) Тогда как был создан код с длинной 11? Может быть длинна была изменена после?
40 Classic
 
10.09.13
17:38
(38)
Ну тогда индексы слетели
41 kanalex
 
10.09.13
17:38
(40) индексируем...
42 kanalex
 
10.09.13
17:39
(39) может и после... кто знает?:)
только все эти вопросы не о том.
43 Rie
 
10.09.13
17:41
(42) О том. Очень сильно о том. "1С", к слову, очень своеобразно относится к хвостовым пробелам в наименованиях и в кодах. И к типу кода, кстати, тоже.
44 kanalex
 
10.09.13
17:41
(29) тестирование базы не помогло
45 Glenas
 
10.09.13
17:42
(42) Если попробовать с другим кодом и Спр?
46 kanalex
 
10.09.13
17:44
(45)
а = Справочники.Контрагенты.НайтиПоКоду("00000000122").код

возвращает 000000001
47 Euguln
 
10.09.13
17:46
а тупо вбить код "00000000122" в справочник можно?
48 kanalex
 
10.09.13
17:49
(0) аааа:)
вечер:)
длина кода 9....
11 в другом справочнике
49 Glenas
 
10.09.13
17:49
(47) А поле ввода "Код" в Форме Элемента какую длину имеет, тип значения какой
50 Glenas
 
10.09.13
17:50
(48) С этого и надо было начинать
51 ДенисЧ
 
10.09.13
17:50
(50) Я с этого начала, а ТС начал мутить воду...
52 kanalex
 
10.09.13
17:50
сорри:)
2 + 2 = 3.9999999999999999999999999999999...