Конструктор принимает собственное соответствие нестандартных исходных полей. По справке явная Страна имеет приоритет над конфликтующим RawData.Country.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база, серверный контекст. ДанныеКонтакта и связанные типы доступны на сервере: для этих задач не нужен мобильный телефон, разрешение на контакты или настоящая адресная книга.
Вся персона вымышлена: Учебный Ученик Тестович, организация Учебный магазин. Телефоны 000-000-01/02 — демонстрационные строки, адрес student@example.invalid учебный. Ничего не отправляйте и не звоните.
Код создаёт объекты только в памяти. Он не вызывает менеджер контактов устройства, синхронизацию, геокодирование, интернет или запись справочника Партнеры/КонтактныеЛица.
Исходные = Новый Соответствие;
Исходные.Вставить("Country", "Конфликтующая учебная страна");
Исходные.Вставить("guideCode", "A-01");
Поля = Новый Структура;
Поля.Вставить("Страна", "Явная учебная страна");
Поля.Вставить("Представление", "Учебный адрес для проверки приоритета");
Поля.Вставить("ИсходныеДанные", Исходные);
Адрес = Новый ДанныеАдреса(Поля);
Сообщить(Адрес.Страна = "Явная учебная страна");
Сообщить(ТипЗнч(Адрес.ИсходныеДанные) = Тип("ФиксированноеСоответствие"));
Сообщить(Адрес.ИсходныеДанные.Получить("guideCode") = "A-01");
Сообщить(Адрес.Представление = "Учебный адрес для проверки приоритета");Разбор по шагам
Соответствие Исходные создано нашим кодом, не выгружено из операционной системы.
В структуре конструктора задаём одновременно явную страну и сырой Country с другим значением.
После создания читаем readonly-фиксированное соответствие; Вставить у него не вызываем.
Как проверить результат
Четыре сообщения Истина: стандартная страна победила, тип исходных фиксированный, нестандартный guideCode сохранён, представление совпадает.
Никакие данные реального устройства не получались.
Ожидаемый результат
На собственном конфликте разобраны приоритет стандартного поля и сохранение нестандартного поля.
На что обратить внимание
Это собственные учебные объекты, не контакт, уже полученный от операционной системы или сохранённый на устройстве.
Состав настоящих исходных полей зависит от ОС: не считайте guideCode системным полем Android/iOS.
Тип и наличие внешнего сырого поля проверяйте перед преобразованием; фиксированность не гарантирует корректность его значения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.