|  | можно-ли из модуля повторного использования получать новую структуру? | ☑ | 
    
        | 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) Покажи функцию.     |  |