Работа с соответствиями
4 мин
Конструкторы
1. По умолчанию
Новый Соответствие()
ДанныеСопоставления = Новый Соответствие;
2. На основании фиксированного соответствия
Фиксированное соответствие - неизменяемое соответствие.
Пусть имеется фиксированное соответствие Пароли, тогда
ПаролиСинхронизации = Новый Соответствие(Пароли);
К элементам структуры можно обащаться указывая ключ через оператор [<Ключ>]
Методы
1. Вставить(<Ключ>, <Значение>)
- <Ключ> (обязательный) - Произвольный - ключ элемента
- <Значение> (необязательный) - Произвольный - значение элемента, если не указано Неопределено
Устанавливает значение элемента по ключу.
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
Сообщить(ОбщепринятыеСокращения["К."]); // Корпус
2. Количество()
Возвращает количество элементов
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
КоличествоСокращений = ОбщепринятыеСокращения.Количество();
Сообщить(КоличествоСокращений); // 4
3. Очистить()
Удаляет все элементы
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
ОбщепринятыеСокращения.Очистить();
КоличествоСокращений = ОбщепринятыеСокращения.Количество();
Сообщить(КоличествоСокращений); // 0
4. Получить(<Ключ>)
- <Ключ> (обязательный) - Произвольный - Ключ значения
Возвращает значение по ключу, аналогично оператору [<Ключ>]. Если значения нет, то Неопределено.
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
Сообщить(ОбщепринятыеСокращения.Получить("К.")); // Корпус
5. Удалить(<Ключ>)
- <Ключ> (обязательный) - Произвольный - Ключ значения
Удаляет элемент соответвтия с указанным ключом
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
ОбщепринятыеСокращения.Удалить("К.");
КоличествоСокращений = ОбщепринятыеСокращения.Количество();
Сообщить(КоличествоСокращений); // 3
Примеры
1. Обойти все элементы соответвия и вывести их ключ и значение
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
Для Каждого Элемент ИЗ ОбщепринятыеСокращения Цикл
Сообщить(Элемент.Ключ + " - " + Элемент.Значение);
КонецЦикла;
2. Проверить есть элемент в соответвии
ОбщепринятыеСокращения = Новый Соответствие;
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
Если ОбщепринятыеСокращения.Получить("Д.") = Неопределено Тогда
Сообщить("Элемент отсутствует");
Иначе
Сообщить("Элемент найден");
КонецЕсли;
3. Сформировать многоуровневое соответвие
На самом низком уровне создадим соответствие «ПодсистемыНСИЗакупок», это соответствие будет включено в соответствие «ПодсистемыЗакупки», которое включим во «ВсеПодсистемы». Получим 3 уровня вложенности: «ВсеПодсистемы» -> «ПодсистемыЗакупки» -> «ПодсистемыНСИЗакупок».
ВсеПодсистемы = Новый Соответствие;
ПодсистемыЗакупки = Новый Соответствие;
ПодсистемыНСИЗакупок = Новый Соответствие;
ПодсистемыНСИЗакупок.Вставить("НСИ", "Партнеры");
ПодсистемыЗакупки.Вставить("НСИЗакупок", ПодсистемыНСИЗакупок);
ВсеПодсистемы.Вставить("Закупки", ПодсистемыЗакупки);
НСИ = ВсеПодсистемы["Закупки"]["НСИЗакупок"]["НСИ"];
Сообщить(НСИ); // Партнеры