Копирование структуры в 1С

В этой небольшой статье рассмотрим как можно получить копию созданной структуры.

Предположим имеем следующую структуру:

СозданнаяСтруктура = Новый Структура;
СозданнаяСтруктура.Вставить("Ключ1", "ЗначениеКлюча1");
СозданнаяСтруктура.Вставить("Ключ2", "ЗначениеКлюча2");

Для копирования структуры в 1С 8 нельзя просто взять и написать такое: КопияСтруктуры = СозданнаяСтруктура. Вместо копии структуры мы просто получаем еще одну переменную КопияСтруктуры, которая указывает на тот же самый набор данных что и переменная СозданнаяСтруктура.
В этом случае поможет следующий цикл:

КопияСтруктуры = Новый Структура;
Для Каждого ЭлементСтруктуры Из СозданнаяСтруктура Цикл
  КопияСтруктуры.Вставить(ЭлементСтруктуры.Ключ, ЭлементСтруктуры.Значение);
КонецЦикла;

3 комментария

  1. Функция КопияСтруктуры(СтруктураИсточник)
    СтруктураПриемник = Новый Структура;
    Для Каждого ЭлементСтруктуры Из СтруктураИсточник Цикл
    Если ТипЗнч(ЭлементСтруктуры.Значение) = Тип(«Структура») Тогда
    СтруктураПриемник.Вставить(ЭлементСтруктуры.Ключ, КопияСтруктуры(ЭлементСтруктуры.Значение));
    Иначе
    СтруктураПриемник.Вставить(ЭлементСтруктуры.Ключ, ЭлементСтруктуры.Значение);
    КонецЕсли;
    КонецЦикла;
    Возврат СтруктураПриемник;
    КонецФункции

  2. НовСтруктура2=ЗначениеИзСтрокиВнутр(ЗначениеВСтрокуВнутр(НовСтруктура1));

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *