![]() |
![]() |
![]() |
|
Как поместить результат запроса в двухмерный массив | ☑ | ||
---|---|---|---|---|
0
saf112
15.12.11
✎
16:52
|
Здравствуйте.
Суть в том, что мне нужно вывести в эксель результат запроса, вида "Номер опоры, Тип опоры". Я пытаюсь заполнить массив результатами выборки, перевести его в COMSafeArray и вывести в Range() на листе. Проблема в том, что массив (2, н) - не создается. А размерности я не знаю, этот код обернут еще в один цикл и прогоняется много раз. В общем задача вот в чем - я обхожу все ЛЭП (Линии электро передач) и для каждой из них печатаю паспорт в эксель. в частности в этом паспорте есть раздел с опорами - их у каждой линии множество, и я вот таким вышеописанным образом пытаюсь их вывести.
Вот если че полный код - он не такой и большой
|
|||
1
Defender aka LINN
15.12.11
✎
16:53
|
Я может кого сейчас опечалю, но в 1С массивы одномерные.
|
|||
2
saf112
15.12.11
✎
16:57
|
тут же на мисте встретил такой код, с указанием того, что он рабочий:
то есть, не такие они и одномерные) |
|||
3
Fish
гуру
15.12.11
✎
17:00
|
(1) Да неужели? :))) Читаем и удивляемся:
А.П. Габец и Д.И. Гончаров (под редакцией М.Г. Радченко). "1С:Предприятие 8.1. Простые примеры разработки" Как создать многомерный массив? Массив является линейной динамической коллекцией с произвольным типом значений. Поэтому значениями массива могут выступать другие массивы. То есть создание массива массивов и решает задачу создания многомерного массива. Это можно делать при использовании конструктора массива (листинг 2.3) или в процессе добавления очередных элементов к массиву (листинг 2.4). Листинг 2.3. Создание многомерного массива ДвумерныйМассив = Новый Массив (2, 8); Листинг 2.4. Создание многомерного массива добавлением элементов ДвумерныйМассив = Новый Массив; МассивВторогоПорядка = Новый Массив (8); ДвумерныйМассив.Добавить(МассивВторогоПорядка); ДвумерныйМассив.Добавить(МассивВторогоПорядка); И в том и в другом случае мы решим задачу создания двумерного массива размерностью 2х8. Чтение и запись значений такого массива можно производить посредством директивного указания индексов (листинг 2.5) или при помощи метода Получить() (листинг 2.6). Листинг 2.5. Чтение массива с указанием индексов элемента Значение = ДвумерныйМассив[2][5]; Листинг 2.6. Чтение массива с помощью метода Получить() Значение = ДвумерныйМассив.Получить(2).Получить(5); Хотелось бы еще раз отметить, что создание массива определенной размерности конструктором ограничивает только количество возможных к заполнению значений массива, но не препятствует добавлению новых значений, в качестве которых могут выступать массивы произвольной размерности. |
|||
4
Fish
гуру
15.12.11
✎
17:01
|
+(3) А еще инженер знаний. Стыдно должно быть :)))
|
|||
5
saf112
15.12.11
✎
17:05
|
(3) то есть, мне просто юзать "Добавить"? сейчас нет возможности попробовать, но похоже на решение, спасибо)
|
|||
6
acsent
15.12.11
✎
17:10
|
(1) ты с 77 попутал
|
|||
7
Defender aka LINN
15.12.11
✎
17:12
|
(6) Может быть, может быть... Все равно яя ими не пользовался :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |