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