Соответствие допускает ключи разных типов. Получить возвращает Неопределено и для отсутствующего ключа, и для сохранённого такого значения; факт наличия проверяем отдельным перебором.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Выполняйте в серверном общем модуле учебной базы. Все коллекции и вложенные значения создаются кодом; метаданные, файлы и интернет не нужны.
Индексы массивов начинаются с 0. Ключ соответствия — отдельное значение и не обязательно совпадает с индексом/порядком обхода.
КоличествоПоКлючу = Новый Соответствие;
Сообщить(КоличествоПоКлючу.Количество() = 0);
КоличествоПоКлючу.Вставить(1, 3);
КоличествоПоКлючу.Вставить("1", 7);
КоличествоПоКлючу.Вставить("ОжидаетУточнения", Неопределено);
Сообщить(КоличествоПоКлючу.Количество() = 3);
Сообщить(КоличествоПоКлючу.Получить(1) = 3);
Сообщить(КоличествоПоКлючу.Получить("1") = 7);
Сообщить(КоличествоПоКлючу.Получить("НетКлюча") = Неопределено);
Сообщить(КоличествоПоКлючу.Получить("ОжидаетУточнения") = Неопределено);
ЕстьОжидающий = Ложь;
ЕстьНесуществующий = Ложь;
Для Каждого Пара Из КоличествоПоКлючу Цикл
Если Пара.Ключ = "ОжидаетУточнения" Тогда ЕстьОжидающий = Истина; КонецЕсли;
Если Пара.Ключ = "НетКлюча" Тогда ЕстьНесуществующий = Истина; КонецЕсли;
КонецЦикла;
Сообщить(ЕстьОжидающий);
Сообщить(Не ЕстьНесуществующий);
КоличествоПоКлючу.Вставить(1, 5);
Сообщить(КоличествоПоКлючу.Количество() = 3);
Сообщить(КоличествоПоКлючу.Получить(1) = 5);Разбор по шагам
Создаём пустое соответствие конструктором по умолчанию и добавляем числовой/строковый ключи с одинаковым внешним написанием.
Число 1 и строка 1 — разные ключи. Каждый возвращает своё количество, 3 и 7.
Ключ ОжидаетУточнения существует со значением Неопределено. Возвращаемое Неопределено само по себе не доказывает отсутствие ключа.
Перебор КлючИЗначение проверяет наличие двух строковых ключей без предположений о порядке.
Повторная Вставить с ключом 1 заменяет значение 3 на 5, а не создаёт четвёртую пару.
Как проверить результат
Все десять логических сообщений дают Истина.
В конце числовой ключ 1 содержит 5, строковый 1 — 7; всего три пары.
ОжидаетУточнения существует, НетКлюча отсутствует, хотя Получить для обоих возвращает Неопределено.
Ожидаемый результат
Показаны типизированные ключи, замена значения и неоднозначность отсутствующего/неопределённого значения.
На что обратить внимание
Не подменяйте числовые идентификаторы строками в одной части кода без согласованной нормализации ключей.
У Соответствие нет метода Свойство как у Структура. Проверку наличия выбирайте по контракту вашей коллекции.
Для устойчивой логики с nullable-значениями можно хранить собственную структуру статуса/значения, не смешивая отсутствие и ожидание уточнения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.