|
Помогите с ТаблицейЗначений | ☑ | ||
---|---|---|---|---|
0
aki_rezak
16.07.12
✎
14:03
|
Форумчане помогите, не догоняю.
Есть ТЗ1 в ней какие то данный. Далее простой Код // ВТ = Новый ТаблицаЗначений; ВТ = ТЗ1; ВТ.Свернуть("МояКолонка"); не понимаю почему сворачивается и ТЗ1, как разорвать эту свзяь... |
|||
1
shuhard
16.07.12
✎
14:04
|
(0) кури скопировать
|
|||
2
Cube
16.07.12
✎
14:05
|
ВТ = ТЗ1.Скопировать();
ВТ.Свернуть("МояКолонка"); |
|||
3
w2k3
16.07.12
✎
14:05
|
(0) там есть типо "Скопировать" или "выгрузить" точно не помню. через нее сделай.
ЗЫ пишу на ходу. метод не помню.... |
|||
4
aki_rezak
16.07.12
✎
14:07
|
Да понятно что можно скопировать колонку например.... Не понятно почему остается связь ТЗ1 и ВТ. по идеи должна быть копия...
|
|||
5
Reset
16.07.12
✎
14:08
|
(4) Не должна. Нужна копия -> (1)
|
|||
6
Kashemir
16.07.12
✎
14:08
|
(4) Потому что ты скопировал ссылку на тот же самый объект.
|
|||
7
aki_rezak
16.07.12
✎
14:09
|
(6) палин песец. пора обедать. Всем спасибо:)
Тема закрыта |
|||
8
Infsams654
16.07.12
✎
14:11
|
На обед
ВТ = СвернутьТ31(Т31); Функция СвернутьТ31(Знач ТаблицаДляСворачивания) ВТ = Новый ТаблицаЗначений; ВТ = ТаблицаДляСворачивания; ВТ.Свернуть("МояКолонка"); Возврат ВТ; КонецФункции; |
|||
9
Рэйв
16.07.12
✎
14:12
|
(8)Тогда уж параметром передавай имена колонок,а вторым- имена колонок для сложения.
|
|||
10
palpetrovich
16.07.12
✎
14:15
|
(8) фигня какая-то (цы) некий Бекас
|
|||
11
Infsams654
16.07.12
✎
14:17
|
(9)(10) так приколываюсь, чтоб различали разницу меж значением и ссылкой
|
|||
12
Reset
16.07.12
✎
14:18
|
(8) Бред.
Во первых, заем-то объяевляется переменная ВТ, котрая во второй же строке затирается. Во вторых, Таблица-параметр по прежнему сворачивается |
|||
13
Reset
16.07.12
✎
14:20
|
Учи разницу между значением и ссылкой (с) не мое
|
|||
14
Buster007
16.07.12
✎
14:26
|
(8) тогда уж
ВТ = СвернутьТ31(Т31); Функция СвернутьТ31(Знач ТаблицаДляСворачивания) ТаблицаДляСворачивания.Свернуть("МояКолонка"); Возврат ТаблицаДляСворачивания; КонецФункции |
|||
15
Рэйв
16.07.12
✎
14:27
|
+(14)Тогда уж
Процедура СвернутьТ31(ТаблицаДляСворачивания) ТаблицаДляСворачивания.Свернуть("МояКолонка"); КонецПроцедуры :-) |
|||
16
CepeLLlka
16.07.12
✎
14:30
|
(15) Смысл?
|
|||
17
CepeLLlka
16.07.12
✎
14:30
|
В (2) Уже был тру ответ.. что ещё то %)
|
|||
18
Рэйв
16.07.12
✎
14:31
|
(16)Короче.Быстрее.
А так смысла вообще нет. Потому что быстрее всего будет ВТ=ТаблицаДляСворачивания.Свернуть("КолСвернуть","КолСум") |
|||
19
Рэйв
16.07.12
✎
14:32
|
(17)Да просто изгаляемся:-)
|
|||
20
Рэйв
16.07.12
✎
14:32
|
+(18)..ну то есть сначала скопировать:-) потом свернуть
|
|||
21
CepeLLlka
16.07.12
✎
14:38
|
(16) Быстрее? Помоему ты наркоман :)
|
|||
22
Рэйв
16.07.12
✎
14:40
|
(21)Ты будешь спорить, что ссылку передать в процедуру быстрее, чем скопировать объект тз, у которой может быть мильен строк?
|
|||
23
Песец
16.07.12
✎
14:42
|
(8) Наличие "Знач" приведет к тому, что внутри твоей функции будет не ссылка на тз, а копия ссылки, указывающая на ту же самую тз. Т. е. копии тз не создается.
|
|||
24
Песец
16.07.12
✎
14:46
|
(23+)
Функция СвернутьТ31(Знач ТаблицаДляСворачивания) ВТ = Новый ТаблицаЗначений; ВТ = ТаблицаДляСворачивания; ВТ.Свернуть("кол1"); ВТ.выбратьстроку("тз внутри функции"); ВТ=Новый ТаблицаЗначений; ВТ.ВыбратьСтроку("совсем другая тз, исходная не затирается"); Возврат ВТ; КонецФункции Процедура КнопкаСформироватьНажатие(Кнопка) тз=Новый ТаблицаЗначений; тз.Колонки.Добавить("кол1"); тз.Колонки.Добавить("кол2"); стз=тз.Добавить(); стз.кол1=1; стз.кол2=2; стз=тз.Добавить(); стз.кол1=1; стз.кол2=3; тз.ВыбратьСтроку("исходная тз"); СвернутьТ31(тз); тз.ВыбратьСтроку("исходная после обработки функцией"); // Вставить содержимое обработчика. КонецПроцедуры |
|||
25
Песец
16.07.12
✎
15:03
|
(23++) можно позапускать вот этот код с "Знач" и без "Знач":
Функция СвернутьТ31(Знач ТаблицаДляСворачивания) ТаблицаДляСворачивания = ТаблицаДляСворачивания; ТаблицаДляСворачивания.Свернуть("кол1"); ТаблицаДляСворачивания.выбратьстроку("тз внутри функции"); ТаблицаДляСворачивания = Новый ТаблицаЗначений; ТаблицаДляСворачивания.ВыбратьСтроку("если по Знач, то это совсем другая тз, исходная не затирается, иначе затирается"); Возврат ТаблицаДляСворачивания; КонецФункции Процедура КнопкаСформироватьНажатие(Кнопка) тз=Новый ТаблицаЗначений; тз.Колонки.Добавить("кол1"); тз.Колонки.Добавить("кол2"); стз=тз.Добавить(); стз.кол1=1; стз.кол2=2; стз=тз.Добавить(); стз.кол1=1; стз.кол2=3; тз.ВыбратьСтроку("исходная тз"); СвернутьТ31(тз); Если тз.Количество()=0 Тогда Предупреждение("параметр был передан НЕ по Знач, исходная таблица очищена"); Иначе Предупреждение("параметр был передан по Знач, в исходной таблице есть колонки и строки"); КонецЕсли; тз.ВыбратьСтроку("исходная после обработки функцией"); КонецПроцедуры |
|||
26
pessok
16.07.12
✎
15:33
|
а шо ты хотел, тс? ты ж не копируешь объект, а передаешь ссылке адрес, все верно и логично
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |