|
Массив в ТЗ. снова | ☑ | ||
---|---|---|---|---|
0
sandal_r
24.01.17
✎
14:57
|
Привет.
Пользуюсь конструкцией [code] ТЗ = Новый ТаблицаЗначений; Для каждого Строка из ИсходныйМассив Цикл НовСтр = ТЗ.Добавить(); ЗаполнитьЗначенияСвойств(НовСтр, Строка); КонецЦикла [/code] Копируется только вот так: https://i.imgur.com/C0Egtqd.png и значения всех строк массива превращаются в "СтрокаТаблицыЗначений". Что я делаю не так? |
|||
1
sandal_r
24.01.17
✎
14:58
|
ну как минимум не так использую теги форума :)
|
|||
2
МихаилМ
24.01.17
✎
15:09
|
(0)
где у тз колонки ? |
|||
3
Jokero
24.01.17
✎
15:09
|
ТЗ, пустая у тебя. Попробуй колонки создать вначале
|
|||
4
Timon1405
24.01.17
✎
15:10
|
(0) ИсходныйМассив =Новый Массив;
ИсходныйМассив.Добавить("123"); ИсходныйМассив.Добавить(456); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("МояКолонка"); Для каждого СтрокаМассива из ИсходныйМассив Цикл НовСтр = ТЗ.Добавить(); КонецЦикла; ТЗ.ЗагрузитьКолонку(ИсходныйМассив,"МояКолонка"); |
|||
5
sandal_r
24.01.17
✎
15:23
|
ок
а есть ли способ сделать универсальной данную функцию? ну чтоб сначала все колонки добавлять из массива, а потом уже заполнять тз вот такой у меня массив https://i.imgur.com/qM5SoOe.png |
|||
6
Asmody
24.01.17
✎
15:36
|
(5) В массиве строки ТЗ? Тогда надо скопировать структуру исходной ТЗ в новую ТЗ
|
|||
7
Timon1405
24.01.17
✎
15:52
|
мой телепат шепчет, что ТС нужно просто скопировать часть колонок с данными из таблицы в другую?
Для этого есть метод Скопировать. НоваяТЗ = ИсходнаяТЗ.СКОПИРОВАТЬКАРЛ(,"СписокКолонокДляКопирования"); |
|||
8
Cyberhawk
24.01.17
✎
15:53
|
Пользуюсь на всех проектах. Дарю.
Функция ПреобразоватьТаблицуЗначенийВМассив(тзДанные) Экспорт мсДанные = Новый Массив; // Запишем в массив Для Каждого СтрокаТЗ Из тзДанные Цикл стСтрокаТаблицы = Новый Структура; Для Каждого ИмяКолонки Из тзДанные.Колонки Цикл стСтрокаТаблицы.Вставить(ИмяКолонки.Имя, СтрокаТЗ[ИмяКолонки.Имя]); КонецЦикла; мсДанные.Добавить(стСтрокаТаблицы); КонецЦикла; Возврат мсДанные; КонецФункции Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные) Экспорт тзДанные = Новый ТаблицаЗначений; Для Каждого ЭлементМассива Из мсДанные Цикл // Рисуем колонки для таблицы Если тзДанные.Колонки.Количество() = 0 Тогда Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл тзДанные.Колонки.Добавить(ЗначениеСтруктуры.Ключ); КонецЦикла; КонецЕсли; // Добавляем данные в таблицу НоваяСтрока = тзДанные.Добавить(); Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение; КонецЦикла; КонецЦикла; Возврат тзДанные; КонецФункции |
|||
9
FIXXXL
24.01.17
✎
15:56
|
(5) а может тебе хватит
НоваяТЗ = СтараяТЗ.Скопировать(МассивСтрок,) ? |
|||
10
Живой Ископаемый
24.01.17
✎
15:57
|
правильно же в структуру
|
|||
11
sandal_r
24.01.17
✎
15:58
|
у меня нет старой тз
у меня старый массив |
|||
12
sandal_r
24.01.17
✎
16:03
|
(8) спасибо, это как раз то, что я искал
но ругается на ЗначениеСтруктуры.Ключ поле объекта не обнаружено |
|||
13
Живой Ископаемый
24.01.17
✎
16:06
|
потому что у него хоть и называется мсДанные - передает он туда структуру или соответствие
|
|||
14
Живой Ископаемый
24.01.17
✎
16:06
|
И это правильно
|
|||
15
Cyberhawk
24.01.17
✎
16:13
|
Массив структур же
|
|||
16
Asmody
24.01.17
✎
16:13
|
В (5) я однозначно вижу массив строк ТЗ
|
|||
17
FIXXXL
24.01.17
✎
16:50
|
(11) куда дел? ссылки на строки из нее есть же в массиве?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |