|
ТабличныйДокумент (область макета) и Массив | ☑ | ||
---|---|---|---|---|
0
stateg
14.11.14
✎
11:38
|
Доброго времени суток.
Для проверки вывода области макета (ТабДок.ПроверитьВывод()) использую массив, в который в цикле добавляю области следующим образом: Результат = Новый Массив ОбластьПодписи = Макет.ПолучитьОбласть("Подписи"); <<Начало условного цикла>> ПодписьДолжность = РегистрыСведений.ОтветственныеЛицаОрганизаций.ПолучитьПоследнее(ТекущаяДата(), ДолжностьОтбор); ОбластьПодписи.Параметры.Должность = ПодписьДолжность.Должность; ОбластьПодписи.Параметры.Сотрудник = ОбщегоНазначения.ФамилияИнициалыФизЛица(ПодписьДолжность.ФизическоеЛицо); Результат.Добавить(ОбластьПодписи); <<Конец условного цикла>> В результате имею массив из n областей, параметры каждой из которых имеют значения параметров последней добавленной области. Поясните пожалуйста этот момент и подскажите как можно сформировать массив из одинаковых областей, но с разными значениями параметров. Спасибо. |
|||
1
Looser-1c
14.11.14
✎
11:38
|
Каждый раз область получать - не?
|
|||
2
stateg
14.11.14
✎
11:39
|
(0) Значение ДолжностьОтбор само собой меняется в цикле
|
|||
3
stateg
14.11.14
✎
11:39
|
(1) В смысле? Не могли бы вы пояснить?
Мне нужен массив областей чтобы проверить вывод на страницу всех их сразу |
|||
4
Looser-1c
14.11.14
✎
11:40
|
(3)
ОбластьПодписи = Макет.ПолучитьОбласть("Подписи"); <<Начало условного цикла>> меняем местами эти две строки |
|||
5
stateg
14.11.14
✎
11:48
|
(4) Хм, это и правда помогло.
Не поясните тогда каким образом параметры уже добавленной в массив области изменяются при добавлении очередной, если ее не получать заново? По моей логике в массиве должны были лежать одинаковые табличные документы, но с разными свойствами (читай параметрами) и почему при этом каждый раз надо получать область я не понимаю |
|||
6
Looser-1c
14.11.14
✎
11:49
|
(5) Ссылка одна и та же....
|
|||
7
stateg
14.11.14
✎
11:53
|
(6) Омг, я думал, что в массив копируется сам табличный документ, а не ссылка на переменную в которой он лежит.
Спасибо за оперативный ответ :) |
|||
8
Looser-1c
14.11.14
✎
11:55
|
(7) Кстати, если немного подумать над результатами - ответ очевиден...
Но я понимаю, пятница ))) Пользуйся. |
|||
9
stateg
14.11.14
✎
11:56
|
(8) Да уж, можно было бы и догадаться, но я что-то подзавис на этом моменте))
|
|||
10
stateg
14.11.14
✎
12:00
|
(8) Хотя, если подумать, то по этой логике когда мы получаем область заново, в массиве будет лежать ссылка на переменную ОбластьПодписи, которая по факту уже заменилась на новую область с другими параметрами. Но, в результате имеем различные области... Да и само понятие "ссылка на переменную" как-то непонятно
Это взрывает мне мозг)) |
|||
11
Looser-1c
14.11.14
✎
12:04
|
(10) просто привыкни.
Каждый раз получая область - ты имеешь новый объект в памяти. Используя один макет - ты имеешь ссылку на одну область. |
|||
12
stateg
14.11.14
✎
12:05
|
Все еще хотелось бы услышать пояснений по поводу того, что в итоге храните в себе массив. Подозреваю, что все-таки это табличный документ, но при этом непонятно почему изменяются параметры, если его не получать заново...
|
|||
13
Looser-1c
14.11.14
✎
12:06
|
(12) ссылки на объекты.
А ссылка - она такая вещь... |
|||
14
stateg
14.11.14
✎
12:11
|
(11) Получается при каждом получении объекта выделяется область в памяти, адрес которой и передается в массив? Тогда возникает вопрос в какой момент компилятор решает, что эта область памяти больше не нужна и освобождает ее, ну да ладно, остановимся на том что есть, негоже в пятницу в такие дебри лезть :D
|
|||
15
stateg
14.11.14
✎
12:11
|
(14) точнее не компилятор а приложение
|
|||
16
Looser-1c
14.11.14
✎
12:12
|
(14) да, именно так и получается.
А освобождение памяти - это отдельная история... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |