Разобрать приоритет стандартного поля адреса над исходными данными

Учебные задачи

Конструктор принимает собственное соответствие нестандартных исходных полей. По справке явная Страна имеет приоритет над конфликтующим RawData.Country.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Учебная база, серверный контекст. ДанныеКонтакта и связанные типы доступны на сервере: для этих задач не нужен мобильный телефон, разрешение на контакты или настоящая адресная книга.

  2. Вся персона вымышлена: Учебный Ученик Тестович, организация Учебный магазин. Телефоны 000-000-01/02 — демонстрационные строки, адрес student@example.invalid учебный. Ничего не отправляйте и не звоните.

  3. Код создаёт объекты только в памяти. Он не вызывает менеджер контактов устройства, синхронизацию, геокодирование, интернет или запись справочника Партнеры/КонтактныеЛица.

Исходные = Новый Соответствие;
Исходные.Вставить("Country", "Конфликтующая учебная страна");
Исходные.Вставить("guideCode", "A-01");
Поля = Новый Структура;
Поля.Вставить("Страна", "Явная учебная страна");
Поля.Вставить("Представление", "Учебный адрес для проверки приоритета");
Поля.Вставить("ИсходныеДанные", Исходные);
Адрес = Новый ДанныеАдреса(Поля);
Сообщить(Адрес.Страна = "Явная учебная страна");
Сообщить(ТипЗнч(Адрес.ИсходныеДанные) = Тип("ФиксированноеСоответствие"));
Сообщить(Адрес.ИсходныеДанные.Получить("guideCode") = "A-01");
Сообщить(Адрес.Представление = "Учебный адрес для проверки приоритета");

Разбор по шагам

  1. Соответствие Исходные создано нашим кодом, не выгружено из операционной системы.

  2. В структуре конструктора задаём одновременно явную страну и сырой Country с другим значением.

  3. После создания читаем readonly-фиксированное соответствие; Вставить у него не вызываем.

Как проверить результат

  1. Четыре сообщения Истина: стандартная страна победила, тип исходных фиксированный, нестандартный guideCode сохранён, представление совпадает.

  2. Никакие данные реального устройства не получались.

Ожидаемый результат

На собственном конфликте разобраны приоритет стандартного поля и сохранение нестандартного поля.

На что обратить внимание

  1. Это собственные учебные объекты, не контакт, уже полученный от операционной системы или сохранённый на устройстве.

  2. Состав настоящих исходных полей зависит от ОС: не считайте guideCode системным полем Android/iOS.

  3. Тип и наличие внешнего сырого поля проверяйте перед преобразованием; фиксированность не гарантирует корректность его значения.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.