Back to top

Структрура в 1С:Предприятие

Опубликовано e-1c@mail.ru - ср, 08/28/2019 - 06:47

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

Ключ является строковым идентификатором, по которому можно получать или устанавливать Значение. Идентификатор ключа должен содержать только буквы, цифры и символы подчеркивания, и не может начинаться с цифры.

Структура используется в алгоритмах, написанных на встроенном языке 1С:Предприятие 8, для хранения значений, привязанных к имени.

Элемент структуры
Каждый элемент структуры является программным объектом КлючИЗначение встроенного языка и содержит следующие свойства:

  • Ключ (Строка) — строковый идентификатор
  • Значение (Произвольный тип) — произвольное значение

Следует отметить, что ключ может быть только строковым и уникальным, не может быть двух и более одинаковых ключей.

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

Создание новой структуры выполняется с использованием различных техник. Самый простой способ — создание с помощью оператора Новый:

Структура = Новый Структура;

Второй способ — использование конструктора, который вместе с созданием структуры выполняет ее инициализацию. Например, так:

Структура = Новый Структура("Код,Наименование");

Все созданные свойства структуры будут содержать значение Неопределено. Для того, чтобы задать другое значение по умолчанию, нужно передать его конструктору (последовательность значений должны совпадать с последовательностью имен свойств):

Структура = Новый Структура("Код,Наименование", 100, "Стул деревянный");

Добавить значение в структуру

Для добавления новых элементов структуры и замещения существующих используется метод Структура.Вставить():

В данном примере Номеклатура — это ключ, а текНомеклатура.Наименование — значение ключа
ЕдиницаХраненияОстатков — это ключ, соответствено текНомеклатура.ЕдиницаХраненияОстатков — значение ключа

стрНоменклатура=Новый Структура;
стрНоменклатура.Вставить("Номеклатура",текНомеклатура.Наименование);
стрНоменклатура.Вставить("ЕдиницаХраненияОстатков",текНомеклатура.ЕдиницаХраненияОстатков);

Перебрать элементы структуры

Для каждого СтрЭлемент Из стрНоменклатура Цикл
	Сообщить(«Ключ: «+СтрЭлемент.Ключ+ » значение: «+ СтрЭлемент.Значение);
КонецЦикла;

Изменить значение в структуре

Если есть ключ, у него изменяется значение, если же нет ключа, то он создается.

стрНоменклатура.Вставить(«Номеклатура»,«Сапоги»);
стрНоменклатура.Вставить(«ЕдиницаХраненияОстатков»,«пар.»);

Узнать значения ключа в структуре

Перем ТекущееЗначение;
	стрНоменклатура.Свойство(«Номеклатура»,ТекущееЗначение);
	Сообщить(«ТекущееЗначение: «+ТекущееЗначение);

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

Фамилия = П1.Фамилия; //переменной Фамилия будет присвоено значение "Иванов"
Возраст = П1.Возраст; //переменной Возраст будет присвоено значение 25

Изменить значение элемента структуры по имени ключа

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

П1.Возраст=26; // Значение изменено на 26
П1.Вставить("Возраст",26); // Значение изменено на 26

Узнать количество значений в структуре

	Количество=стрНоменклатура.Количество();
	Сообщить(«Количество значений: «+Количество);

Удалить одно значение в структуре

стрНоменклатура.Удалить(«ЕдиницаХраненияОстатков»);

Удалить все значения в структуре

стрНоменклатура.Очистить();