|
Добавить строки в таблицу значений | ☑ | ||
---|---|---|---|---|
0
DimSon123
16.06.15
✎
23:04
|
Есть код, по которому добавляю 3 колонки в ТЗ:
Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); МассивТЗ[СчТаблиц].Колонки.Добавить(Элемент); КонецЦикла; Так же есть Массив, в котором хранится 3 элемента. Как добавить элементы массива в колонки (для 1-колонки - 1-й элемент массива и т.д.)? |
|||
1
KarpovDeniska
16.06.15
✎
23:19
|
Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл
Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); МассивТЗ[СчТаблиц].Колонки.Добавить(Элемент); СтрокаТЗ = МассивТЗ[СчТаблиц].Добавить(); СтрокаТЗ[Элемент] = МассивЭлементов[Индекс]; КонецЦикла; |
|||
2
DimSon123
16.06.15
✎
23:34
|
(1) так не работает, ищет колонку с именем, которой нет.
Картина следующая: //формируем колонки Если СчФайла = 1 Тогда МассивЭлементов=РазбитьСтроку(ЭлементМассива,Разделитель; Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); МассивТЗ[СчТаблиц].Колонки.Добавить(Элемент); КонецЦикла; Иначе //заполняем колонки элементами МассивЭлементов=РазбитьСтроку(ЭлементМассива,Разделитель; стр = МассивТЗ[СчТаблиц].Добавить(); Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); //НАДО КАК-ТО ЗАПИСАТЬ ЗНАЧЕНИЕ "ЭЛЕМЕНТ" В КОЛОНКУ КонецЦикла; КонецЕсли; |
|||
3
DimSon123
16.06.15
✎
23:38
|
(2) то есть, нам приходит МассивЭлементов, если он приходит первый раз - то его элементы будут названиями колонок. А с помощью последующих элементов МассивЭлементов заполняем эти колонки...
|
|||
4
DimSon123
16.06.15
✎
23:49
|
(1) пробовал вот так вот:
МассивТЗ[СчТаблиц].Колонки[Индекс] = Элемент; Пишет Индексированное значение доступно только для чтения |
|||
5
KarpovDeniska
16.06.15
✎
23:51
|
Тебе нужно заполнить колонки в ТЗ, ты это делаешь вот так
|
|||
6
KarpovDeniska
16.06.15
✎
23:51
|
МассивТЗ[СчТаблиц].Колонки.Добавить(Элемент);
|
|||
7
KarpovDeniska
16.06.15
✎
23:52
|
далее добавляешь строку и заполняешь значения столбцов
СтрокаТЗ = МассивТЗ[СчТаблиц].Добавить();// добавил строку СтрокаТЗ[Элемент] = МассивЭлементов[Индекс] заполнил значение; |
|||
8
KarpovDeniska
16.06.15
✎
23:54
|
зачем ты снова пытаешься изменить колонку в (4)
МассивТЗ[СчТаблиц].Колонки[Индекс] = Элемент;? |
|||
9
DimSon123
16.06.15
✎
23:58
|
(7) Если сделать вот так:
СтрокаТЗ[Элемент] = МассивЭлементов[Индекс] и вставить этот код туда, где написано: //НАДО КАК-ТО ЗАПИСАТЬ ЗНАЧЕНИЕ "ЭЛЕМЕНТ" В КОЛОНКУ тогда мы получим примерный результат: Яблоко = Яблоко; и запись не произойдет, потому что колонки с названием яблоко у нас нет... |
|||
10
DimSon123
17.06.15
✎
00:01
|
(8) это я я просто попробовал так решить проблему.
|
|||
11
KarpovDeniska
17.06.15
✎
00:07
|
(9) как нет если ты эту колонку добавляешь предыдущей строкой )))
|
|||
12
KarpovDeniska
17.06.15
✎
00:09
|
+ если у тебя массив с не уникальными значениями, то второй раз колонка не добавится, выскочит ошибка.
|
|||
13
DimSon123
17.06.15
✎
00:13
|
(11) колонки добавляются в "в условии Если, в Тогда" а, строки в "Иначе".
Если сделать добавление строк и колонок в в "Тогда", то заполнение их будет не правильным. Смотри код на (2) |
|||
14
DimSon123
17.06.15
✎
00:15
|
коменты не так расставил
//заполняем колонки Если СчФайла = 1 Тогда МассивЭлементов=РазбитьСтроку(ЭлементМассива,Разделитель; Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); МассивТЗ[СчТаблиц].Колонки.Добавить(Элемент); КонецЦикла; Иначе //заполняем строки МассивЭлементов=РазбитьСтроку(ЭлементМассива,Разделитель; стр = МассивТЗ[СчТаблиц].Добавить(); Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); //НАДО КАК-ТО ЗАПИСАТЬ ЗНАЧЕНИЕ "ЭЛЕМЕНТ" В КОЛОНКУ КонецЦикла; КонецЕсли; |
|||
15
KarpovDeniska
17.06.15
✎
00:17
|
у тебя в если и в иначе разные массивы?
|
|||
16
DimSon123
17.06.15
✎
00:17
|
(15) да
|
|||
17
KarpovDeniska
17.06.15
✎
00:19
|
количество элементов одинаковое?
|
|||
18
DimSon123
17.06.15
✎
00:20
|
(17) да
|
|||
19
KarpovDeniska
17.06.15
✎
00:28
|
МассивЭлементов = РазбитьСтроку(ЭлементМассива,Разделитель);
стр = МассивТЗ[СчТаблиц].Добавить(); Для Индекс = 0 По МассивЭлементов.Количество() - 1 Цикл Элемент = СтрЗаменить(МассивЭлементов[Индекс],"""",""); Колонка = МассивТЗ[СчТаблиц].Колонки[Индекс]; стр[Колонка.Имя] = Элемент; КонецЦикла; |
|||
20
DimSon123
17.06.15
✎
00:34
|
Да, это оно, спасибо друг!
Я еще нашел одно решение: стр.Установить(Индекс, Элемент); |
|||
21
KarpovDeniska
17.06.15
✎
00:35
|
пожалуйста
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |