Структура и Соответствие — близкие по сути коллекции пар ключ и значение.
Программное создание Структуры и Соответствия:
Новый Структура(<Ключи>, <Значения>)
Новый Соответствие
Соответствие – подобно Структуре, но значения соответствия сопоставляются не строковым представлениям, как в структуре, а друг другу. Отличия между ними кроятся в свойстве Ключ. Ключ в структуре — только строка, а в соответствии может быть любым типом.
Что понимается под словом «Ключ»? Ключ – уникален в пределах коллекции и не может иметь двух одинаковых значений.
При попытке поместить по одному и тому же ключу отличные значения система заменит старое значение новым, а не добавит еще один ключ.
Методы коллекций Структура и Соответствие:
Вставить (Insert)
Вставить(<Ключ>, <Значение>);
Устанавливает значение элемента соответствия по ключу. Если элемент с переданным значением ключа существует, то его значение заменяется, в противном случае добавляется новый элемент.
Пример:
//Структура Отбор = Новый Структура("Дата, Клиент"); Отбор.Вставить("Клиент", ТекКлиент); Отбор.Вставить("Дата", РабочаяДата); //Соответствие ПараметрыОбработки = Новый Соответствие; ПараметрыОбработки.Вставить("Дата начала", ДатаНач); ПараметрыОбработки.Вставить("Дата конца", ДатаКон);
Количество (Count)
Количество();
Получает количество элементов структуры / соответствия.
Пример:
//Структура Отбор.Количество(); //Соответствие ПараметрыОбработки.Количество();
Очистить (Clear)
Очистить();
Удаляет все элементы структуры / соответствия.
Пример:
//Структура Отбор.Очистить(); //Соответствие ПараметрыОбработки.Очистить();
Удалить (Delete)
Удалить(<Ключ>);
Удаляет элемент структуры / соответствия с заданным ключом.
Пример:
//Структура Отбор.Удалить("Дата"); //Соответствие ДоступныеИзмерения = Новый Соответствие; Для Индекс = 0 По ПостроительОтчета.ДоступныеПоля.Количество()-1 Цикл Поле = ПостроительОтчета.ДоступныеПоля[Индекс]; Если Поле.Измерение Тогда ДоступныеИзмерения.Вставить(Поле.Имя, Поле.Представление); КонецЕсли; КонецЦикла; Для Индекс = 0 По ПостроительОтчета.ИзмеренияСтроки.Количество()-1 Цикл Измерение = ПостроительОтчета.ИзмеренияСтроки[Индекс]; ДоступныеИзмерения.Удалить(Измерение.Имя); КонецЦикла; Для Индекс = 0 По ПостроительОтчета.ИзмеренияКолонки.Количество()-1 Цикл Измерение = ПостроительОтчета.ИзмеренияКолонки[Индекс]; ДоступныеИзмерения.Удалить(Измерение.Имя); КонецЦикла;
Метод Структуры «Свойство»
Свойство (Property)
Свойство(<Ключ>, <НайденноеЗначение>);
Получает значение элемента по указанному имени, а также проверяет, имеется ли указанное свойство. Метод является функцией. Возвращает Истина ключ найден, Ложь в противном случае.
Пример:
НоменклатурнаяГруппа = Неопределено; КлючСуществует = ВыбраннаяНоменклатура.Свойство("НоменклатурнаяГруппа", НоменклатурнаяГруппа);
Метод Соответствия «Получить»
Получить (Get)
Получить(<Ключ>);
Получает значение по ключу. Работает аналогично оператору []. Применяется в случаях, когда использование оператора [] невозможно. Метод является функцией. Возвращает значение элемента соответствия, или Неопределено — если указанный ключ отсутствует.
Где используются Структура и Соответствие.
Структура часто используется для установки отбора или в качестве способа передачи параметров в процедуры и функции.
СтруктураОтбора = Новый Структура(); СтруктураОтбора.Вставить("Номенклатура", мСтрока.Номенклатура); СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", мСтрока.ХарактеристикаНоменклатуры); СтруктураОтбора.Вставить("Склад", мСтрока[ИмяРеквизитаРазмещение]); НайденныеСтроки = ТаблицаСерий.НайтиСтроки(СтруктураОтбора);
Соответствие оправдывает название, сопоставляет два разных по сути объекта системы.
СоответствиеНоменклатур = Новый Соответствие; СоответствиеНоменклатур.Вставить(НашаНоменклатура, НоменклатураКонтрагента);