Имя: Пароль:
1C
1С v8
Добавить в массив в одну строку - две колонки
,
0 Nzzzz
 
07.08.20
13:12
Доброго времени суток!
Есть таблица значений "МояТЗ".
В ней содержится 3 строки.
Колонок - много.
Мне нужно только ДВЕ колонки добавить в массив"Колонка1" и "Колонка2".
Я делаю так:

МойМассив = Новый Массив;
Для каждого Кол из МояТЗ цикл
    МойМассив.Добавить(Кол.Колонка1);
        МойМассив.Добавить(Кол.Колонка2);
КонецЦикла;
Возврат МойМассив;

Но получается не то.
Получается что в "МояТЗ" у меня было 3 строки.
А в "МойМассив" - уже 6.
То есть "Колонка1" и "Колонка2" - добавляются разными строками.

Вопрос: что сделать, чтобы обе колонки добавлялись в одну строку?
1 Nzzzz
 
07.08.20
13:22
Обращаться по индексу, думаю не хорошая идея, потому что я не знаю сколько строку будет(каждый раз по разному)
МойМассив[0][0] = "Значение из колонки1";
МойМассив[0][1] = "Значение из колонки2";
2 ДенисЧ
 
07.08.20
13:28
У массива тупо по определению нет колонок. Можешь добавить структру в массив. Со своими полями.
3 Nzzzz
 
07.08.20
13:35
Тогда задам другой вопрос, может у вас будут идеи.
Почему не могу оставить "МояТЗ"? зачем мне "МОйМассив"?
Потому что те строки, которые есть в "МояТЗ", у них тип "СтрокаТаблицыЗначений".

Есть некая процедура:
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.СписокУслугДокумента,МояТЗ);

Вот если последним параметром я передаю "МояТЗ", то программа ругается и говорит, что "СтрокаТаблицыЗначений" - недопустимый тип! Нельзя с сервера на клиент!
Вот из за этого делаю "МойМассив"
4 Garykom
 
гуру
07.08.20
13:40
прикольно
5 Garykom
 
гуру
07.08.20
13:40
ты можешь в значения массива писать массивы прикинь!

но лучше структуры или соответсвия
6 Nzzzz
 
07.08.20
13:43
(5) не понятно: "ты можешь в значения массива писать массивы прикинь!"
7 Nzzzz
 
07.08.20
13:57
Как решить эту проблему?
если сама ТЗ не доступна (не передаётся в процедуру)
8 FIXXXL
 
07.08.20
13:57
(6) в цикле каждый раз объявляешь новый массив, туда два значения, массив добаляешь в основной массив
но лучше и читабельнее - массив структур
9 Nzzzz
 
07.08.20
14:01
(8) Ого))) сейчас попробую
10 Nzzzz
 
07.08.20
14:05
У меня в этом массиве теперь 3 массива, а циклом как обойти в каждый массив то? Два цикла делать?
11 D_E_S_131
 
07.08.20
14:18
Что это вообще за "дичь"? Если речь про процедуру общего модуля БСП "ПодключаемыеКоманды", то в ней вроде 3 параметра, а не 4.
12 Nzzzz
 
07.08.20
14:19
(11) Всё верно, я доработываю, мне нужен 4 параметра
13 D_E_S_131
 
07.08.20
14:21
(12) И зачем? Что вообще хочешь сделать? А то все это очень похоже на "тупиковый путь".
14 Nzzzz
 
07.08.20
14:25
На самом деле меня не поймете, всё очень сложно
есть печатная форма (типовая), вот туда передаются не совсем те данные которые нужны. Для того, чтобы они передавались параметром, нужно все эти данные сначала откуда то взять. Единственное место где они хранятся - это на форме. В итоге я беру строки ТЧ на форме обработке методом: получить выделенные строки, и тащу их в печатную форму(пытаюсь тащить). По другому никак
15 D_E_S_131
 
07.08.20
14:28
(14) А сделать ВПФ на основе типовой печ формы и внести туда свои корректировки не вариант?
16 Salimbek
 
07.08.20
14:30
(0) Для каждого Кол из МояТЗ цикл
     МойМассив.Добавить(Новый Структура("Колонка1,Колонка2", Кол.Колонка1, Кол.Колонка2));
КонецЦикла;
Возврат МойМассив;
17 Nzzzz
 
07.08.20
14:32
(15) ну изначально подумали, что там быстро исправит и немного, поэтому не возникало мысли о ВПФ.
Сейчас буду делать до конца(база всё равно уже вся переделанная), а то жалко потраченного дня на это (ну чтобы бросить и начать делать ВПФ). Если не получится, буду делать ВПФ.
18 Nzzzz
 
07.08.20
14:32
(16) Попробую сейчас
19 Nzzzz
 
07.08.20
14:37
(16) А что лучше?
3 массива в одном массиве?
или
3 структуры в одном массиве?)
20 D_E_S_131
 
07.08.20
14:37
(17) А потом еще попросят изменить что-то в макете печ.формы и все равно к ВПФ придешь :)
21 Salimbek
 
07.08.20
14:39
(19) Одинаково. К элементам массива придется обращаться только по номерам, а к элементам структуры - по имени
22 Arbuz
 
07.08.20
15:28
Шел Кондрат
В Ленинград,
А навстречу — двенадцать ребят.
У каждого по три лукошка,
В каждом лукошке — кошка,
У каждой кошки — двенадцать котят.
У каждого котенка
В зубах по четыре мышонка.
у каждого мышонка по тз,
в каждой тз по три массива,
в каждом массиве по три структуры,
в каждой структуре по три сз,
там данные и тд
23 KAO111
 
07.08.20
15:32
А потом БСП обновится
24 D_E_S_131
 
07.08.20
15:45
++ к (22) и (23) именно это я и называл "тупиковым путем" :))))))
25 Сияющий в темноте
 
07.08.20
17:33
строка таблицы значений прекрасно преобразуется в структуру.
а уж эту структуру в массив.

хотя,если у тебя трр параметра из строки,то первым элементом в массив пишешь количество строк,вторым,количество параметров в строке и радостно добавляешь значения колонок в масмив,на обратной стороне разбираешь.
26 Сияющий в темноте
 
07.08.20
17:34
строкктаблиувзначений это даже не объект,а ссылка на строку другогг объекта,так что не удивительно,что ее не передают.
27 Megas
 
07.08.20
17:39
(0)
В (16) дело говорят
Общий смысл что не всё можно "гонять" с клиента на сервер и с сервера на клиент, поэтому извращаемся =)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс