![]() |
|
Двумерный динамический массив | ☑ | ||
---|---|---|---|---|
0
aceaces
19.04.18
✎
11:21
|
Может кто-нибудь рассказать эту "чудесную" 1сную систему работы с массивами
Создаю двумерный массив Для i=1 По ВсегоСтрок Цикл ДанныеИзЭкселевскогоФайлаЯчейка.Добавить(i); КонецЦикла; Для i=1 По ВсегоКолонок Цикл ДанныеИзЭкселевскогоФайла.Добавить(ДанныеИзЭкселевскогоФайлаЯчейка); КонецЦикла; Но при присваивании например ДанныеИзЭкселевскогоФайла[0][0] = "не важно что"; Сообщить(ДанныеИзЭкселевскогоФайла[0][0]); Сообщить(ДанныеИзЭкселевскогоФайла[1][0]); Сообщить(ДанныеИзЭкселевскогоФайла[2][0]); результат будет 3 строки "не важно что" Может кто-нибудь объяснить почему? |
|||
1
ptiz
19.04.18
✎
11:26
|
(0) А где тут двумерный массив? Больше похоже на вложенный. Причем в ДанныеИзЭкселевскогоФайла вставляется одна и та же ссылка.
|
|||
2
Cool_Profi
19.04.18
✎
11:26
|
Потому что строки нумеруются с 0?
|
|||
3
aceaces
19.04.18
✎
11:36
|
ptiz
Насколько я понял, чтобы создать двумерный массив в 1с надо сделать массив массива, я не прав? Вложенный как раз. Пример с этого форума из книжки Листинг 2.3. Создание многомерного массива ДвумерныйМассив = Новый Массив (2, 8); Листинг 2.4. Создание многомерного массива добавлением элементов ДвумерныйМассив = Новый Массив; МассивВторогоПорядка = Новый Массив (8); ДвумерныйМассив.Добавить(МассивВторогоПорядка); ДвумерныйМассив.Добавить(МассивВторогоПорядка); По-моему у меня тоже самое?? Cool_Profi Что? |
|||
4
Ненавижу 1С
гуру
19.04.18
✎
11:39
|
Для i=1 По ВсегоКолонок Цикл
ДанныеИзЭкселевскогоФайла.Добавить(ДанныеИзЭкселевскогоФайлаЯчейка); КонецЦикла; ты все время добавляешь один и тот же массив |
|||
5
Вафель
19.04.18
✎
11:39
|
у тебя во всех 3х ячейках ссылка на один и тот же массив
|
|||
6
ptiz
19.04.18
✎
11:41
|
(3) Листинг 2.3 - настоящий "двумерный"
2.4 - эмуляция двумерного через одномерный вложенный, причем код - с ошибкой |
|||
7
ptiz
19.04.18
✎
11:46
|
Ну и главный вопрос - зачем тебе двумерный массив, когда таблица значений удобнее? :)
|
|||
8
Вафель
19.04.18
✎
11:52
|
(7) может он с клиента на сервер гоняет
|
|||
9
Eiffil123
19.04.18
✎
11:56
|
(7) удобно обращаться по индексам, например так: [i][j]. Наверно можно использовать для решения каких-нибудь СЛУ.
|
|||
10
aceaces
19.04.18
✎
11:56
|
Народ я понял что создал массив где в каждом элементе ссылка на один и тотже массив2, может я туплю, но как тогда создать двумерный массив? Потому как на мой взгляд мой пример от листинга 2.4 ничем не отличается, там также присваивается две одинаковых ссылки
|
|||
11
Вафель
19.04.18
✎
11:57
|
(10) Массив[0] = Новый Массив(n)
|
|||
12
VladZ
19.04.18
✎
11:58
|
(0) Зачем тебе? Многомерные массивы в 1с не используются.
|
|||
13
Вафель
19.04.18
✎
12:00
|
(12) в смысле не используются?
|
|||
14
VladZ
19.04.18
✎
12:05
|
(13) Обычно используется одномерный массив. Если нужно больше информации: таблица значений или структура.
|
|||
15
aceaces
19.04.18
✎
12:07
|
Вафель
Значит листинг 2.4 неправильный? Чем он отличается от моего? |
|||
16
aceaces
19.04.18
✎
12:08
|
VladZ
С таблицами структурами и деревьями мне неудобно работать очень |
|||
17
ptiz
19.04.18
✎
12:09
|
(15) Если хочешь именно вариант 2.4, то пиши так: ДвумерныйМассив.Добавить(Новый Массив(8));
|
|||
18
VladZ
19.04.18
✎
12:10
|
(0) "Может кто-нибудь рассказать эту "чудесную" 1сную систему работы с массивами"
Создаю двумерный массив Для i=1 По ВсегоСтрок Цикл ДанныеИзЭкселевскогоФайлаЯчейка.Добавить(i); КонецЦикла; Для i=1 По ВсегоКолонок Цикл ДанныеИзЭкселевскогоФайла.Добавить(ДанныеИзЭкселевскогоФайлаЯчейка); КонецЦикла; Чудесная программа сделала ровным счетом то, что ты ее просил. Ты просил чушь - она сделала чушь. |
|||
19
hhhh
19.04.18
✎
12:11
|
(15) вот так должно быть
МассивВторогоПорядка = Новый Массив (8); ДвумерныйМассив.Добавить(МассивВторогоПорядка); МассивВторогоПорядка = Новый Массив (8); ДвумерныйМассив.Добавить(МассивВторогоПорядка); |
|||
20
VladZ
19.04.18
✎
12:11
|
(16) "мне неудобно работать очень" - это твоя проблема.
Сделай так, чтобы было удобно. |
|||
21
VladZ
19.04.18
✎
12:11
|
(0) "мне неудобно работать очень" - расскажи нам, что у тебя за задача такая?
|
|||
22
aceaces
19.04.18
✎
12:14
|
Всем спасибо получилось, правда не понятно как это следовало из 2.4 на да бог с ним)
VladZ В таком тоне общайся с кем нибудь другим |
|||
23
FIXXXL
19.04.18
✎
13:09
|
сделай уже массив структур
ключ - имя колонки, значение - значение колонки и пиши в цикле эти структуры в массив |
|||
24
Сияющий в темноте
19.04.18
✎
22:14
|
двумерный массив,это ComSafeArray может быть,а то,что здесь создают,это массив,содержащий обьекты,каждый из которых массив,но просто еще кто то запихал несколькт раз ссылку на один и тот же обьект,забыв что здесь не визуал басик и массив в 1с это обьект
|
|||
25
Мимохожий Однако
19.04.18
✎
22:32
|
(22) ))
|
|||
26
vde69
19.04.18
✎
22:41
|
в 1с массив это совсем не массив, а настоящий массив это фиксированный массив. Ну а двухмерных массивов в 1с массово нет и массу маслать без масла не масляво :)
|
|||
27
Сияющий в темноте
20.04.18
✎
09:16
|
В 1с массив,это обьект,содержащий коллекцию
самое главное,что ОБЬЕКТ а нормальные массивы,передаваемые в переменной Variant,это значения,при копировании переменной массив копируется,в отличие от обьекта,у которого копируется ссылка |
|||
28
MM
20.04.18
✎
09:30
|
(26) Вообще-то, есть и называются COMSafeArray, хотя это и не совсем 1совский объект.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |