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