Имя: Пароль:
1C
1C 7.7
v7: Как можно сохранить в строке (колонка ТЗ) таблицы значений другую таблицузначени
0 alivpo
 
19.09.11
17:08
Как можно сохранить в строке (колонка ТЗ) таблицы значений другую таблицу значений?
1 Ёпрст
 
19.09.11
17:11
ТЗ.НоваяСтрока()
ТЗ.ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.ТЗ.НоваяКолонка("Вася");
ТЗ.ТЗ.НоваяСтрока();
ТЗ.ТЗ.Вася="лошпед";
2 Armin
 
19.09.11
17:12
ТаблицаЗначений.ПодтаблицаЗначений = СоздатьОбъект("ТаблицаЗначений");
ВыгружаемаяТаблицаЗначений.Выгрузить(ТаблицаЗначений.ПодтаблицаЗначений);
3 alivpo
 
19.09.11
17:22
А почему не проходит?
ТабЗначПервая.ПодтаблицаЗначений =ТабЗначВторая;
4 andrewks
 
19.09.11
17:24
(3) потому что
5 Эльниньо
 
19.09.11
17:26
Я понимаю конечно, что между "=" и "Выгрузить" разница в 8 букв.
6 Песец
 
19.09.11
17:29
(3) ТабЗначПервая.ПодтаблицаЗначений присваивается ссылка на ТабЗначВторая.
7 Chai Nic
 
19.09.11
17:29
Дело в том, что переменная объектного типа - это ССЫЛКА на объект, а не сам объект.
8 Vladal
 
19.09.11
17:29
Сделай так:

ТЗ.НоваяКолонка("ВложеннаяТЗ");

или так:

ТЗ.НоваяКолонка("ВложеннаяТЗ", "ТаблицаЗначений");

и потом так:

ТЗ.НоваяСтрока();
ТЗ.ВложеннаяТЗ = КакаяТоДругаяТЗ;

И будет тебе счастье. Я так давненько и частенько в 7.7 делаю.

Пример - список баз.
Колонка 1 - путь базы (строка)
Колонка 2 - список пользователей (тз)

Список пользователей - тз
Колонка 1 - Идентификатор (имя)
Колонка 2 - Список обработок пользователя (список значений)

всё как в анекдоте про многоярусный лайнер с бассейном, кортом, сауной и попыткой взлететь
9 Песец
 
19.09.11
17:31
(6+) а тебе надо создать копию.
10 alivpo
 
19.09.11
17:33
Спасибо, попробую
11 Эльниньо
 
19.09.11
17:42
Кто создавал ТЗ охрененейшей размерностью?
Я - максимум n = 5.
12 Chai Nic
 
19.09.11
17:51
(11) Ну можно и дерево рекурсивно создать.. до исчерпания стека. :)
А самое прикольное - что всё это великолепие можно одной командой сохранять/загружать (ЗначениеВФайл/ЗначениеИзФайла). Удобно аж жуть для переброски данных из одной базы в другую, без заморочек с xml и dbase.
13 Vladal
 
19.09.11
18:17
(11) Моя охрененная пипис.. (зачеркнуто) тз максимум достигала 3 размерностей

1 уромень - 2 мерная, один из реквизитов записи ТЗ, которая - 2 мерная и один из тех реквизитов тоже 2-мерная ТЗ, а второй список значений.

Это сколько? 3? или 4?

(12) А так и делается. Одной обработкой создал ЭТО великолепие и ЭТО выгрузил в файл. Потом в любой базе готовую структуру читаешь и парсишь. Изврат еще тот.
14 Cthulhu
 
19.09.11
20:42
медленно но надежно ЗначениеВСтрокуВнутр/ЗначениеИзСтрокиВнутр.
по Выгрузить вложенные не копируются, а со ссылками кладутся - можно нечаянно очень удивиться, поменяв вложенную ТЗ в таблице-источнике.
15 Фокусник
 
19.09.11
21:02
(12) это до тех пор, пока размер файла относительно маленький :)
16 Cthulhu
 
19.09.11
21:23
(12): у "ЗначениеВФайл" есть очень неприятная особенность.
начиная с некоторого размера (сохраняемых данных) время сохранения начинает расти нелинейно (экспоненциально). Особенно неприятно при сохранении больших ТЗ. Сохраняешь маленькую - красота, среднюю - класс, большую рабочую - ой, пять минут, и чуть больше - опа, час-два, ещё чуть больше - пипец, пять часов молотит на белом экране, зарраза.
17 Chai Nic
 
20.09.11
15:45
(16) Для больших объемов данных есть метод индексированной таблицы ВФайл (1с++) , делающий по сути то же самое (только сохраняет в другом формате).
18 Рэйв
 
20.09.11
15:56
(3)ТабЗначПервая.ПодтаблицаЗначений =ТабЗначВторая.Скопировать();
19 ЧеловекДуши
 
20.09.11
16:00
(8)ТЗ.НоваяКолонка("ВложеннаяТЗ", "ТаблицаЗначений");

Самая бессмысленная строчка.
Можно было записать её так

ТЗ.НоваяКолонка("ВложеннаяТЗ");

Все ровно 1С строку "ТаблицаЗначений" воспримет, как неопределенный тип, т.е. там может быть любой тип.
Основная теорема систематики: Новые системы плодят новые проблемы.