|
Странный баг с массивом. Ø (Волшебник 18.02.2016 13:42) | ☑ | ||
---|---|---|---|---|
0
ammo-sov
18.02.16
✎
11:48
|
Здравствуйте!
Возникла ситуация, при котором необходимо искать в массиве (методом найти(значение), которое возвращает 1, если элемент поиска найден в массиве и наоборот) определенные данные. *версия платформы 8.3.5.1383 После некоторых тестов свежеиспеченного кода оказалось, что в одном случае наш метод поиска хромает. Не буду томить огромным кодом, а вставлю только сымитированный код: Массив = Новый Массив(); Массив.Добавить("Шаблон 1-2"); Массив.Найти("Шаблон 1-2"); Результатом, на первый взгляд правильного кода, должна стать заветная 1, но приходит 0. Так вот, встречались ли у кого-нибудь подобные ситуации. Конечно, обойти эту неприятность не составляет труда другими методами, но все же интересно, что вы думаете? |
4 21 27 |
||
1
Волшебник
модератор
18.02.16
✎
11:49
|
Если элемент найден, возвращается его индекс. Если элемент не найден, возвращается Неопределено.
|
|||
2
Волшебник
модератор
18.02.16
✎
11:50
|
элементы массива индексируются с 0
|
|||
3
Волшебник
модератор
18.02.16
✎
11:50
|
Неопределено <> 0
|
15 |
||
4
Ёпрст
18.02.16
✎
11:50
|
(0) И ? Индекс=0, че не устраивает ?
Индексы коллекций, в снеговике, всегда с 0 начинаются |
|||
5
Господин ПЖ
18.02.16
✎
11:51
|
>Конечно, обойти эту неприятность не составляет труда другими методами
или начни читать СП или увольняйся |
9 14 |
||
6
Ёпрст
18.02.16
✎
11:51
|
Чорт, олени не кормлены
|
13 14 |
||
7
ks_83
18.02.16
✎
11:55
|
ветку в юмор
|
|||
8
ammo-sov
18.02.16
✎
12:02
|
Типичный русский форум, да Ёпрст?
Всем остальным спасибо, разобрался. Дело было в том, что я проверял в цикле на существование (ifelse) строки в массиве. И когда приходил первый элемент с индексом 0, то он выражался в конструкции, как ложь и не проходил проверку. |
9 13 |
||
9
DDwe
18.02.16
✎
12:04
|
||||
10
ammo-sov
18.02.16
✎
12:09
|
DDwe, ясно.
|
11 |
||
11
DDwe
18.02.16
✎
12:11
|
(10) Хорошо. Видимо шанс есть.
|
|||
12
el7cartel
18.02.16
✎
12:18
|
пожалуй тут все потеряно!!!шансов нет!!!
|
|||
13
Ёпрст
18.02.16
✎
12:21
|
||||
14
Ёпрст
18.02.16
✎
12:22
|
||||
15
ObjectRelation Model
18.02.16
✎
12:22
|
(3) кстати да
NULL <> 0 |
|||
16
ObjectRelation Model
18.02.16
✎
12:23
|
В большинстве языков Find, если не нашла элемент возвращает -1, но 1С пошла своей тропой
|
17 |
||
17
Господин ПЖ
18.02.16
✎
12:26
|
(16) там тоже принято кодировать не смотря в msdn и прочие мануалы?
|
19 |
||
18
Господин ПЖ
18.02.16
✎
12:27
|
вопрос не в языке как обычно. а в банальном рукож.пии
|
|||
19
ObjectRelation Model
18.02.16
✎
12:28
|
(17) а причем тут это? просто есть общая культура, когда поведение предсказуемо, поэтому переход от языка к языку хоть немного легче
|
20 |
||
20
DDwe
18.02.16
✎
12:32
|
(19) Фигню вот сейчас городишь. (1С не оправдываю :))
|
|||
21
los_hooliganos
18.02.16
✎
12:45
|
(0) Глюк из-за того что размерность массива не указана. А раз размерность null, то метод Найти ничего и не находит.
Прежде чем добавлять увеличь размер массива. |
22 23 |
||
22
ObjectRelation Model
18.02.16
✎
12:47
|
(21) это сейчас что было?
|
24 |
||
23
Drac0
18.02.16
✎
12:48
|
(21) Чо? Ты сейчас про 1С?
|
24 |
||
24
los_hooliganos
18.02.16
✎
12:58
|
25 26 |
|||
25
Ёпрст
18.02.16
✎
12:59
|
(24) размерность массива только в клюшках задавать надо было, в снеговике - не трэба
|
|||
26
ObjectRelation Model
18.02.16
✎
12:59
|
(24) это ты прямо как в точку )))
|
|||
27
rs_trade
18.02.16
✎
13:08
|
(0) У меня такая же фигня. Этот странный глюк на всех версиях платформы. Писать в 1С надо.
|
|||
28
DailyLookingOnA Sunse
18.02.16
✎
13:41
|
Массив.Вставить(2000000) было бы куда лучше.
И сразу индекс бы был известен. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |