Тип данных Соответствие в платформе 1С:Предприятие — это коллекция, состоящая из пар «ключ-значение». Каждый элемент коллекции содержит уникальный ключ и связанное с ним значение. Ключи должны быть уникальными — добавление элемента с уже существующим ключом заменяет значение.
Соответствие является одним из наиболее часто используемых типов коллекций в 1С наряду с Массивом и Структурой. Основное отличие от Структуры — возможность использовать в качестве ключей не только строки, но и значения других типов данных.
Как создать соответствие
Создание соответствия выполняется с помощью оператора Новый:
Для Каждого Элемент Из МоеСоответствие Цикл
Ключ = Элемент.Ключ;
Значение = Элемент.Значение;
Сообщить("Ключ: " + Ключ + ", Значение: " + Значение);
КонецЦикла;
Каждый элемент имеет свойства Ключ и Значение.
Можно использовать итератор:
Итератор = МоеСоответствие.ПолучитьИтератор();
Пока Итератор.Следующий() Цикл
Элемент = Итератор.Текущий;
Ключ = Элемент.Ключ;
Значение = Элемент.Значение;
Сообщить("Ключ: " + Ключ + ", Значение: " + Значение);
КонецЦикла;
Как удалить элемент соответствия
МоеСоответствие.Удалить("Ключ1");
С проверкой успешности:
Если МоеСоответствие.Удалить("Ключ1") Тогда
Сообщить("Элемент удалён");
Иначе
Сообщить("Элемент не найден");
КонецЕсли;
Как очистить все элементы соответствия
МоеСоответствие.Очистить();
Если МоеСоответствие.Количество() = 0 Тогда
Сообщить("Соответствие очищено");
КонецЕсли;
КэшСправочников = Новый Соответствие;
Функция ПолучитьСправочник(КодСправочника)
Если КэшСправочников.СодержитКлюч(КодСправочника) Тогда
Возврат КэшСправочников.Получить(КодСправочника);
Иначе
Данные = ЗапросСправочника(КодСправочника);
КэшСправочников.Вставить(КодСправочника, Данные);
Возврат Данные;
КонецЕсли;
КонецФункции;
Пример 2: Подсчёт количества вхождений
Результат = Новый Соответствие;
Для Каждого Элемент Из МассивДанных Цикл
Если Результат.СодержитКлюч(Элемент) Тогда
Результат[Элемент] = Результат[Элемент] + 1;
Иначе
Результат.Вставить(Элемент, 1);
КонецЕсли;
КонецЦикла;
Пример 3: Группировка данных
ГруппировкаПоКонтрагентам = Новый Соответствие;
Для Каждого Документ Из ВыборкаДокументов Цикл
Контрагент = Документ.Контрагент;
Если Не ГруппировкаПоКонтрагентам.СодержитКлюч(Контрагент) Тогда
ГруппировкаПоКонтрагентам.Вставить(Контрагент, Новый Массив);
КонецЕсли;
ГруппировкаПоКонтрагентам[Контрагент].Добавить(Документ);
КонецЦикла;
Сравнение ключей выполняется оператором =. Для объектов (ссылок на элементы справочников, документов и т.д.) сравнение выполняется по ссылке.
Производительность
Соответствие обеспечивает быстрый доступ к элементам по ключу за счёт использования хэш-таблицы. Сложность поиска в среднем O(1), что эффективно для больших коллекций.
Заключение
Соответствие — мощный инструмент для работы с коллекциями данных в 1С. Основное преимущество — быстрый доступ по ключу и гибкость выбора типа ключа.
Понимание методов работы с соответствием помогает писать эффективный и читаемый код при кэшировании, группировке и подсчёте данных. Регулярное использование этого типа становится привычкой опытных разработчиков 1С.
Как работает тип Соответствие в 1С 8.3 и 8.2
Что такое тип Соответствие
Тип данных Соответствие в платформе 1С:Предприятие — это коллекция, состоящая из пар «ключ-значение». Каждый элемент коллекции содержит уникальный ключ и связанное с ним значение. Ключи должны быть уникальными — добавление элемента с уже существующим ключом заменяет значение.
Соответствие является одним из наиболее часто используемых типов коллекций в 1С наряду с Массивом и Структурой. Основное отличие от Структуры — возможность использовать в качестве ключей не только строки, но и значения других типов данных.
Как создать соответствие
Создание соответствия выполняется с помощью оператора Новый:
Элементы добавляются методом Вставить():
Также можно создать соответствие через глобальный контекст:
При создании соответствия можно указать начальную ёмкость:
Как получить значение соответствия по ключу
Для получения значения используется метод Получить():
Если ключ отсутствует, метод вернёт Неопределено. В 1С 8.3 можно использовать оператор []:
Как узнать, есть ли значение по ключу
Проверка наличия ключа выполняется методом СодержитКлюч():
Также можно использовать Получить() с проверкой на Неопределено:
Как изменить значение по ключу
Изменение выполняется методом Вставить() или оператором [] (только 8.3):
Как узнать количество элементов соответствия
Количество элементов возвращается методом Количество():
Как обойти все элементы соответствия
Каждый элемент имеет свойства Ключ и Значение.
Можно использовать итератор:
Как удалить элемент соответствия
С проверкой успешности:
Как очистить все элементы соответствия
Дополнительные методы работы с соответствием
Копирование соответствия
Объединение соответствий
Получение всех ключей и значений
Примеры использования
Пример 1: Кэширование данных
Пример 2: Подсчёт количества вхождений
Пример 3: Группировка данных
Особенности работы с типом Соответствие
Типы данных ключей
Сравнение ключей
Сравнение ключей выполняется оператором =. Для объектов (ссылок на элементы справочников, документов и т.д.) сравнение выполняется по ссылке.
Производительность
Соответствие обеспечивает быстрый доступ к элементам по ключу за счёт использования хэш-таблицы. Сложность поиска в среднем O(1), что эффективно для больших коллекций.
Заключение
Соответствие — мощный инструмент для работы с коллекциями данных в 1С. Основное преимущество — быстрый доступ по ключу и гибкость выбора типа ключа.
Понимание методов работы с соответствием помогает писать эффективный и читаемый код при кэшировании, группировке и подсчёте данных. Регулярное использование этого типа становится привычкой опытных разработчиков 1С.
ЭДО в 1С 8.3: как пользоваться
03.03.2026Сертификаты 1С: что это и как получить
03.03.2026Как работает тип Соответствие в 1С 8.3 и 8.2
03.03.2026ТОП инструментов разработчика 1С
03.03.2026Как подключить модуль Диадок в 1С
03.03.2026Как установить драйвер АТОЛ 30Ф для 1С
03.03.2026