Что такое структура в 1с
Перейти к содержимому

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

  • автор:

Структура 1с. Описание и примеры использования

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

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

Элемент структуры

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

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

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

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

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

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

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

Обращение к свойствам структуры

Для доступа к значениям структуры применяется операция разыменования: указывается имя переменной, объявленной как структура, а затем ключ значения через точку. Разыменование возможно как слева от оператора присваивания, так и справа:

Перебор элементов структуры

Для перебора (обхода) всех элементов структуры используется оператор цикла Для Каждого :

Структура.

Структура неупорядоченная коллекция работающая по принципу "Ключ и значение", предназначенная для создания объектов с произвольным набором свойств. То есть каждый элемент этой коллекции представляет собой пару "Ключ и значение". Структуру очень часто используют для отборов, если во встроенном языке в качестве параметра для какой либо встроенной функции можно указать отбор (НайтиСтроки для табличных частей и таблиц значений, Выбрать для справочников и тд), то там всегда ожидается структура. Структуру так же удобно использовать, для передачи списка параметров.

Создание и использование.

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

Также можно создать структуру без параметров и добавить элементы когда будет удобно:

Ещё один способ создания — на основе фиксированной структуры. А если учесть, что фиксированную структуру можно создать на основе обычной, несложно сделать копию обычной структуры:

После создания можно обращаться к значениям структуры по ключам:

Если заранее неизвестно, содержит ли структура нужный ключ, можно использовать метод Свойство который возвращает Истина если запрошенный ключ есть и Ложь если ключа нет. Например:

Ограничения

При создании и использовании структур необходимо принимать во внимание следующие ограничения:

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

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Структура

Описание:

Представляет собой коллекцию пар КлючИЗначение. При этом ключ может быть только строковым и должен удовлетворять требованиям, предъявляемым к именованию переменных встроенного языка.

К значениям структуры можно обращаться как к свойствам объекта. При этом ключ используется как имя свойства.

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

Элементы коллекции: КлючИЗначение

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

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

В языке программирования 1С, есть несколько коллекций (множеств) значений. Каждые из них имеют свои возможности и предназначение, хотя иногда имеют одинаковые методы (например Количество()).

Структура — один из основных видов коллекций, по сути, это массив именованных значений.

Какие особенности имеет структура

  • Имя (Ключ) значения всегда строка, которое не может начинаться на цифру и содержать некоторые символы (пробел,%. >,< и другие);
  • ключ не может быть пустым;
  • значение может быть произвольного типа, в том числе «Неопределенно» или же Структура(вложенная);
  • ключ уникален во всей структуре;
  • регистр ключа имеет значение («Ключ» не равно «ключ»);
  • структура может быть пустой(не содержать значений);
  • значения могут быть инициализированы при создании, либо заполнены поочередно;
  • является универсальным транспортным значением для всех платформ 1с и видов исполнения (не мутабельное);
  • возможно использование в системной процедуре ЗаполнитьЗначения();
  • тип «Структура» не хранится в базе данных (это рабочее, промежуточное значение или свойство объекта);
  • ключ нельзя изменить (переименовать);
  • скоростью обращения к значению обычно пренебрегают при небольших коллекциях, но структура не является индексированной таблицей (скорость опредяеляется скоростью памяти, перебора значений до искомого).

Приемы работы со структурой

//Создание структуры:
Структура = Новый Структура;
Структура = Новый Структура(«Ключ1,Ключ2″,»Значение1»,2);

//Обращение к значению структуры
Значение1 = Структура.Ключ1;
Значение2 = Структура[«Ключ2»];

//Добавление значения
Структура.Вставить(«Ключ3», Дата(1,1,1));

//Замена значения — если «Ключ3» существует, значение заменяется, иначе добавляется
Структура.Вставить(«Ключ3», Дата(2020,11,1));

//Удаление одного значения
Структура.Удалить(«Ключ2»);

//Удаление всех значений
Структура.Очистить();

//Перебор значений
Для каждого ЭлементСтруктуры из Структура Цикл
Сообщить(ЭлементСтруктуры.Ключ);
Сообщить(ЭлементСтруктуры.Значение);
КонецЦикла;

//Копирование значений структуры
Структура = Новый Структура(«Ключ1,Ключ2″,»Значение1»,2);
СтруктураПриемник = Новый Структура(«Ключ1,Ключ2»);

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

Если Структура.Свойство(«Ключ») = Ложь Тогда //Используется как функция

Структура.Вставить(«Ключ»,»Теперь ключ есть»);

Структура.Свойство(«Ключ»,Значение); //Используется как процедура

Сообщить(Значение); //Значение стало «Теперь ключ есть»

//У объекта есть служебное свойство: ДополнительныеСвойства
Документ = Документы.РеализацияТоваровИУслуг.СоздатьОбъект();
Документ.ДополнительныеСвойства.Вставить(«Ключ1»,2);

У структуры есть объект-потомок — «ФиксированнаяСтруктура», ее значения нельзя поменять: вставить, удалить, остальные методы у них одинаковы, поэтому она и называется фиксированной.

Фиксированную структуру можно инициализировать при создании на основании структуры.

Структура = Новый Структура(«ИмяЗначения»,0);
Фикс = Новый ФиксированнаяСтруктура(Структура);
Сообщить(Фикс.ИмяЗначения);

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

— Фредерик Бегбедер

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *