Структуры в 1С: как хранить связанные данные удобно

Пример: Как используется структура в 1С


Пример 01.

Человек = Новый Структура;
Человек.Вставить("Имя", "Иван");
Человек.Вставить("Фамилия", "Сидоров");
Человек.Вставить("Возраст", 25);

Сообщить(Человек.Имя + " " + Человек.Фамилия + ", " + Человек.Возраст + " лет");

Пример 02.

Процедура ПечатьСообщения(Параметры)
    Сообщить(Параметры.Текст);
    Сообщить("Цвет: " + Параметры.Цвет);
КонецПроцедуры;

Параметры = Новый Структура("Текст, Цвет", "Привет!, Красный");
ПечатьСообщения(Параметры);

Пример 03.

Настройки = Новый Структура;
Настройки.Вставить("Тема", "Светлая");
Настройки.Вставить("ПоказыватьПодсказки", Истина);
Настройки.Вставить("РазмерШрифта", 12);

Сообщить("Текущая тема: " + Настройки.Тема);

Пример 04.

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

Рез = РассчитатьИтог(100, 3);
Сообщить("Сумма: " + Рез.Сумма + ", НДС: " + Рез.НДС);

Пример 05.

Адрес = Новый Структура("Город, Улица, Дом", "Москва, Ленина, 10");
Человек = Новый Структура("Имя, Адрес", "Иван, ");

Человек.Адрес = Адрес;

Сообщить("Живет: " + Человек.Имя + " → " + Человек.Адрес.Город + ", " + Человек.Адрес.Улица + " " + Человек.Адрес.Дом);

структура в 1С

При разработке на 1С часто возникает задача хранить и обрабатывать связанные между собой данные. Для этого идеально подходит объект Структура. Давайте разберёмся, что это такое, как её создать и использовать на практике.


Что такое структура

Структура —это как коробка с отделениями, где у каждого отделения есть свой ключ — то есть название. Ключ говорит, что именно хранится внутри. Например, ты создаёшь структуру «Человек» и задаёшь ключи: «Имя», «Фамилия», «Возраст». В ключ «Имя» кладёшь значение «Иван», в ключ «Фамилия» — «Петров», в ключ «Возраст» — число 30. В итоге получается набор пар «ключ → значение», и ты всегда можешь быстро достать нужное, обратившись именно по ключу.

  • Значение — любое значение: число, строка, дата, объект, массив или даже другая структура.

Если массив можно представить как «список значений», то структура — это скорее «таблица с названиями колонок».


Создание структуры

Создать структуру можно несколькими способами:

  1. Пустая структура:
СтруктураДанных = Новый Структура;
  1. Сразу с ключами и значениями:
СтруктураДанных = Новый Структура("Имя, Возраст, Город", "Иван, 30, Москва");
  1. Добавление элементов после создания:
СтруктураДанных.Вставить("Имя", "Иван");
СтруктураДанных.Вставить("Возраст", 30);
СтруктураДанных.Вставить("Город", "Москва");

Доступ к элементам

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

Сообщить(СтруктураДанных.Имя);       // Иван
Сообщить(СтруктураДанных["Возраст"]); // 30

Изменить элемент просто:

СтруктураДанных.Город = "Санкт-Петербург";

Структуры внутри структур

В 1С можно хранить в структуре другие структуры:

Адрес = Новый Структура;
Адрес.Вставить("Город", "Москва");
Адрес.Вставить("Улица", "Тверская");

Человек = Новый Структура;
Человек.Вставить("Имя", "Анна");
Человек.Вставить("Возраст", 25);
Человек.Вставить("Адрес", Адрес);

Сообщить(Человек.Адрес.Город); // Москва

Когда использовать структуры

Когда лучше использовать структуры в 1С

Структуры удобны в тех случаях, когда:

  • нужно хранить данные с названиями (например: Имя = «Иван», Возраст = 30, Город = «Москва»);
  • надо передать несколько параметров в процедуру или функцию, но не хочется создавать много отдельных переменных;
  • требуется хранить «объект» с разными свойствами (например, «Машина» с ключами «Марка», «Модель», «Цвет»);
  • нужно собрать и вернуть из функции несколько результатов сразу.

А если просто нужен список значений без подписей (например: «Москва», «Казань», «Самара»), то лучше использовать массив.


задачи

Задача 1. «Человек»

Цель: создать структуру и обратиться к полям.
Требуется:

  1. Создай структуру с ключами: Имя, Фамилия, Возраст.
  2. Заполни значениями.
  3. Выведи в сообщения строку вида: Иван Петров, 30 лет.

Задача 2. «Адрес в структуре»

Цель: добавить вложенную структуру.
Требуется:

  1. К структуре из задачи 1 добавь ключ Адрес — это вложенная структура с ключами Город, Улица, Дом.
  2. Выведи строку вида: Адрес: Москва, Ленина, 10.

Задача 3. «Проверка ключей»

Цель: безопасная работа с ключами.
Требуется:

  1. Перед выводом Отчество проверь, есть ли такой ключ в структуре (Свойство / Содержит).
  2. Если ключа нет — выводи Отчество не задано.

Итоги

Структуры в 1С — это как умные ящички с табличками: каждому значению даёшь ключ, и потом легко находишь нужное. Хоть параметры, хоть целые объекты — всё можно сложить в одну структуру и передавать туда-сюда без лишних переменных.