День добрый, уважаемые участники интернет сообщества!
Как вы, наверное, все знаете, в Terrasoft существует возможность двусторонней синхронизации задач между MS Outlook и Terrasoft. Хочу рассказать об одной особенности: если выполнять синхронизацию задач из Terrasoft в MS Outlook, то в случае если для задачи в Terrasoft установлен признак "Отображать в расписании", то задача будет интегрирована в MS Outlook как встреча и будет отображена в календаре.
В ином случае - задача попадет в меню "Задачи" в папку "Задачи".
Эта особенность реализована в скрипте scr_MsOutlookSynchronization:
if (ShowInSheduler) {
olItem = OutlookSync.OutlookApplication.CreateItem(olAppointmentItem);
} else {
olItem = OutlookSync.OutlookApplication.CreateItem(olTaskItem);
}
IsAddUserField = true;
OutlookSync.CreatedItem++;
где
var ShowInSheduler = (TerrasoftItemDataset.Values('ShowInScheduler') == 1);
Соответственно, Вы можете легко изменить указанную логику, например по типу задачи (если тип: встреча – создаем встречу, в ином случае задачу):
if (IsMeetingOrTask) {
olItem = OutlookSync.OutlookApplication.CreateItem(olAppointmentItem);
} else {
olItem = OutlookSync.OutlookApplication.CreateItem(olTaskItem);
}
IsAddUserField = true;
OutlookSync.CreatedItem++;
var IsMeetingOrTask = (TerrasoftItemDataset.Values('TypeID') == '{63FB4E89-EE75-404F-8352-1E712AC909F6}');
где '{63FB4E89-EE75-404F-8352-1E712AC909F6}' – ID типа задачи «Встреча».
Либо, как другой вариант, в этом участке кода можно настроить синхронизацию таким образом, чтобы создавалась как задача так и встреча, убрав проверку вообще:
olItem = OutlookSync.OutlookApplication.CreateItem(olAppointmentItem);
olItem = OutlookSync.OutlookApplication.CreateItem(olTaskItem);
IsAddUserField = true;
OutlookSync.CreatedItem++;
Приятной работы с Terrasoft!