Структура и Соответствие: сходства и отличия.

Структура и Соответствие — близкие по сути коллекции пар ключ и значение.

Программное создание Структуры и Соответствия:

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

Соответствие – подобно Структуре, но значения соответствия сопоставляются не строковым представлениям, как в структуре, а друг другу. Отличия между ними кроятся в свойстве Ключ. Ключ в структуре — только строка, а в соответствии может быть любым типом.

Что понимается под словом «Ключ»? Ключ – уникален в пределах коллекции и не может иметь двух одинаковых значений.

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

Методы коллекций Структура и Соответствие:

Вставить (Insert)

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

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

Пример:

//Структура
Отбор = Новый Структура("Дата, Клиент");
Отбор.Вставить("Клиент", ТекКлиент);
Отбор.Вставить("Дата", РабочаяДата);
//Соответствие
ПараметрыОбработки = Новый Соответствие;
ПараметрыОбработки.Вставить("Дата начала", ДатаНач);
ПараметрыОбработки.Вставить("Дата конца", ДатаКон);

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

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

Получает количество элементов структуры / соответствия.

Пример:

//Структура
Отбор.Количество();
//Соответствие
ПараметрыОбработки.Количество();

Очистить (Clear)

Очистить();

Удаляет все элементы структуры / соответствия.

Пример:

//Структура
Отбор.Очистить();
//Соответствие
ПараметрыОбработки.Очистить();

Удалить (Delete)

Удалить(<Ключ>);

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

Пример:

//Структура
Отбор.Удалить("Дата");

//Соответствие
ДоступныеИзмерения = Новый Соответствие;
Для Индекс = 0 По ПостроительОтчета.ДоступныеПоля.Количество()-1 Цикл
    Поле = ПостроительОтчета.ДоступныеПоля[Индекс];
    Если Поле.Измерение Тогда
        ДоступныеИзмерения.Вставить(Поле.Имя, Поле.Представление);
    КонецЕсли;
КонецЦикла;

Для Индекс = 0 По ПостроительОтчета.ИзмеренияСтроки.Количество()-1 Цикл
    Измерение = ПостроительОтчета.ИзмеренияСтроки[Индекс];
    ДоступныеИзмерения.Удалить(Измерение.Имя);
КонецЦикла;

Для Индекс = 0 По ПостроительОтчета.ИзмеренияКолонки.Количество()-1 Цикл
    Измерение = ПостроительОтчета.ИзмеренияКолонки[Индекс];
    ДоступныеИзмерения.Удалить(Измерение.Имя);
КонецЦикла;

Метод Структуры «Свойство»

Свойство (Property)

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

Получает значение элемента по указанному имени, а также проверяет, имеется ли указанное свойство. Метод является функцией. Возвращает Истина ключ найден, Ложь в противном случае.

Пример:

НоменклатурнаяГруппа = Неопределено;
КлючСуществует = ВыбраннаяНоменклатура.Свойство("НоменклатурнаяГруппа", НоменклатурнаяГруппа);

Метод Соответствия «Получить»

Получить (Get)

Получить(<Ключ>);

Получает значение по ключу. Работает аналогично оператору []. Применяется в случаях, когда использование оператора [] невозможно. Метод является функцией. Возвращает значение элемента соответствия, или Неопределено  — если указанный ключ отсутствует.


Где используются Структура и Соответствие.

Структура часто используется для установки отбора или в качестве способа передачи параметров в процедуры и функции.

СтруктураОтбора = Новый Структура();
СтруктураОтбора.Вставить("Номенклатура", мСтрока.Номенклатура);
СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", мСтрока.ХарактеристикаНоменклатуры);
СтруктураОтбора.Вставить("Склад", мСтрока[ИмяРеквизитаРазмещение]);

НайденныеСтроки           = ТаблицаСерий.НайтиСтроки(СтруктураОтбора);

Соответствие оправдывает название, сопоставляет два разных по сути объекта системы.

СоответствиеНоменклатур = Новый Соответствие;
СоответствиеНоменклатур.Вставить(НашаНоменклатура, НоменклатураКонтрагента);

Оцените статью
( 2 оценки, среднее 5 из 5 )
Добавить комментарий