Имя: Пароль:
1C
1С v8
Получить индекс массива в выборке
0 Vladal
 
25.06.12
15:17
Есть массив и обход элементов массива циклом Для каждого.
Как узнать индекс массива?

Для каждого ЭлементМассива Из МассивЭлементов Цикл
...

Отладчик говорит:
Элемент.Индекс - ошибка
Элемент.Индекс() - ошибка

Думаю, переписать этот цикл оператором
Для Индекс = 0 ПО МассивЭлементов.Количество()-1 Цикл
ЭлементМассива = МассивЭлементов[Индекс]
....

А чтобы не переписывать, нет способа?
1 John83
 
25.06.12
15:18
а ЭлементМассива не пробовал? :)
2 Vladal
 
25.06.12
15:20
мне надо получить именно номер этого индекса.
Примерно, как НомерСтроки приобходе табличной части документа
3 Vladal
 
25.06.12
15:21
упс.. .в (0) правильно так:

Как узнать индекс текущего элемента массива?
4 izekia
 
25.06.12
15:22
(3) никак
5 del123
 
25.06.12
15:22
Массив (Array)
Найти (Find)
Синтаксис:

Найти(<Значение>)
Параметры:

<Значение> (необязательный)

Тип: Произвольный.
Искомое значение.
Возвращаемое значение:

Тип: Число; Неопределено.
Если элемент найден, возвращается его индекс. Если элемент не найден, возвращается Неопределено.
Описание:

Выполняет поиск элемента в массиве.
6 izekia
 
25.06.12
15:23
да, можно через найти, но должна быть уверенность в том, что элементы уникальны
7 del123
 
25.06.12
15:24
а разве каждый элемент не уникален?
8 izekia
 
25.06.12
15:24
+ потеря в производительности, такая что время потраченное на переписывание окупится
9 izekia
 
25.06.12
15:24
(7) чо?
10 del123
 
25.06.12
15:25
(9) В массиве каждый элемент уникален, разве не так? Соответственно, если даже элемент будет заполнен одинаковыми данными, Найти() все равно покажет нужный элемент?
11 del123
 
25.06.12
15:26
А хотя это больше к списку знацений да таблицам подходит..
12 izekia
 
25.06.12
15:26
массив - это просто набор значений не отягченный никакими дополнительными вещами, как например тз, там действительно каждая строка однозначно идентифицируется

у массива же элемент коллекции = значение
13 izekia
 
25.06.12
15:27
(10) нет, если ты внимательно посмотришь на описание метода, то там ты увидишь, что осуществляется поиск значения
14 Vladal
 
25.06.12
15:28
(6) Да, элементы уникальны. Попробую способом, как в (5)
15 izekia
 
25.06.12
15:31
(14) ты подумай о том, что тебе нужно пару строчек переписать, чтобы все заработало
а использование "найти" в данном случае - это откровенное быдлокодерство и каждый раз будет производиться поиск в массиве
проще уж тогда ввести локальный счетчик, хотя тоже решение загрязняющее код, но решение намного более оптимальное, чем через "найти"
16 Бледно Золотистый
 
25.06.12
15:32
Смысл, если это внутри цикла? Делай как хотел в (0).
17 izekia
 
25.06.12
15:32
будь мужиком, пиши код так, чтобы слово одинэсник не использовалось как ругательство
18 Snorkler
 
25.06.12
15:34
(14) И что вернется для значения=3 в массиве
1
3
2
3
?
19 Vladal
 
25.06.12
15:34
Переписал цикл в Для .. По...
20 Vladal
 
25.06.12
15:34
(18) х.з. некогда, пеерписал
21 Vladal
 
25.06.12
15:35
Всем спасибо, вопрос решен своим же способом из (0).
22 izekia
 
25.06.12
15:35
(18) он же написал про уникальность)
23 Vladal
 
25.06.12
15:38
(18) В моём случае элементы - то идентификаторы вида

Индекс    Идентификатор
0    "d41d8cd98f00b204e9800998ecf8427e"
1    "dc1b5eea-97a6-4820-a5c5-5af6fafd7202@mail.ru"
2    "4559c307-23a9-4f2d-b3a5-f4729aaa51af@mail.ru"
3    "6a8719b7-34b4-4025-9b7d-5360555006b4@mail.ru"
4    "9e17e22c-1bf3-4632-b73e-d7cbadf4e6a4@mail.ru"
5    "de7528c3-6a27-42e7-8760-99dd2f73c127@mail.ru"
6    "f5a86164-3a5e-427a-a9d5-7c059758d244@mail.ru"
7    "f6658439-84d8-40e3-9cfb-7c7039af65d3@mail.ru"
8    "532e7677-5611-40f8-b748-4e4db3d40cc9@mail.ru"
9    "c75d439d-8a51-4c5c-8441-4e06c4015fe4@mail.ru"
10    "8a257ed8-2235-4cf1-ac22-a008d3e7e449@mail.ru"
11    "b6c23b11-9579-45be-a05f-636998276de0@mail.ru"
12    "02725b58-b838-495b-8132-95a45d3a4226@mail.ru"
13    "3917c8e5-bad9-41f5-80d8-21df7139e244@mail.ru"
14    "adb6dfeb-75bf-4643-86d4-e84010c75ccd@mail.ru"
15    "c46c0f1f-bf57-410a-ac3b-44da97da7615@mail.ru"
16    "9e7e01f6-6b56-47ee-9b21-460a18e46d06@mail.ru"
17    "8765d09d-2717-45d3-8180-ee31eca81f79@mail.ru"
18    "9bdaebc9-6d5c-4487-8d17-456c93a33e27@mail.ru"
19    "f20b61ee-1258-402f-9a66-6c91f3b9d506@mail.ru"
20    "79296a15-cca6-4eb7-9dcf-42fac44210fc@mail.ru"
21    "52f5c372-b920-4ff6-996a-04499c21cc7d@mail.ru"
22    "99710bd1-05ed-4fd1-9389-a4c5f673f3ff@mail.ru"
23    "4feaee33-3f54-4a00-b89c-75b0f6197dc8@mail.ru"
24    "2b39b83d-33ea-4674-8278-8e98233c0b25@mail.ru"
25    "540f6150-4adc-4b61-8ce8-c3628ce86f48@mail.ru"
26    "37add31d-d60a-47f9-a994-aee2af9f41e6@mail.ru"
27    "4fcc3ec1-9cfc-4b5b-ba1d-60e7877bbd92@mail.ru"
28    "0baf1ebc-0a7a-430c-8589-ebce1dc11660@mail.ru"
29    "c6e63656-ce30-44c4-b2d5-c5f72e645b2e@mail.ru"
30    "873b15d0-ff6a-42a6-b5dd-7a502e97d239@mail.ru"
31    "75f780b5-30ea-47df-a94f-e309e1d9664a@mail.ru"
32    "2c8fd4e1-5a2b-4919-9679-abd0aae88977@mail.ru"
33    "ec667557-ca26-488b-a8fa-a99b8ca73a35@mail.ru"
34    "643ae666-3cb2-4966-b37f-a6a285f702f5@mail.ru"
35    "3d681216-8179-42c8-a019-7de97b44ee23@mail.ru"
36    "c24280ed-fae7-45d6-97ed-52ba8621162a@mail.ru"
37    "0ba7ae65-f1a7-49b8-adf4-2db34fe5f02b@mail.ru"
38    "42e87ee2-80d2-4e50-b534-df7000f52004@mail.ru"
39    "1f7208a5-5283-4cfa-98b8-6ad1b86addd7@mail.ru"
40    "01222004-9fda-4fcc-9d83-536b44b61fca@mail.ru"
41    "c809c510-36b8-4ddb-9d80-eb52bb9eddaf@mail.ru"
42    "74f00ac0-7d8b-4e6a-932c-aba0882c3bce@mail.ru"
43    "5b5ec0a0-092c-490a-bdad-37d9bf05e36c@mail.ru"
44    "fea40d07-4221-4cea-9adc-e29818144241@mail.ru"
45    "9aef0de4-065b-4237-b312-5fb1f4a9ceac@mail.ru"