Имя: Пароль:
   
1C
 
Массив в массиве, прокатит или нет?
0 Mihasya
 
21.09.21
13:54
Массив = Новый Массив;
Массив.Добавить(Элемент1);
Массив.Добавить(Элемент2);
Массив.Добавить(Элемент3);

потом в тексте запроса чтото типо: "Элемент в (&Массив)" так канает

а так проканает?
Массив = Новый Массив;
Массив.Добавить(Элемент1);
Массив.Добавить(Элемент2);
Массив.Добавить(Элемент3);
НовыйМассив = Новый Массив;
НовыйМассив.Добавить(Массив);
"Элемент в (&НовыйМассив)"
1 osa1C
 
21.09.21
13:57
(0) ты хоть задачу озвучь, перед тем ка спрашивать про подобные извращения
2 Mihasya
 
21.09.21
14:00
(1) просто стало интересно )) а проверять не охото, может кто точно знает, подскажет
или может надо "Элемент в иерархии (&НовыйМассив)"
3 Галахад
 
21.09.21
14:01
ИМХО, вложенность до 1000 нормально работает. Больше падает.
4 pechkin
 
21.09.21
14:01
нет
5 Сергиус
 
21.09.21
14:01
(2)Если для запроса, то не прокатит.
6 pechkin
 
21.09.21
14:01
придется массивы уплощать (flat) ручками
7 Галахад
 
21.09.21
14:01
8 Mihasya
 
21.09.21
14:04
(7) стало быть работает! ну норм
9 Smit1C
 
21.09.21
14:06
массив в массиве - это матрица ?
10 osa1C
 
21.09.21
14:06
(8) все равно вопрос зачем? если сказано, что вложенность надо ограничивать
11 d4rkmesa
 
21.09.21
14:07
(7) Забавно, спасибо.
(0) Имхо, приятнее в запросе без неочевидной вложенности:
Элемент в (&НовыйМассив1, &НовыйМассив2, ...)
12 Mihasya
 
21.09.21
14:10
(10) вот пристал ))
ну держи, в БП у документа инвентаризация есть процедура заполнения, но она заполняет либо по складу, либо по МОЛ и в том и с том случае в запрос передается массив складов, так вот там есть условие:

    Если ЗначениеЗаполнено(ПараметрыЗаполнения.Склад) Тогда
        
        СписокСкладов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПараметрыЗаполнения.Склад);
        
    Иначе
        
        ЗапросПоСкладам = Новый Запрос;
        ЗапросПоСкладам.УстановитьПараметр("МОЛ", ПараметрыЗаполнения.ОтветственноеЛицо);
        ЗапросПоСкладам.УстановитьПараметр("КонецПериода", ПараметрыЗаполнения.Дата);
        ЗапросПоСкладам.Текст =
        "ВЫБРАТЬ РАЗЛИЧНЫЕ
        |    ОтветственныеЛицаСрезПоследних.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница
        |ИЗ
        |    РегистрСведений.ОтветственныеЛица.СрезПоследних(&КонецПериода, ) КАК ОтветственныеЛицаСрезПоследних
        |ГДЕ
        |    ОтветственныеЛицаСрезПоследних.ФизическоеЛицо = &МОЛ";
        
        СписокСкладов = ЗапросПоСкладам.Выполнить().Выгрузить().ВыгрузитьКолонку("СтруктурнаяЕдиница");
        
    КонецЕсли;
    
    Возврат СписокСкладов;

так вот, чтобы много не переписывать хочу в эту процедуру, в переменную ПараметрыЗаполнения.Склад передавать свой массив складов...
13 MyNick
 
naïve
21.09.21
14:19
СП украли?

Новый Массив(<КоличествоЭлементов1>,...,<КоличествоЭлементовN>)
Параметры:

Создает массив из указанного количества элементов. Если задано несколько параметров, то будет создан массив, элементами которого являются массивы (и т.д. в зависимости от количества параметров). Фактически конструктор позволяет создать массивы массивов, которые могут являться аналогом многомерного массива.
14 ДенисЧ
 
21.09.21
14:20
(13) Читать украли? Человек спрашивал про запрос.
15 MyNick
 
naïve
21.09.21
14:23
(14) человек в заголовке спрашивал "Массив в массиве, прокатит или нет?" - ответ в 13.
Пусть учится задавать вопросы.
16 fisher
 
21.09.21
14:28
(15) Нормально человек спросил. Всем бы так.
17 ДенисЧ
 
21.09.21
14:29
(15) "потом в тексте запроса чтото типо: "Элемент в (&Массив)""

Ну явно читать украли...
18 Mihasya
 
21.09.21
14:29
(13) вопрос был не в том КАК создать массив массивов!
19 spiller26
 
21.09.21
15:02
(9) Я думаю да. МАТРИЦА
20 fisher
 
21.09.21
15:15
(19) Может быть матрица. Но не обязательно.
21 osa1C
 
22.09.21
07:27
(18) что вышло в итоге?
22 Mihasya
 
22.09.21
11:12
(21) все работает как надо