500г
10г
↑ МояСтруктура
↑ Структура (параметр)

Имена свойств

Требования такие же, как к идентификатору переменной — буквы, цифры, _, не начинается с цифры. Регистр важен: Структура.Цена и Структура.цена — разные свойства.

Структура = Новый Структура;
Структура.Вставить("Цена", 65);
Структура.Вставить("цена", 70);
Структура.Количество();  // 2 — это два разных свойства

Порядок элементов

Структура — неупорядоченная коллекция. Порядок обхода Для Каждого не гарантирован платформой (в отличие от Массива, который строго упорядочен) — подробнее см. Обход.

Передача по ссылке

Структура — ссылочный тип, как и массив. Передана в процедуру/функцию — там та же ссылка, не копия. Мутация содержимого (Вставить, Удалить, Очистить, запись через точку) видна и снаружи, а Знач защищает только от переприсвоения параметра целиком:

Процедура Мутировать(Структура)
    Структура.Вставить("Новое", 1);  // меняет содержимое — видно снаружи
КонецПроцедуры
 
Процедура Переприсвоить(Знач Структура)
    Структура = Новый Структура;     // это НЕ уходит наружу
КонецПроцедуры

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

Сравнение

Структура1 = Структура2 сравнивает ссылки, а не содержимое — как у массива. Поэлементного сравнения «из коробки» нет.

Проверка типа

ТипЗнч(Структура) = Тип("Структура");  // Истина, если Структура — именно Структура

Структура или Соответствие

Ключ структуры — всегда строка (имя свойства), и структура поддерживает обращение через точку. Если нужен ключ произвольного типа (число, ссылка на объект, дата и т.п.) — это Соответствие, а не структура.

Структуры