Что такое ключ в структуре и зачем он нужен?

В 1С:Предприятие структура — это тип значения, представляющий собой набор пар ключ – значение. Ключ в структуре — это уникальный идентификатор (имя) элемента, с помощью которого осуществляется доступ к соответствующему значению. По сути, структура — это ассоциативный массив или словарь, где ключи — это наименования, а значения — любые данные, включая другие структуры, объекты 1С, таблицы значений и т.д.

Что такое ключ в структуре

Ключ в структуре:

  • представляет собой уникальное имя (строку или имя типа ИмяТипа) внутри данной структуры;

  • используется для поиска и доступа к значению, хранящемуся в структуре;

  • может быть использован для проверки наличия значения, изменения, удаления или добавления нового значения.

Пример структуры:

Стр = Новый Структура;
Стр.Вставить("Имя", "Иван");
Стр.Вставить("Возраст", 30);

Здесь "Имя" и "Возраст" — это ключи. По ним мы можем получить значения "Иван" и 30 соответственно.

Зачем нужен ключ

Ключ выполняет несколько важных функций:

1. Однозначный доступ к данным

Ключ позволяет быстро найти нужное значение:

Сообщить(Стр.Имя); // "Иван"

2. Проверка наличия данных

Можно проверить, существует ли элемент с заданным ключом:

Если Стр.СодержитКлюч("Возраст") Тогда
Сообщить("Возраст указан");
КонецЕсли;

3. Изменение значения

Если ключ уже есть, значение по нему можно изменить:

Стр.Вставить("Имя", "Пётр"); // значение по ключу "Имя" теперь "Пётр"

4. Управление набором данных

Ключ используется для организации данных без необходимости создавать отдельные переменные.

Особенности ключей

  • Ключи чувствительны к регистру: "Имя" и "имя" — разные ключи.

  • Ключи в структуре должны быть уникальными — если вызвать Вставить() с существующим ключом, значение будет заменено, а не добавлено новым.

Тип значения ключа — строка или имя типа (ИмяТипа). Обычно используются строки:

Стр.Вставить("ПараметрОтбора", Истина);

Но можно и так:

Ключ = Новый ИмяТипа("Параметр");
Стр.Вставить(Ключ, Значение);

Работа с ключами

Получение значения по ключу:

ЗначениеИмени = Стр.Получить("Имя");

Проверка наличия ключа:

Если Стр.СодержитКлюч("Возраст") Тогда
Сообщить(Стр.Возраст);
КонецЕсли;

Удаление элемента по ключу:

Стр.Удалить("Возраст");

Перебор всех ключей:

Для Каждого Ключ Из Стр Ключи Цикл
Сообщить("Ключ: " + Ключ + ", Значение: " + Стр\[Ключ\]);
КонецЦикла;

Примеры использования структуры с ключами

Пример 1: передача параметров в общий модуль

Параметры = Новый Структура;
Параметры.Вставить("Начало", '01.01.2024');
Параметры.Вставить("Конец", '31.01.2024');
ОбщиеМодули.ОтчетПоПродажам.СформироватьОтчет(Параметры);

Пример 2: фильтр для запроса

Фильтр = Новый Структура;
Фильтр.Вставить("Покупатель", Справочники.Контрагенты.НайтиПоКоду("00001"));
Фильтр.Вставить("Дата", '01.01.2025');

Пример 3: передача параметров в обработку формы

Форма = Обработки.МояОбработка.ПолучитьФорму();
Параметры = Новый Структура("Сотрудник,Дата", Сотрудник, Дата);
Форма.Открыть(, Параметры);

Связь с JSON и сериализацией

Структура — основной формат, в который сериализуются данные при работе с JSON или веб-сервисами:

JSON = Новый ЗаписьJSON;
JSON.УстановитьСтруктуру(Стр);
Результат = JSON.ЗаписатьСтроку();

Таким образом, ключи в структуре становятся полями JSON-объекта.

Выводы (встроенные в объяснение)

Ключи в структуре в 1С необходимы для:

  • организации именованных значений;

  • удобного доступа к данным;

  • передачи параметров между модулями, обработками, запросами;

  • сериализации и хранения логических структур;

  • динамического управления параметрами и настройками.