ДанныеКалендаря.ИсходныеДанные

Свойства · RawData

Тип: Соответствие. Содержит исходные данные календаря в том виде, в котором они возвращены операционной системой.

Полное описание, параметры и ограничения

ДанныеКалендаря.ИсходныеДанные (CalendarData.RawData)

ДанныеКалендаря (CalendarData)

ИсходныеДанные (RawData)

Доступен, начиная с версии 8.3.4.

Использование:
Чтение и запись.
Описание:
Тип: Соответствие.
Содержит исходные данные календаря в том виде, в котором они возвращены операционной системой.
Доступность:

Мобильный клиент, сервер, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.3.4.

Методическая информация

Практические примеры

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

Создаём данные собственного занятия Книга в памяти; дата задаётся в UTC, напоминания проверяются по фактическому типу.

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

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

Подготовка

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

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

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

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

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

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    Календарь = Новый ДанныеКалендаря("Учебное чтение");
    Календарь.Цвет = Новый Цвет(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. Создайте команду ВыполнитьПример. Конструкторы создают описания в памяти, а не календарь и событие операционной системы.

  2. Начало и Конец данных события используют универсальное время. Разность дат 1С — секунды: 30 минут равно 1800, не 30.

  3. ЧасовойПояс — отдельное строковое описание зоны. Установка UTC не преобразует уже переданные даты; значения дат в коде изначально трактуются как UTC.

  4. ОдинРаз задаёт отсутствие повторения. ВесьДень = Ложь означает событие с конкретным временем; это не ежедневный интервал и не весь день.

  5. Участники пусты, Организатор пуст. Никаких приглашений не отправляется: менеджер добавления вообще не вызывается.

  6. В установленной справке Напоминания объявлены Число, но описание говорит о массиве минут. Код читает фактический тип и ничего в напоминания не записывает.

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

  1. Тринадцать логических проверок дают Истина; длительность собственного черновика 1800 секунд.

  2. На устройстве не появилось события: ДобавитьСобытие не вызывался. Отдельно видны фактические типы исходных данных и напоминаний.

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

Готов понятный черновик занятия с явными датами UTC без обращения к календарям ОС.

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

  1. Не используйте ТекущаяДата как UTC без явного преобразования и согласования зоны.

  2. Не присваивайте Напоминания число или массив наугад из-за противоречия справки.

  3. Фиксированная учебная дата может быть в прошлом; это не планировщик актуальных напоминаний.

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

Найти только собственный учебный календарь по точному имени

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

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

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

Подготовка

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

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

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

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

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

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    ИмяКалендаря = СокрЛП(УчебноеИмяКалендаря);
    Если Лев(ИмяКалендаря, 21) <> "guide-owned-calendar-" Тогда
        ВызватьИсключение "Укажите точное имя собственного учебного календаря";
    КонецЕсли;
    Менеджер = Новый МенеджерКалендарей;
    Ключи = Менеджер.НайтиКалендари(ИмяКалендаря);
    Если Ключи.Количество() = 0 Тогда
        Сообщить("Собственный учебный календарь не найден. Ничего не создано");
        Возврат;
    КонецЕсли;
    Если Ключи.Количество() <> 1 Тогда
        ВызватьИсключение "Неоднозначное имя: найдено больше одного календаря";
    КонецЕсли;
    Ключ = Ключи.Получить(0);
    Сообщить(ТипЗнч(Ключ) = Тип("ЛокальныйКлючКалендаря"));
    Карточка = Менеджер.ПолучитьКалендарь(Ключ);
    Сообщить(Карточка.ДанныеКалендаря.Имя = ИмяКалендаря);
    Сообщить(ТипЗнч(Карточка.ДанныеКалендаря.Цвет) = Тип("Цвет"));
    Сообщить(ТипЗнч(Карточка.ДанныеКалендаря.ИсходныеДанные) = Тип("Соответствие"));
    Локальная = Менеджер.ПолучитьЛокальнуюУчетнуюЗаписьКалендарей();
    Сообщить(Карточка.УчетнаяЗапись.Идентификатор = Локальная.Идентификатор);
    Сообщить(Карточка.УчетнаяЗапись.ИсточникУчетнойЗаписи = Локальная.ИсточникУчетнойЗаписи);
    Сообщить("Тип глобального ключа: " + Строка(ТипЗнч(Карточка.ГлобальныйКлючКалендаря)));
    Сообщить("Календарь допускает изменения: " + Строка(Менеджер.ПоддерживаетсяИзменениеКалендаря(Ключ)));
    Сообщить("События допускают изменения: " + Строка(Менеджер.ПоддерживаетсяИзменениеСобытий(Ключ)));
КонецПроцедуры

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

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

  2. НайтиКалендари со строкой ищет по имени. Ноль результатов — нормальная ситуация; больше одного — неоднозначность, а не повод использовать первый.

  3. ЛокальныйКлючКалендаря — объект, полученный от менеджера. Не собираем его через Новый и не заменяем строкой имени.

  4. ПолучитьКалендарь возвращает ДанныеКалендаряУчетнойЗаписи: вложенные ДанныеКалендаря отдельно от УчетнаяЗапись и глобального ключа.

  5. Две проверки сравнивают идентификатор и источник с локальной записью. Чужие значения не выводятся, исходные данные ОС не выгружаются.

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

  1. Если своего календаря нет, выводится сообщение и нет создания. При однозначном локальном календаре шесть логических проверок дают Истина.

  2. Никакие события не прочитаны и не изменены. Возможности изменения выводятся как фактические значения, не обязательные Истина.

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

Показано получение настоящего локального ключа и вложенных данных одного выбранного календаря.

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

  1. Префикс имени — соглашение учебного примера, не доказательство собственности и не механизм безопасности.

  2. Глобальный ключ и локальный ключ различаются; перенос локального ключа на другое устройство не предполагается.

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

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

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

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

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