1с статьи | Курс-репетитор программиста 1С

Создание и наполнение

// создали структуру без ключей
Структура = Новый Структура();

// добавили ключ - значение
Структура.Вставить("Фамилия", "Еникеев");
Структура.Вставить("Имя", "Марат");
Структура.Вставить("Отчество", "Артурович");

// создали структуру с ключами, значения - Неопределно
КлючиСтруктуры = "Фамилия, Имя, Отчество";
Структура = Новый Структура(КлючиСтруктуры);

// создали структуру с ключами и значениями
КлючиСтруктуры = "Фамилия, Имя, Отчество";
Структура = Новый Структура(КлючиСтруктуры, 
   "Еникеев", "Марат", "Артурович");

Фамилия = Структура.Фамилия;

Имя = Структура["Имя"];

Отчество = Неопределено;
Если Структура.Свойство("Отчество", Отчество) Тогда
   // есть ключ Отчество, 
   // значение считано в переменную Отчество
КонецЕсли;

Если Структура.Количество() Тогда
   // структура содержит ключи
КонецЕсли;

Массив = Новый Массив;
Структура.Вставить("1", Массив);

// Почему возникла ошибка
// "Задано неправильное имя атрибута структуры"?

Показать решение

Обход и изменение

// создали структуру с ключами и значениями
КлючиСтруктуры = "Фамилия, Имя, Отчество";
Структура = Новый Структура(КлючиСтруктуры, 
   "Еникеев", "Марат", "Артурович");

// удаление свойств происходит по ключу
Структура.Удалить("Имя");

Структура.Вставить("_НовоеСвойство");

// обход осуществляется в порядке
// добавления элементов в структуру
// сортировка по ключу не осуществляется
Для Каждого Элемент Из Структура Цикл
   // Элемент имеет тип КлючИЗначение 
   ТекстСообщения = СтрШаблон("ключ %1, значение %2", 
      Элемент.Ключ, Элемент.Значение);
   Сообщить(ТекстСообщения);
КонецЦикла; 

// Что будет выведено?

Показать решение

Структура (Structure)

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

При обходе выбираются элементы коллекции. Порядок обхода неопределен.

Возможно обращение к значению элемента посредством оператора [...].

В качестве аргумента передается значение ключа элемента.

<Имя ключа> (<Key name>)

Использование: Только чтение.

Описание: Тип: Произвольный. В качестве свойств структура предоставляет элементы. Имя свойства определяется ключом, а значение свойства определяется значением элемента.

Доступность:Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Конструктор (На основании фиксированной структуры)

Синтаксис: Новый Структура(<ФиксированнаяСтруктура>)

Параметры:

<ФиксированнаяСтруктура> (необязательный) Тип: ФиксированнаяСтруктура. Фиксированная структура.

Описание: Создаваемая структура заполняется свойствами из исходной фиксированной структуры.

Конструктор (По ключам и значениям)

Синтаксис: Новый Структура(<Ключи>, <Значения>)

Параметры:

<Ключи> (необязательный) Тип: Произвольный. Если тип параметра Строка, то содержит список имен свойств, указанных через запятую. В иных случаях значение параметра преобразуется к строке и используется как список имен создаваемых в структуре свойств, разделенных запятыми. В случае, если для переданного типа параметра не предусмотрено получение строкового представления, будет вызвано исключение. <Значения> (необязательный) Тип: Произвольный. Значения элементов структуры.

Описание: Создает структуру с ключами, значения которых передаются в параметре конструктора. Если в первом параметре заданы ключи элементов структуры, то в следующих параметрах могут быть указаны значения этих элементов в том порядке, в котором они расположены в строке в первом параметре.

Вставить (Insert)

Синтаксис: Вставить(<Ключ>, <Значение>)

Параметры:

<Ключ> (обязательный) Тип: Строка. Ключ устанавливаемого элемента. Ключ должен соответствовать правилам, установленным для идентификаторов: Первым символом ключа должна быть буква или символ подчеркивания (_). Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_). <Значение> (необязательный) Тип: Произвольный. Значение устанавливаемого элемента.

Описание: Устанавливает значение элемента структуры по ключу. Если элемент с переданным значением ключа существует, то его значение заменяется, в противном случае добавляется новый элемент.

Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Количество (Count)

Синтаксис: Количество()

Возвращаемое значение:

Тип: Число.

Описание: Получает количество элементов структуры.

Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Очистить (Clear)

Синтаксис: Очистить()

Описание:Удаляет все элементы структуры.

Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Свойство (Property)

Синтаксис: Свойство(<Ключ>, <НайденноеЗначение>)

Параметры:

<Ключ> (обязательный) Тип: Строка. Ключ для поиска свойства. <НайденноеЗначение> (необязательный) Тип: Произвольный. В данный параметр возвращается найденное значение. Если ключа нет в структуре, то возвращается Неопределено.

Возвращаемое значение: Тип: Булево. Истина - ключ найден; Ложь в противном случае.

Описание: Получает значение элемента по указанному имени, а также проверяет, имеется ли указанное свойство.

Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Удалить (Delete)

Синтаксис: Удалить(<Ключ>)

Параметры:

<Ключ> (обязательный) Тип: Строка. Ключ удаляемого элемента.

Описание: Удаляет элемент структуры с заданным ключом.

Доступность: Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Слишком маленькое разрешение экрана.