Методы типа Соответствие
Соответствие в 1С представляет коллекцию уникальных пар «ключ–значение», которая поддерживается специальными методами. Например, метод Вставить(ключ, значение) добавляет новый элемент. Если такой ключ уже есть, его значение заменяется. Метод Получить(ключ) возвращает значение по указанному ключу. При отсутствии ключа выбрасывается исключение. Метод Удалить(ключ) удаляет элемент, если он существует. Метод Количество() возвращает число элементов. А Очистить() удаляет все элементы.
Создание соответствия
Однако с начала необходимо создать само соответствие. В 1С это можно сделать несколькими способами.
Либо создается новое пустое соответствие:
Соответствие = Новый Соответствие();
Либо можно заполнить по фиксированному соответствию. В этом случае новая переменная будет заполнена всеми значениями исходного соответствия:
Соответствие = Новый Соответствие(ФиксированноеСоответствие);
Доступ к элементам соответствия
После создания соответствие готово к использованию. Теперь рассмотрим доступ к его элементам. Существует два способа: через оператор [] или методы. Например, Соответствие[ключ] возвращает значение. Если ключа нет, поднимется исключение. Если же присвоить Соответствие[ключ] = значение, новый элемент автоматически добавится. То же самое делает метод Вставить. Функционально доступ осуществляется методом Получить(ключ). Он либо вернёт значение, либо вернет Неопределено, если ключа нет. Метод Количество() сообщает число элементов. Цикл Для Каждого позволяет перебрать все пары. Элемент цикла имеет свойства Ключ и Значение.
Как проверить, существует ли элемент в соответствии
Самый надежный способ проверки – обойти соответствие в цикле. Дело в том, что проверить можно методом Получить(ключ). Однако если в соответствии нет ключа или есть ключ, но его значение равно Неопределено, ответ метода будет одинаковым – это будет значение Неопределено.
Поэтому надежнее всего пройти в цикле, если для вас принципиально именно наличие такого ключа. Если не принципиально, используйте Получить( ИмяКлюча ).
Еще можно в попытке обратиться к элементу соответствия через скобки: []. Если попали в исключение – значит ключа с таким именем в соответствии нет.
Отличия Соответствия от типа Структура
Структура и Соответствие по сути представляют коллекции «ключ–значение», но отличаются по возможностям и применению. Ниже приведены основные различия:
| Критерий | Структура (Structure) | Соответствие (Map) |
|---|---|---|
| Типы ключей | Строковые (имена полей) | Любые типы (числа, строки, ссылки на объекты и т.д.) |
| Доступ | Через свойства (.Поле) или [] |
Только через методы и оператор [] |
| Проверка наличия | Метод Свойство(ключ, НайденоЗн) |
Методы Получить() |
| Добавление элемента | Структура.Вставить("ключ", значение) |
Соответствие.Вставить(ключ, значение) |
| Применение | Фиксированные наборы полей (настройки, параметры) | Динамические коллекции, кэш, оперативные справочники |
Итак, какой же подход предпочтёте вы: гибкое Соответствие или надёжную Структуру?













































