Проверить основной календарь с явным предупреждением о создании

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

На Android без календарей даже получение основного календаря может создать LOCAL; пример требует отдельного учебного профиля и подтверждения.

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

Полный клиентский модуль собственной мобильной управляемой формы. Не вставляйте процедуры внутрь другой процедуры.

Подготовка

  1. Мобильный клиент/мобильное приложение 1С на собственном тестовом устройстве, не настольный тонкий клиент. Используйте отдельную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса.

  2. Первый урок работает только с данными в памяти. Для обращения к календарям вручную разрешите учебному приложению доступ в настройках ОС; доступность API не заменяет разрешение.

  3. Для уроков добавления, изменения и удаления используйте только отдельное учебное устройство/профиль с локальными календарями без синхронизации, приглашений и рабочих событий. Не используйте основной личный/корпоративный календарь.

  4. Код вставляется на уровне модуля собственной управляемой формы. Команды с указанными именами создайте вручную и назначьте им одноимённые обработчики.

  5. Никакой из этих рецептов в настоящем мобильном клиенте не запускался автоматически. Проверяйте разрешения, фактические типы и контрольные результаты на своём учебном устройстве.

  6. Это отдельная форма; не используйте её основной календарь в уроках изменения и удаления.

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    ПроверитьСобственнуюУчебнуюКонфигурацию();
    Если ПодтверждениеУчебногоДействия <> "ПОЛУЧИТЬ ОСНОВНОЙ УЧЕБНЫЙ КАЛЕНДАРЬ" Тогда
        ВызватьИсключение "Нужно явное подтверждение в отдельном учебном профиле устройства";
    КонецЕсли;
    ПодтверждениеУчебногоДействия = "";
    Менеджер = Новый МенеджерКалендарей;
    ОсновнойКлюч = Менеджер.ПолучитьОсновнойКалендарь();
    Сообщить(ТипЗнч(ОсновнойКлюч) = Тип("ЛокальныйКлючКалендаря"));
    Карточка = Менеджер.ПолучитьКалендарь(ОсновнойКлюч);
    Сообщить(ТипЗнч(Карточка) = Тип("ДанныеКалендаряУчетнойЗаписи"));
    Сообщить("Имя основного календаря задано: " + Строка(Не ПустаяСтрока(Карточка.ДанныеКалендаря.Имя)));
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ПроверитьСобственнуюУчебнуюКонфигурацию()
КонецПроцедуры

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

  1. Добавьте строковый реквизит ПодтверждениеУчебногоДействия и поле ввода. Только в отдельном учебном профиле введите точную фразу из кода и выполните команду.

  2. Подтверждение сбрасывается до обращения к ОС, поэтому повторное нажатие не повторяет действие без нового согласия.

  3. На Android выбор основного календаря определяется правилами устройства; при отсутствии календарей по справке создаётся LOCAL. Поэтому этот вызов не включён в урок простого чтения.

  4. На iOS используется системный метод. Код не объявляет выбранный календарь собственным и не записывает/удаляет его события.

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

  1. Две проверки типов дают Истина при успешном обращении; выводится только признак заданного имени, не его содержимое.

  2. В пустом учебном профиле Android проверьте вручную, появился ли LOCAL; это ожидаемый возможный побочный эффект, не результат работы ДобавитьКалендарь.

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

Показан основной календарь без сокрытия возможного побочного эффекта API.

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

  1. Не запускайте этот урок в личном или рабочем профиле ради простого просмотра.

  2. Код не удаляет автоматически созданный LOCAL и не делает его безопасной целью для следующих уроков.

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

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

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

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

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