Тип: Соответствие. Содержит исходные данные календаря в том виде, в котором они возвращены операционной системой.
Полное описание, параметры и ограничения
ДанныеКалендаря.ИсходныеДанные (CalendarData.RawData)
ДанныеКалендаря (CalendarData)
ИсходныеДанные (RawData)
Доступен, начиная с версии 8.3.4.
Использование:
Чтение и запись.
Описание:
Тип: Соответствие.
Содержит исходные данные календаря в том виде, в котором они возвращены операционной системой.
Доступность:
Мобильный клиент, сервер, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.4.
Методическая информация
Практические примеры
Подготовить календарь и получасовое занятие без записи устройства
Создаём данные собственного занятия Книга в памяти; дата задаётся в UTC, напоминания проверяются по фактическому типу.
Где и как запускать
Полный клиентский модуль собственной мобильной управляемой формы. Не вставляйте процедуры внутрь другой процедуры.
Подготовка
Мобильный клиент/мобильное приложение 1С на собственном тестовом устройстве, не настольный тонкий клиент. Используйте отдельную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса.
Первый урок работает только с данными в памяти. Для обращения к календарям вручную разрешите учебному приложению доступ в настройках ОС; доступность API не заменяет разрешение.
Для уроков добавления, изменения и удаления используйте только отдельное учебное устройство/профиль с локальными календарями без синхронизации, приглашений и рабочих событий. Не используйте основной личный/корпоративный календарь.
Код вставляется на уровне модуля собственной управляемой формы. Команды с указанными именами создайте вручную и назначьте им одноимённые обработчики.
Никакой из этих рецептов в настоящем мобильном клиенте не запускался автоматически. Проверяйте разрешения, фактические типы и контрольные результаты на своём учебном устройстве.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Календарь = Новый ДанныеКалендаря("Учебное чтение");
Календарь.Цвет = Новый Цвет(40, 90, 180);
НачалоUTC = Дата(2026, 10, 5, 10, 0, 0);
КонецUTC = Дата(2026, 10, 5, 10, 30, 0);
Событие = Новый ДанныеСобытияКалендаря(НачалоUTC, КонецUTC);
Событие.Тема = "Учебное чтение Книги";
Событие.Описание = "Только собственный черновик, без приглашений";
Событие.Место = "Учебный стол";
Событие.ВесьДень = Ложь;
Событие.Организатор = "";
Событие.Участники = Новый Массив;
Событие.ЧасовойПояс = "UTC";
Событие.Повторение = ПовторениеСобытияКалендаря.ОдинРаз;
Сообщить(Календарь.Имя = "Учебное чтение");
Сообщить(ТипЗнч(Календарь.Цвет) = Тип("Цвет"));
Сообщить(Событие.Начало = НачалоUTC);
Сообщить(Событие.Конец = КонецUTC);
Сообщить(Событие.Конец - Событие.Начало = 1800);
Сообщить(Не Событие.ВесьДень);
Сообщить(Событие.Тема = "Учебное чтение Книги");
Сообщить(Событие.Место = "Учебный стол");
Сообщить(Не ПустаяСтрока(Событие.Описание));
Сообщить(ПустаяСтрока(Событие.Организатор));
Сообщить(Событие.Участники.Количество() = 0);
Сообщить(Событие.ЧасовойПояс = "UTC");
Сообщить(Событие.Повторение = ПовторениеСобытияКалендаря.ОдинРаз);
Сообщить("Тип исходных данных календаря: " + Строка(ТипЗнч(Календарь.ИсходныеДанные)));
Сообщить("Тип исходных данных события: " + Строка(ТипЗнч(Событие.ИсходныеДанные)));
Напоминания = Событие.Напоминания;
Если ТипЗнч(Напоминания) = Тип("Массив") Тогда
Сообщить("Исходных напоминаний: " + Строка(Напоминания.Количество()));
Иначе
Сообщить("Тип напоминаний требует отдельной проверки: " + Строка(ТипЗнч(Напоминания)));
КонецЕсли;
КонецПроцедурыРазбор по шагам
Создайте команду ВыполнитьПример. Конструкторы создают описания в памяти, а не календарь и событие операционной системы.
Начало и Конец данных события используют универсальное время. Разность дат 1С — секунды: 30 минут равно 1800, не 30.
ЧасовойПояс — отдельное строковое описание зоны. Установка UTC не преобразует уже переданные даты; значения дат в коде изначально трактуются как UTC.
ОдинРаз задаёт отсутствие повторения. ВесьДень = Ложь означает событие с конкретным временем; это не ежедневный интервал и не весь день.
Участники пусты, Организатор пуст. Никаких приглашений не отправляется: менеджер добавления вообще не вызывается.
В установленной справке Напоминания объявлены Число, но описание говорит о массиве минут. Код читает фактический тип и ничего в напоминания не записывает.
Как проверить результат
Тринадцать логических проверок дают Истина; длительность собственного черновика 1800 секунд.
На устройстве не появилось события: ДобавитьСобытие не вызывался. Отдельно видны фактические типы исходных данных и напоминаний.
Ожидаемый результат
Готов понятный черновик занятия с явными датами UTC без обращения к календарям ОС.
На что обратить внимание
Не используйте ТекущаяДата как UTC без явного преобразования и согласования зоны.
Не присваивайте Напоминания число или массив наугад из-за противоречия справки.
Фиксированная учебная дата может быть в прошлом; это не планировщик актуальных напоминаний.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Найти только собственный учебный календарь по точному имени
Сравниваем календарь, его данные и учётную запись, не перебирая все личные события телефона.
Где и как запускать
Полный клиентский модуль собственной мобильной управляемой формы. Не вставляйте процедуры внутрь другой процедуры.
Подготовка
Мобильный клиент/мобильное приложение 1С на собственном тестовом устройстве, не настольный тонкий клиент. Используйте отдельную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса.
Первый урок работает только с данными в памяти. Для обращения к календарям вручную разрешите учебному приложению доступ в настройках ОС; доступность API не заменяет разрешение.
Для уроков добавления, изменения и удаления используйте только отдельное учебное устройство/профиль с локальными календарями без синхронизации, приглашений и рабочих событий. Не используйте основной личный/корпоративный календарь.
Код вставляется на уровне модуля собственной управляемой формы. Команды с указанными именами создайте вручную и назначьте им одноимённые обработчики.
Никакой из этих рецептов в настоящем мобильном клиенте не запускался автоматически. Проверяйте разрешения, фактические типы и контрольные результаты на своём учебном устройстве.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
ИмяКалендаря = СокрЛП(УчебноеИмяКалендаря);
Если Лев(ИмяКалендаря, 21) <> "guide-owned-calendar-" Тогда
ВызватьИсключение "Укажите точное имя собственного учебного календаря";
КонецЕсли;
Менеджер = Новый МенеджерКалендарей;
Ключи = Менеджер.НайтиКалендари(ИмяКалендаря);
Если Ключи.Количество() = 0 Тогда
Сообщить("Собственный учебный календарь не найден. Ничего не создано");
Возврат;
КонецЕсли;
Если Ключи.Количество() <> 1 Тогда
ВызватьИсключение "Неоднозначное имя: найдено больше одного календаря";
КонецЕсли;
Ключ = Ключи.Получить(0);
Сообщить(ТипЗнч(Ключ) = Тип("ЛокальныйКлючКалендаря"));
Карточка = Менеджер.ПолучитьКалендарь(Ключ);
Сообщить(Карточка.ДанныеКалендаря.Имя = ИмяКалендаря);
Сообщить(ТипЗнч(Карточка.ДанныеКалендаря.Цвет) = Тип("Цвет"));
Сообщить(ТипЗнч(Карточка.ДанныеКалендаря.ИсходныеДанные) = Тип("Соответствие"));
Локальная = Менеджер.ПолучитьЛокальнуюУчетнуюЗаписьКалендарей();
Сообщить(Карточка.УчетнаяЗапись.Идентификатор = Локальная.Идентификатор);
Сообщить(Карточка.УчетнаяЗапись.ИсточникУчетнойЗаписи = Локальная.ИсточникУчетнойЗаписи);
Сообщить("Тип глобального ключа: " + Строка(ТипЗнч(Карточка.ГлобальныйКлючКалендаря)));
Сообщить("Календарь допускает изменения: " + Строка(Менеджер.ПоддерживаетсяИзменениеКалендаря(Ключ)));
Сообщить("События допускают изменения: " + Строка(Менеджер.ПоддерживаетсяИзменениеСобытий(Ключ)));
КонецПроцедурыРазбор по шагам
Создайте реквизит формы УчебноеИмяКалендаря типа Строка и поле ввода. Введите полное уникальное имя календаря, созданного в уроке добавления ниже; не имя личного календаря.
НайтиКалендари со строкой ищет по имени. Ноль результатов — нормальная ситуация; больше одного — неоднозначность, а не повод использовать первый.
ЛокальныйКлючКалендаря — объект, полученный от менеджера. Не собираем его через Новый и не заменяем строкой имени.
ПолучитьКалендарь возвращает ДанныеКалендаряУчетнойЗаписи: вложенные ДанныеКалендаря отдельно от УчетнаяЗапись и глобального ключа.
Две проверки сравнивают идентификатор и источник с локальной записью. Чужие значения не выводятся, исходные данные ОС не выгружаются.
Как проверить результат
Если своего календаря нет, выводится сообщение и нет создания. При однозначном локальном календаре шесть логических проверок дают Истина.
Никакие события не прочитаны и не изменены. Возможности изменения выводятся как фактические значения, не обязательные Истина.
Ожидаемый результат
Показано получение настоящего локального ключа и вложенных данных одного выбранного календаря.
На что обратить внимание
Префикс имени — соглашение учебного примера, не доказательство собственности и не механизм безопасности.
Глобальный ключ и локальный ключ различаются; перенос локального ключа на другое устройство не предполагается.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.