# Модификация ключа структуры вне функции-конструктора

Если Структура создана функцией-конструктором, то изменение состава ключей структуры методами 
`Структура.Вставить("Ключ", ...); Структура.Удалить("Ключ"); Структура.Очистить();` 
может приводить к ошибкам из-за неопределенности состава данных.

## Неправильно

Неправильно удалять все ключи структуры, удалять ключ или заменять ключ внешней структуры.

```bsl
// @strict-types

Процедура Неправильно1() Экспорт

	ТестоваяСтруктура = Конструктор();
	ТестоваяСтруктура.Очистить(); 
	ТестоваяСтруктура.Вставить("Ключ1", 10); 
	ТестоваяСтруктура.Удалить("Ключ2"); 

КонецПроцедуры

// Возвращаемое значение:
//  Структура:
// * Ключ1 - Булево - 
// * Ключ2 - Число - 
Функция Конструктор() Экспорт

	ТестоваяСтруктура = новый Структура("Ключ1, Ключ2", Истина, 10);
	ТестоваяСтруктура.Вставить("Ключ2", 20);

	Возврат ТестоваяСтруктура; 

КонецФункции
```

## Правильно

Обращаться к существующему ключу необходимо напрямую и устанавливать новое значение.
Вместо удаления ключа необходимо устанавливать значение, которое представляет пустое или начальное значение.

```bsl
// @strict-types

Процедура Правильно1() Экспорт

	ТестоваяСтруктура = Конструктор();
	ТестоваяСтруктура.Ключ1 = false; 
	ТестоваяСтруктура.Ключ2 = -1; 

КонецПроцедуры

// Возвращаемое значение:
//  Структура:
// * Ключ1 - Булево - 
// * Ключ2 - Число - 
Функция Конструктор() Экспорт

	ТестоваяСтруктура = новый Структура("Ключ1, Ключ2", Истина, 10);
	ТестоваяСтруктура.Вставить("Ключ2", 20);

	Возврат ТестоваяСтруктура; 

КонецФункции
```

## См.

