Вход | Регистрация
 

Массив в массиве, прокатит или нет?

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

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

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

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

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

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

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

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


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.