Структура 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);
Фикс = Новый ФиксированнаяСтруктура(Структура);
Сообщить(Фикс.ИмяЗначения);
Впервые в истории планеты Земля все люди во всех странах задались единой целью: заработать столько денег, чтобы уподобиться героям рекламы.
— Фредерик Бегбедер