|
Возможно ли поместить в таблицу значений, другую таблицу значений? | ☑ | ||
---|---|---|---|---|
0
Radion
12.05.12
✎
16:55
|
Возможно ли поместить в таблицу значений, другую таблицу значений? Что то у меня не получается (
|
|||
1
Deon
12.05.12
✎
16:56
|
Возможно!
|
|||
2
Deon
12.05.12
✎
16:56
|
А что не получаецо-то? показывай код
|
|||
3
Stim
12.05.12
✎
16:56
|
Загрузить()
|
|||
4
Жан Пердежон
12.05.12
✎
16:56
|
элементарно
|
|||
5
Нуф-Нуф
12.05.12
✎
17:01
|
=
|
|||
6
Radion
12.05.12
✎
17:03
|
К примеру код, сделал так:
ТЗ_НовСтрока = ТЗ_Док.Добавить(); //Добавляем переменные в НОВУЮ таблицу значений ТЗ_НовСтрока.НомерЗаказа = НомерЗаказа; ТЗ_НовСтрока.ДатаЗаказа = ДатаЗаказа; ТЗ_НовСтрока.ТипОрдера = ТипОрдера; ТЗ_НовСтрока.Контрагент = Контрагент; ТЗ_НовСтрока.Грузополучатель = Грузополучатель; ТЗ_НовСтрока.ТЗ = Старая_ТЗ; // - вот здесь пытаюсь засунуть старую тз в строку таблицы значений Спасибо. |
|||
7
Кокос
12.05.12
✎
17:04
|
можно проще
|
|||
8
Кокос
12.05.12
✎
17:06
|
// Дополняет таблицу значений-приемник данными из таблицы значений-источник
// // Параметры: // ТаблицаИсточник - Таблица значений - таблица из которой будут браться строки для заполнения // ТаблицаПриемник - Таблица значений - таблица в которую будут добавлены строки из таблицы-источника // Процедура ДополнитьТаблицу(ТаблицаИсточник, ТаблицаПриемник) Экспорт Для каждого СтрокаТаблицыИсточник Из ТаблицаИсточник Цикл ЗаполнитьЗначенияСвойств(ТаблицаПриемник.Добавить(), СтрокаТаблицыИсточник); КонецЦикла; КонецПроцедуры // Дополняет таблицу значений Таблица значениями из массива Массив. // // Параметры: // Таблица - ТаблицаЗначений - таблица, которую необходимо заполнить значениями из массива // Массив - Массив - массив значений для заполнения таблицы // ИмяПоля - Строка - имя поля таблицы значений, в которое необходимо загрузить значения из массива // Процедура ДополнитьТаблицуИзМассива(Таблица, Массив, ИмяПоля) Экспорт Для каждого Значение Из Массив Цикл Таблица.Добавить()[ИмяПоля] = Значение; КонецЦикла; КонецПроцедуры |
|||
9
Radion
12.05.12
✎
17:06
|
далее, пытаюсь получить данные:
Для Каждого ТекСтрока Из ТЗ_Док Цикл ... Для каждого строка из ТЗ_ТекСтрока.ТЗ Цикл //перебираем строки ТЗ Вот сюда то я и не могу попасть! КонецЦикла; КонецЦикла; |
|||
10
НЕА123
12.05.12
✎
17:10
|
(9)
отладчик что говорит про ТЗ_ТекСтрока.ТЗ? |
|||
11
Reset
12.05.12
✎
17:11
|
(9) Проявлю мегателепатию и предложу в (6) написать так:
ТЗ_НовСтрока.ТЗ = Старая_ТЗ.Скопировать(); |
|||
12
Radion
12.05.12
✎
17:11
|
(11) понял. спасибо.
|
|||
13
Reset
12.05.12
✎
17:11
|
ибо, видимо, там в цикле одна и та же таблица, и периодически затирается
|
|||
14
Radion
12.05.12
✎
17:19
|
(13) а как может затираться, если я для ТЗ использую метод новая строка.
|
|||
15
Reset
12.05.12
✎
17:23
|
(14) Тебе виднее. Телепатия свои пределы имеет. Заносишь в реквизит строки ссылку (ну, типа) на таблицу, потом таблицу очищаещь (строки). В результате по ссылке - пустая таблица. Это все предположения и телепатия, повторюсь.
Покажешь код - скажу более точно. |
|||
16
Reset
12.05.12
✎
17:25
|
Если ответом на (10) будет "показывает пустую тз", то предположение (13) верно
|
|||
17
Кокос
12.05.12
✎
17:27
|
ТЗ_НовСтрока.ТЗ.Загрузить(СтараяТЗ.Выгрузить()) ;
только я не знаю поле может быть ТЗ? |
|||
18
DSSS
12.05.12
✎
17:29
|
Поместить 2 таблицы значений во временные таблицы, в запросе соединить как нужно.
|
|||
19
НЕА123
12.05.12
✎
17:32
|
(17)
может. самое правильное пока (11). "пока" - потому что это телепатия. |
|||
20
Stim
12.05.12
✎
17:33
|
ЗаполнитьЗначенияСвойств() ?
|
|||
21
Radion
12.05.12
✎
17:58
|
(10) опечатка конечно - Для каждого строка из ТекСтрока.ТЗ Цикл (без "ТЗ_"). Спасибо.
|
|||
22
Radion
12.05.12
✎
18:10
|
(15) да. после помещения текущей ТЗ в основную ТЗ, я текущую очищаю.
ТЗ_НовСтрока = ТЗ_Док.Добавить(); //Добавляем переменные в НОВУЮ таблицу значений ТЗ_НовСтрока.НомерЗаказа = НомерЗаказа; ТЗ_НовСтрока.ДатаЗаказа = ДатаЗаказа; ТЗ_НовСтрока.ТипОрдера = ТипОрдера; ТЗ_НовСтрока.Контрагент = Контрагент; ТЗ_НовСтрока.Грузополучатель = Грузополучатель; ТЗ_НовСтрока.ТЗ = Старая_ТЗ; // - вот здесь пытаюсь засунуть старую тз в строку таблицы значений Старая_ТЗ.Очистить(); // вот здесь очищаю ее!!!!!!!!!!!!!!!!!!!!!!!!!!!! Для каждого строка из ТекСтрока.ТЗ Цикл //перебираем строки ТЗ Вот сюда то я и не могу попасть! КонецЦикла; КонецЦикла; |
|||
23
ЗлобнийМальчик
12.05.12
✎
18:12
|
(0) нет
|
|||
24
Radion
12.05.12
✎
18:14
|
(23) чет и я так думаю ((( уже все что предложили испробовал. не получается ((
|
|||
25
Reset
12.05.12
✎
18:19
|
И чего тебе еще нужно? и решение дал, и даже объяснил, почему не работает, не видя кода. Что еще?
|
|||
26
НЕА123
12.05.12
✎
18:21
|
ты (11) почему не сделал?!!!
ТЗ_НовСтрока = ТЗ_Док.Добавить(); //Добавляем переменные в НОВУЮ таблицу значений ТЗ_НовСтрока.НомерЗаказа = НомерЗаказа; ТЗ_НовСтрока.ДатаЗаказа = ДатаЗаказа; ТЗ_НовСтрока.ТипОрдера = ТипОрдера; ТЗ_НовСтрока.Контрагент = Контрагент; ТЗ_НовСтрока.Грузополучатель = Грузополучатель; ТЗ_НовСтрока.ТЗ = Старая_ТЗ.Скопировать(); // - вот здесь (11)!!!!! Старая_ТЗ.Очистить(); Для каждого строка из ТекСтрока.ТЗ Цикл //перебираем строки ТЗ КонецЦикла; КонецЦикла; |
|||
27
НЕА123
12.05.12
✎
18:21
|
(25)
сегодня пятница - де факто. |
|||
28
experimentator76
12.05.12
✎
18:22
|
(22)
пойми что при варианте когда ты присваиваешь ТЗ ты присваиваешь ссылку на конкретную ТЗ и потом в одном контексте ТЗ очищаешь и получается обращаешься к пустой ТЗ тебе нужно скопировать ТЗ и присвоить ссылку на эту скопированную ТЗ реквизиту ТЗ либо заполнение выделить в отдельную процедуру в которую передавать ТЗ как значение |
|||
29
experimentator76
12.05.12
✎
18:23
|
(25) понимание (11) не телепатируешь )
|
|||
30
experimentator76
12.05.12
✎
18:25
|
(0) ты на каком нибудь еще языке программировал ?
|
|||
31
Radion
12.05.12
✎
18:30
|
(26) спасибо. все работает)))
(28) да. понимаю. спасибо. |
|||
32
НЕА123
12.05.12
✎
18:34
|
(28)
>передавать ТЗ как значение нет. проходили. даст только то, что передастся ссылка на тз, а не ссылка на переменную, которая ссылается на ТЗ. |
|||
33
experimentator76
14.05.12
✎
10:14
|
(32) не поленился - проверил
действительно при ЗНАЧ ТЗ не создается новый экземпляр ТЗ надо быть аккуратнее с такими конструкциями с другой стороны эту фичу можно использовать когда нужна динамика изменений в разных структурах данных например по ТЗ но пока таких задачек не попадалось |
|||
34
Reset
14.05.12
✎
10:20
|
(33) при передаче тз как параметра по значению создается копия ссылки, а не самой тз.
Т.е.
|
|||
35
experimentator76
14.05.12
✎
10:46
|
всетаки - это фичебага ((
СП " Знач Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т.е. изменение значения формального параметра при выполнении процедуры никак не повлияет на фактический параметр, переданный при вызове процедуры. Если это ключевое слово не указано, то параметр процедуры передается по ссылке, то есть изменение внутри процедуры значения формального параметра приведет к изменению значения соответствующего фактического параметра. " проверил я и изменение вложенной ТЗ и в процедуре при передаче ее "по значению" изменения благополучно передаются и в ТЗ переданную по значению то есть в случае ТЗ скорее всего ЗНАЧ не работает код Процедура КнопкаВыполнитьНажатие(Кнопка) ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ВложеннаяТЗ"); ВложеннаяТЗ = Новый ТаблицаЗначений; ВложеннаяТЗ.Колонки.Добавить("Знач1"); ТЗ_ = ТЗ.Добавить(); ВложеннаяТЗ_ = ВложеннаяТЗ.Добавить(); ВложеннаяТЗ_.Знач1 = 1; ЗаполнитьВложеннуюТЗ(ТЗ_, ВложеннаяТЗ); //ВложеннаяТЗ_.Знач1 = 2; Сообщить(ТЗ_.ВложеннаяТЗ[0].Знач1); КонецПроцедуры Процедура ЗаполнитьВложеннуюТЗ(ТЗ_, Знач ВложеннаяТЗ) ТЗ_.ВложеннаяТЗ = ВложеннаяТЗ; ВложеннаяТЗ[0].Знач1 = 2; КонецПроцедуры |
|||
36
НЕА123
15.05.12
✎
08:06
|
(34)(35)
для себя я считаю что конструкция со Знач Процедура Проц1(знач Х) преобразовывается(это грубо, но суть такая) Процедура Проц1(знач Х) Перем ЛокальнаяСгенерированнаяПеременннаяХ; ЛокальнаяСгенерированнаяПеременннаяХ = Х; и потом все Х заменяются на ЛокальнаяСгенерированнаяПеременннаяХ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |