|
можно-ли из модуля повторного использования получать новую структуру?
| ☑ |
0
vde69
08.10.15
✎
11:47
|
есть цикл/рекурсия внутри которого мне нужно каждый раз получать новую структуру заполненную значениями по умолчанию. (эти значения всегда имеют несколько ограниченных вариантов, но самих параметров много, десятки...)
сделал функцию, положил ее в модуль повторного использования, получаю структуру и если я в ней что-то меняю (например: ПараметрыБлока.ID = ПараметрыБлока.ID + 1;) то при следующем вызове моей функции получаю мою структуру где ID уже изменен...
чего лучше
1. перенести функцию создающую структуру в обычный модуль
2. после получения структуры ее копировать и работать с ее копией?
|
|
1
ДенисЧ
08.10.15
✎
11:49
|
повторное использование на время вызова ?
|
|
2
pumbaEO
08.10.15
✎
11:49
|
обновитьповторноиспользуемыезначения
|
|
3
Rebelx
08.10.15
✎
11:49
|
я за (1)
|
|
4
vde69
08.10.15
✎
11:58
|
(3) наверно я то же за 1.
|
|
5
Torquader
08.10.15
✎
12:07
|
А если получать строковое представление структуры и потом её "восстанавливать" в структуру ?
|
|
6
vde69
09.10.15
✎
13:21
|
кстати поведение в сабже хоть и понятно, но далеко не интуитивно, интересно почему в описании нет ничего про такое поведение?
|
|
7
dumb851
09.10.15
✎
13:30
|
не изменяй полученную структуру, а копируй её в новую.
|
|
8
МишельЛагранж
07.11.15
✎
16:27
|
(0)"ПараметрыБлока.ID = ПараметрыБлока.ID + 1"
не совсем понятно: если ID уже изменен, то, естественно, переменная "ID" меняется везде, и в структуре тоже.
Такое поведение - норма в обычных языках программирования, а в 1С - равновесие достигается путем долгого и нудного взаимодействия с никому не нужными областями видимости.
|
|
9
Лефмихалыч
07.11.15
✎
17:15
|
(0) если проблема в том. что кэширующий модуль всегда возвращает ссылку на одид и тот же объект в памяти, а надо просто, чтобы он некую болванку объекта возвращал без вычислений, то возвращай не структуру, а строку для ЗначениеИзСтрокиВнутр
|
|
10
NcSteel
07.11.15
✎
17:38
|
(6) Оно как раз интуитивно, так как берется результат из памяти
|
|
11
mistеr
08.11.15
✎
12:44
|
(0) Покажи функцию.
|
|