Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Добавить в массив в одну строку - две колонки

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

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

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

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

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

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

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

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


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