Всем добрый день!
Возможно, кто-то знает решение этой загадки:
Создаю программно рабочую группу и пытаюсь сразу записать событие в ее календарь:
$SocGroup=new CSocNetGroup;
global $USER;
$arFieldsSG=array(
"NAME"=> $_POST['eventName'],
"SITE_ID" => "s1",
"DESCRIPTION"=> $_POST['eventName'],
"ACTIVE"=>"Y",
"VISIBLE"=>"Y",
"OPENED"=>"Y",
"CLOSED"=>"N",
"SUBJECT_ID"=>4,
"OWNER_ID"=>1,
"INITIATE_PERMS"=>A,
"SPAM_PERMS"=>"N",
"SUBJECT_NAME"=>"Events"
);
$GroupID=CSocNetGroup::CreateGroup($USER->GetID(),$arFieldsSG);
print $GroupID."<br/>";
if (CModule::IncludeModule("disk"))
{
\Bitrix\Disk\Driver::getInstance()->addGroupStorage($GroupID);
}
$fromTs=MakeTimeStamp($_POST['fromEvent'], "DD/MM/YYYY");
$toTs=MakeTimeStamp($_POST['toEvent'], "DD/MM/YYYY");
$arFieldsCalend = array(
//"CAL_TYPE" =>'events',
"CAL_TYPE" =>'group',
"NAME" => $_POST['eventName'],
"DESCRIPTION" => $_POST['eventName'],
"SKIP_TIME" => date('H:i', $fromTs) == '00:00' && date('H:i', $toTs) == '00:00',
"IS_MEETING" => false,
"RRULE" => false
);
$arFieldsCalend['DT_FROM_TS'] = $fromTs;
$arFieldsCalend['DT_TO_TS'] = $toTs;
$arFieldsCalend["OWNER_ID"] = $GroupID;
//$arFieldsCalend["OWNER_ID"] = 27;
$cal=new CCalendar;
$CalEventId = CCalendar::SaveEvent(
array(
'arFields' => $arFieldsCalend,
'autoDetectSection' => true
)
);
print $CalEventId."<br/>";
Событие в календарь группы сразу после создания группы не пишется. Такое впечатление,что календаря не сущетсвует, пока не зайдешь в рабочую группу на закладуку календаря. Если в апи создания события календаря вписать ид ранее созданной группы - тем же программыным сопсобом, но в которую уже заходили - событие записывается.
А мне нужно сразу создать группу и записать событие в ее календарь. Как мне инициировать календарь группы программно сразу после ее создания?
Возможно, кто-то знает решение этой загадки:
Создаю программно рабочую группу и пытаюсь сразу записать событие в ее календарь:
$SocGroup=new CSocNetGroup;
global $USER;
$arFieldsSG=array(
"NAME"=> $_POST['eventName'],
"SITE_ID" => "s1",
"DESCRIPTION"=> $_POST['eventName'],
"ACTIVE"=>"Y",
"VISIBLE"=>"Y",
"OPENED"=>"Y",
"CLOSED"=>"N",
"SUBJECT_ID"=>4,
"OWNER_ID"=>1,
"INITIATE_PERMS"=>A,
"SPAM_PERMS"=>"N",
"SUBJECT_NAME"=>"Events"
);
$GroupID=CSocNetGroup::CreateGroup($USER->GetID(),$arFieldsSG);
print $GroupID."<br/>";
if (CModule::IncludeModule("disk"))
{
\Bitrix\Disk\Driver::getInstance()->addGroupStorage($GroupID);
}
$fromTs=MakeTimeStamp($_POST['fromEvent'], "DD/MM/YYYY");
$toTs=MakeTimeStamp($_POST['toEvent'], "DD/MM/YYYY");
$arFieldsCalend = array(
//"CAL_TYPE" =>'events',
"CAL_TYPE" =>'group',
"NAME" => $_POST['eventName'],
"DESCRIPTION" => $_POST['eventName'],
"SKIP_TIME" => date('H:i', $fromTs) == '00:00' && date('H:i', $toTs) == '00:00',
"IS_MEETING" => false,
"RRULE" => false
);
$arFieldsCalend['DT_FROM_TS'] = $fromTs;
$arFieldsCalend['DT_TO_TS'] = $toTs;
$arFieldsCalend["OWNER_ID"] = $GroupID;
//$arFieldsCalend["OWNER_ID"] = 27;
$cal=new CCalendar;
$CalEventId = CCalendar::SaveEvent(
array(
'arFields' => $arFieldsCalend,
'autoDetectSection' => true
)
);
print $CalEventId."<br/>";
Событие в календарь группы сразу после создания группы не пишется. Такое впечатление,что календаря не сущетсвует, пока не зайдешь в рабочую группу на закладуку календаря. Если в апи создания события календаря вписать ид ранее созданной группы - тем же программыным сопсобом, но в которую уже заходили - событие записывается.
А мне нужно сразу создать группу и записать событие в ее календарь. Как мне инициировать календарь группы программно сразу после ее создания?