Имя: Пароль:
1C
1С v8
Двумерный массив с заранее неизвестным количеством элементов
,
0 ligatr
 
07.02.19
16:37
Как создать массив с заранее неизвестным количеством элементов?
1 sieben
 
07.02.19
16:40
Переменная = Новый Массив;

Так-то!
2 InosDev
 
07.02.19
16:41
МассивСЗаранееНеизвестнымКоличествомЭлементов = Новый Массив;
3 OldCondom
 
07.02.19
16:44
Эх вы.
ДвумерныйМассивСЗаранееНеизвестнымКоличествомЭлементов = Новый Массив(Новый Массив);
4 ligatr
 
07.02.19
16:45
Этот вариант походит для одномерного массива.
Если попробовать вставлять длементы с двумя интедксами , то система пишет "Индекс находится за границами массива", а если сделать так Переменная = Новый Массив (10, 10) то все работает.
Мне нужно чтобы было как-то так Массив (, 10)
5 OldCondom
 
07.02.19
16:48
кажется в (3) лохонулся. Вот вам и компетенция 1Сников...
6 palsergeich
 
07.02.19
16:48
(4) А вы точно в 1с хотите многомерные массивы?)
Наверное это настолько не нужно что никто об этом даже не подумал.
Если не секрет, в рамках какой задачи это потребуется?
7 palsergeich
 
07.02.19
16:49
Просто конструктор по количеству элементов таки ждёт число и безразмерный вариант на этапе проектирования не рассматривался скорее всего.
8 ligatr
 
07.02.19
16:50
Давайте я опиши задачу полностью может ее лучше делать не через массив.
- Есть Excel-файл. Из него надо импортировать данные в табличную часть документа (примерно половина полей).
- Для того чтобы сформировать втору часть ТЧ мне необходимо при помощи запроса "присобачить" данные из связанных данных.
По отдельности все работает, а вот слить все вместе я хотел через массив.
Есть ли другие варианты решения?
9 Вафель
 
07.02.19
16:50
(4) а смысл? все равно память не выделишь нужную сразу
10 ДенисЧ
 
07.02.19
16:51
(8) Таблица значений чем не подхдит?
11 Михаил Козлов
 
07.02.19
16:52
Заведите таблицу значений с 10-ю колонками.
12 Mikeware
 
07.02.19
16:52
(8) таблицу значений украли?
13 ligatr
 
07.02.19
16:53
C Таблицей значений еще не работал
14 ДенисЧ
 
07.02.19
16:53
(13) У тебя есть отличный повод пополнить свои знания
15 OldCondom
 
07.02.19
16:53
(10) Тем, что ТЗ обрабатывается на сервере, где может не быть excel
16 SleepyHead
 
гуру
07.02.19
16:55
(2) (3) Эх вы!

ДвумерныйМассивСЗаранееНеизвестнымКоличествомЭлементовИмениНуралиеваБорисаГеоргиевича = Новый Массив(Новый Массив);
17 SUA
 
07.02.19
16:55
(15) см (8) - запрос не работает на клиенте и двумерный массив все равно не съест
18 OldCondom
 
07.02.19
16:58
(16) ошибку выдаст) В параметр нужен фиксированный массив или пустое значение.
19 Михаил Козлов
 
07.02.19
17:01
(15) Можно и без Экселя через табличный документ.
20 SleepyHead
 
гуру
07.02.19
17:01
(18)

#ВыполнитьВоЧтоБыТоНиСтало!
21 azernot
 
07.02.19
17:04
КоличествоЭлементовПервогоИзмерения = 10;
КоличествоЭлементовВторогоИзмерения = 10;

Массив = Новый Массив;
//Заполнение
Для А = 0 по КоличествоЭлементовПервогоИзмерения Цикл
    Массив.Добавить(Новый Массив);
    Для Б = 0 по КоличествоЭлементовВторогоИзмерения Цикл
        Массив[А].Добавить(А * Б)
    КонецЦикла;
КонецЦикла;


Для А = 0 по КоличествоЭлементовПервогоИзмерения Цикл
    Для Б = 0 по КоличествоЭлементовВторогоИзмерения Цикл
        Сообщить(Массив[А][Б]);
    КонецЦикла;
КонецЦикла;
22 Lama12
 
07.02.19
17:09
(20) Ну вот. Пошли спойлеры.
23 Конструктор1С
 
07.02.19
17:13
Тут вам не "крутые" языки программирования, где таблицу принято изображать двумерным массивом. В 1с есть ТаблицаЗначений.
24 Конструктор1С
 
07.02.19
17:15
(15) таблица формы решит эту проблему
25 spiller26
 
07.02.19
17:24
ДвумерныйМассив = Новый Массив(2, 8);
26 Lama12
 
07.02.19
17:24
(0) Если есть такое желание работать именно с массивом, то что мешает использовать одномерный как двумерный?
Создай структуру в которой будешь хранить текущую размерность и сам массив. Напиши API  для работы с такой структурой. Любой многомерный массив можно представить в виде одномерного. Задача-то для начинающего программиста ООП. Классы то поди создавать умеешь в том же C++?
27 spiller26
 
07.02.19
17:32
(25) Короче вот тебе
https://helpf.pro/faq8/view/1497.html
28 spiller26
 
07.02.19
17:35
(16)
    ДвумерныйМассив = Новый Массив;
    МассивВторогоПорядка = Новый Массив;
    ДвумерныйМассив[1][5] = "1";
    
    Значение = ДвумерныйМассив[1][5];
    Значение2 = ДвумерныйМассив.Получить(1).Получить(5);  

Если выйдешь за грань то ругнется, незаполнено = Неопределено.
29 Сияющий в темноте
 
07.02.19
23:06
в чем проблема?
поступим как в регистре сведений-таблица из трех колонок,в первой первый индекс,во второй-второй,а в третьей значение,индексирует по первым двум и у вас двумерный произвольный массив.
30 Скиурус
 
07.02.19
23:14
Массив массивов уже отменили?
31 Salimbek
 
07.02.19
23:19
(29) Если с такой стороны зайти, то (навеяно (21) )...
КоличествоЭлементовПервогоИзмерения = 10;
КоличествоЭлементовВторогоИзмерения = 10;

Массив = Новый Соответствие;
//Заполнение

Для А = 0 по КоличествоЭлементовПервогоИзмерения Цикл
    Для Б = 0 по КоличествоЭлементовВторогоИзмерения Цикл
        Массив.Вставить(""+А+";"+Б,А * Б);
    КонецЦикла;
КонецЦикла;


Для А = 0 по КоличествоЭлементовПервогоИзмерения Цикл
    Для Б = 0 по КоличествоЭлементовВторогоИзмерения Цикл
        Сообщить(Массив[""+А+";"+Б]);
    КонецЦикла;
КонецЦикла;
32 Сияющий в темноте
 
07.02.19
23:23
можно в соответствие или структуру присать ключ,однозначно сформированный из двух индексов.

просто,массив массивов,это набор обьектов,а таблица-это один обьект,и с ней работать проще.

опять же массив с элементами 1,10 и 2,5 через массив массивов не получается,т.к.дофига элементов придется в Неопределено установить,а в таблице будет две строки.
33 VladZ
 
07.02.19
23:41
(0) Зачем?