В этой небольшой статье рассмотрим как можно получить копию созданной структуры.
Предположим имеем следующую структуру:
СозданнаяСтруктура = Новый Структура; СозданнаяСтруктура.Вставить("Ключ1", "ЗначениеКлюча1"); СозданнаяСтруктура.Вставить("Ключ2", "ЗначениеКлюча2");
Для копирования структуры в 1С 8 нельзя просто взять и написать такое: КопияСтруктуры = СозданнаяСтруктура. Вместо копии структуры мы просто получаем еще одну переменную КопияСтруктуры, которая указывает на тот же самый набор данных что и переменная СозданнаяСтруктура.
В этом случае поможет следующий цикл:
КопияСтруктуры = Новый Структура; Для Каждого ЭлементСтруктуры Из СозданнаяСтруктура Цикл КопияСтруктуры.Вставить(ЭлементСтруктуры.Ключ, ЭлементСтруктуры.Значение); КонецЦикла;
Функция КопияСтруктуры(СтруктураИсточник)
СтруктураПриемник = Новый Структура;
Для Каждого ЭлементСтруктуры Из СтруктураИсточник Цикл
Если ТипЗнч(ЭлементСтруктуры.Значение) = Тип(«Структура») Тогда
СтруктураПриемник.Вставить(ЭлементСтруктуры.Ключ, КопияСтруктуры(ЭлементСтруктуры.Значение));
Иначе
СтруктураПриемник.Вставить(ЭлементСтруктуры.Ключ, ЭлементСтруктуры.Значение);
КонецЕсли;
КонецЦикла;
Возврат СтруктураПриемник;
КонецФункции
НовСтруктура2=ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(НовСтруктура1));
Михаил, данную функцию не рекомендуется использовать. Она нужна для совместимости с 7.7