Имя: Пароль:
1C
1С v8
можно-ли из модуля повторного использования получать новую структуру?
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) Покажи функцию.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn