1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-01-14 03:20:16 +02:00

#16 Возможность следить за задачей. С выбором событий за которыми необходимо следить.

This commit is contained in:
Anton Ivanov 2016-11-13 08:33:42 +03:00
parent 0d065bc40b
commit c62424e4c0
6 changed files with 267 additions and 72 deletions

View File

@ -834,7 +834,46 @@
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Не отправлять уведомления на почту (Изменения по задачам подсистема "Управление задачами")</v8:content>
<v8:content>Не отправлять уведомления на почту</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
</Properties>
</Attribute>
<Attribute uuid="98d94ac9-c8f0-4bdd-b78e-407bf5ccf029">
<Properties>
<Name>узОткрыватьСправочникЗадачиПриНачалеРаботыСистемы</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открывать справочник задачи при начале работы системы</v8:content>
</v8:item>
</Synonym>
<Comment/>

View File

@ -268,10 +268,21 @@
</CheckBoxField>
</ChildItems>
</UsualGroup>
<UsualGroup name="Группа1" id="349">
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа1РасширеннаяПодсказка" id="350"/>
<UsualGroup name="ГруппаНастройкиУправленияЗадачами" id="349">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки (подсистема "Управление задачами")</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа настройки управления задачами</v8:content>
</v8:item>
</ToolTip>
<Representation>StrongSeparation</Representation>
<ExtendedTooltip name="ГруппаНастройкиУправленияЗадачамиРасширеннаяПодсказка" id="350"/>
<ChildItems>
<InputField name="узКороткоеИмя" id="343">
<DataPath>Объект.узКороткоеИмя</DataPath>
@ -286,6 +297,13 @@
<ContextMenu name="узНеОтправлятьУведомленияНаПочтуКонтекстноеМеню" id="347"/>
<ExtendedTooltip name="узНеОтправлятьУведомленияНаПочтуРасширеннаяПодсказка" id="348"/>
</CheckBoxField>
<CheckBoxField name="узОткрыватьСправочникЗадачиПриНачалеРаботыСистемы" id="351">
<DataPath>Объект.узОткрыватьСправочникЗадачиПриНачалеРаботыСистемы</DataPath>
<TitleLocation>Right</TitleLocation>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="узОткрыватьСправочникЗадачиПриНачалеРаботыСистемыКонтекстноеМеню" id="352"/>
<ExtendedTooltip name="узОткрыватьСправочникЗадачиПриНачалеРаботыСистемыРасширеннаяПодсказка" id="353"/>
</CheckBoxField>
</ChildItems>
</UsualGroup>
<InputField name="ФизическоеЛицо" id="296">

View File

@ -132,6 +132,125 @@
Процедура ОтправитьУведомлениеНаПочту(МассивСобытийВИстории)
НастройкиСобытий = ПолучитьНастройкиСобытий();
ОтправитьУведомлениеНаПочтуИсполнителю(НастройкиСобытий,МассивСобытийВИстории);
ОтправитьУведомлениеНаПочтуНаблюдателям(НастройкиСобытий,МассивСобытийВИстории)
КонецПроцедуры
Функция ПолучитьНастройкиСобытий()
РезультатФункции = Новый Структура();
ВидыСобытий_ДобавленаЗадача = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленаЗадача");
ВидыСобытий_НовыйИсполнитель = ПредопределенноеЗначение("Перечисление.узВидыСобытий.НовыйИсполнитель");
ВидыСобытий_ДобавленКомментарий = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленКомментарий");
ВидыСобытий_ИзмененоОписаниеЗадачи = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи");
ВидыСобытий_ИзменениеСтатуса = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзменениеСтатуса");
РезультатФункции.Вставить("ВидыСобытий_ДобавленаЗадача",ВидыСобытий_ДобавленаЗадача);
РезультатФункции.Вставить("ВидыСобытий_НовыйИсполнитель",ВидыСобытий_НовыйИсполнитель);
РезультатФункции.Вставить("ВидыСобытий_ДобавленКомментарий",ВидыСобытий_ДобавленКомментарий);
РезультатФункции.Вставить("ВидыСобытий_ИзмененоОписаниеЗадачи",ВидыСобытий_ИзмененоОписаниеЗадачи);
РезультатФункции.Вставить("ВидыСобытий_ИзменениеСтатуса",ВидыСобытий_ИзменениеСтатуса);
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки = Новый Массив();
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ИзменениеСтатуса);
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки.Добавить(ВидыСобытий_НовыйИсполнитель);
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленКомментарий);
РезультатФункции.Вставить("МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки",МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки);
МассивСобытийКоторыеПодлежатОтправки = Новый Массив();
МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленаЗадача);
МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_НовыйИсполнитель);
МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленКомментарий);
РезультатФункции.Вставить("МассивСобытийКоторыеПодлежатОтправки",МассивСобытийКоторыеПодлежатОтправки);
Возврат РезультатФункции;
КонецФункции
Процедура ОтправитьУведомлениеНаПочтуНаблюдателям(НастройкиСобытий,МассивСобытийВИстории)
ВсегоСобытий = МассивСобытийВИстории.Количество();
Если ВсегоСобытий = 0 Тогда
Возврат;
Конецесли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| узНаблюдателиЗаЗадачами.Пользователь
|ИЗ
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|ГДЕ
| узНаблюдателиЗаЗадачами.Задача = &Задача
| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
| И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь";
ТекущийПользователь = Пользователи.ТекущийПользователь();
Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь);
Запрос.УстановитьПараметр("Задача", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
Конецесли;
Выборка = РезультатЗапроса.Выбрать();
МассивПользователейКому = Новый Массив();
Пока Выборка.Следующий() Цикл
МассивПользователейКому.Добавить(Выборка.Пользователь);
КонецЦикла;
МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки = НастройкиСобытий.МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки;
НеобходимоОтправитьУведомление = Ложь;
ТемаПисьмаСобытие = "";
Если ВсегоСобытий = 1 Тогда
ЭлМассивСобытийВИстории = МассивСобытийВИстории[0];
Если ЭлМассивСобытийВИстории = НастройкиСобытий.ВидыСобытий_ИзменениеСтатуса Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменен статус у задачи:";
ИначеЕсли ЭлМассивСобытийВИстории = НастройкиСобытий.ВидыСобытий_НовыйИсполнитель Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменился исполнитель у задачи:";
ИначеЕсли ЭлМассивСобытийВИстории = НастройкиСобытий.ВидыСобытий_ДобавленКомментарий Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Добален комментарий по задаче:";
Конецесли;
Иначе
Если МассивСобытийВИстории.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель) Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменился исполнитель у задачи: ";
Иначе
Для каждого ЭлМассивСобытийВИстории из МассивСобытийВИстории цикл
Если МассивСобытийДляНаблюдателяКоторыеПодлежатОтправки.Найти(ЭлМассивСобытийВИстории) <> Неопределено Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменена задача: ";
Прервать;
Конецесли;
Конеццикла;
Конецесли;
Конецесли;
Если НЕ НеобходимоОтправитьУведомление Тогда
Возврат;
КонецЕсли;
ПараметрыПисьма = ПолучитьПараметрыПисьма(ТемаПисьмаСобытие);
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("МассивПользователейКому",МассивПользователейКому);
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
КонецПроцедуры
Процедура ОтправитьУведомлениеНаПочтуИсполнителю(НастройкиСобытий,МассивСобытийВИстории)
Если НЕ ЗначениеЗаполнено(Исполнитель) Тогда
Возврат;
Конецесли;
@ -154,40 +273,25 @@
ТемаПисьмаСобытие = "";
ВидыСобытий_ДобавленаЗадача = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленаЗадача");
ВидыСобытий_НовыйИсполнитель = ПредопределенноеЗначение("Перечисление.узВидыСобытий.НовыйИсполнитель");
ВидыСобытий_ДобавленКомментарий = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленКомментарий");
ВидыСобытий_ИзмененоОписаниеЗадачи = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененоОписаниеЗадачи");
МассивСобытийКоторыеПодлежатОтправки = Новый Массив();
МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленаЗадача);
МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_НовыйИсполнитель);
МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ДобавленКомментарий);
//МассивСобытийКоторыеПодлежатОтправки.Добавить(ВидыСобытий_ИзмененоОписаниеЗадачи);
Если ВсегоСобытий = 1 Тогда
ЭлМассивСобытийВИстории = МассивСобытийВИстории[0];
Если ЭлМассивСобытийВИстории = ВидыСобытий_ДобавленаЗадача Тогда
Если ЭлМассивСобытийВИстории = НастройкиСобытий.ВидыСобытий_ДобавленаЗадача Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Вам была назначена задача:";
ИначеЕсли ЭлМассивСобытийВИстории = ВидыСобытий_НовыйИсполнитель Тогда
ИначеЕсли ЭлМассивСобытийВИстории = НастройкиСобытий.ВидыСобытий_НовыйИсполнитель Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Вам была назначена задача:";
ИначеЕсли ЭлМассивСобытийВИстории = ВидыСобытий_ДобавленКомментарий Тогда
ИначеЕсли ЭлМассивСобытийВИстории = НастройкиСобытий.ВидыСобытий_ДобавленКомментарий Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Добален комментарий по задаче:";
//ИначеЕсли ЭлМассивСобытийВИстории = ВидыСобытий_ИзмененоОписаниеЗадачи Тогда
// НеобходимоОтправитьУведомление = Истина;
// ТемаПисьмаСобытие = "Изменено описание по задаче:";
Конецесли;
Иначе
Если МассивСобытийВИстории.Найти(ВидыСобытий_НовыйИсполнитель) Тогда
Если МассивСобытийВИстории.Найти(НастройкиСобытий.ВидыСобытий_НовыйИсполнитель) Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Вам была назначена задача: ";
Иначе
Для каждого ЭлМассивСобытийВИстории из МассивСобытийВИстории цикл
Если МассивСобытийКоторыеПодлежатОтправки.Найти(ЭлМассивСобытийВИстории) <> Неопределено Тогда
Если НастройкиСобытий.МассивСобытийКоторыеПодлежатОтправки.Найти(ЭлМассивСобытийВИстории) <> Неопределено Тогда
НеобходимоОтправитьУведомление = Истина;
ТемаПисьмаСобытие = "Изменена задача: ";
Прервать;
@ -198,31 +302,51 @@
Если НеобходимоОтправитьУведомление Тогда
НаименованиеЗадачи = СокрЛП(Наименование);
НомерЗадачи = ""+Код;
ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи;
ТекстПисьма = "
|Добрый день.
|
|"+ТемаПисьмаСобытие+" "+НаименованиеЗадачи+"
|Номер задачи: #"+НомерЗадачи+"
|";
Если ЗначениеЗаполнено(ТекстСодержания) Тогда
ТекстПисьма = ТекстПисьма + "
|
|Описание задачи:
|"+ТекстСодержания+"
|";
Конецесли;
ПараметрыПисьма = ПолучитьПараметрыПисьма(ТемаПисьмаСобытие);
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ВажностьЗадачи",Важность);
ДопПараметры.Вставить("ТекстПисьма",ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ТемаПисьма);
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
ДопПараметры.Вставить("ПользовательКому",Исполнитель);
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьПараметрыПисьма(ТемаПисьмаСобытие)
РезультатФункции = Новый Структура();
НаименованиеЗадачи = СокрЛП(Наименование);
НомерЗадачи = ""+Код;
ТемаПисьма = "[#"+НомерЗадачи+"] "+ТемаПисьмаСобытие + НаименованиеЗадачи;
ТекстПисьма = "
|Добрый день.
|
|"+ТемаПисьмаСобытие+" "+НаименованиеЗадачи+"
|Номер задачи: #"+НомерЗадачи+"
|";
Если ЗначениеЗаполнено(ТекстСодержания) Тогда
ТекстПисьма = ТекстПисьма + "
|
|Описание задачи:
|"+ТекстСодержания+"
|";
Конецесли;
ТекстПисьма = ТекстПисьма + "
|
|Реквизиты задачи:
|- Исполнитель ["+Исполнитель+"]
|- Статус ["+Статус+"]
|- Важность ["+Важность+"]
|- ОсновнаяЗадача ["+ОсновнаяЗадача+"]
|";
РезультатФункции.Вставить("ТемаПисьма",ТемаПисьма);
РезультатФункции.Вставить("ТекстПисьма",ТекстПисьма);
Возврат РезультатФункции;
КонецФункции
Функция ЕстьПодчиненныеЗадачи(Задача,ЗадачаРебенок = Неопределено) Экспорт
пЕстьПодчиненныеЗадачи = Ложь;
Если ЭтоНовый() Тогда

View File

@ -4,16 +4,23 @@
ВажностьЗадачи = ДопПараметры.ВажностьЗадачи;
ТекстПисьма = ДопПараметры.ТекстПисьма;
ТемаПисьма = ДопПараметры.ТемаПисьма;
ПользовательКому = ДопПараметры.ПользовательКому;
МассивПользователей = Новый Массив();
МассивПользователей.Добавить(ПользовательКому);
МассивАдресовЭлектроннойПочты = ПолучитьМассивАдресовЭлектроннойПочты(МассивПользователей);
Если МассивАдресовЭлектроннойПочты.Количество() = 0 Тогда
Сообщить("Ошибка! при отправке письма не удалось получить адреса электронной почты для ["+ПользовательКому+"]");
Возврат;
Если ДопПараметры.Свойство("МассивПользователейКому") Тогда
МассивПользователей = ДопПараметры.МассивПользователейКому;
Иначе
МассивПользователей = Новый Массив();
МассивПользователей.Добавить(ДопПараметры.ПользовательКому);
Конецесли;
ТЗАдресаЭлектроннойПочты = ПолучитьТЗАдресаЭлектроннойПочты(МассивПользователей);
Для каждого СтрокаТЗАдресаЭлектроннойПочты из ТЗАдресаЭлектроннойПочты цикл
ПользовательКому = СтрокаТЗАдресаЭлектроннойПочты.Пользователь;
Если НЕ ЗначениеЗаполнено(СтрокаТЗАдресаЭлектроннойПочты.АдресЭлектроннойПочты) Тогда
Сообщить("Ошибка! при отправке письма не удалось получить адреса электронной почты для ["+ПользовательКому+"]");
Конецесли;
Конеццикла;
ТекПользователь = Пользователи.ТекущийПользователь();
ДокОбъект = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
ДокОбъект.Дата = ТекущаяДата();
@ -34,25 +41,25 @@
//ДокОбъект.ДатаКогдаОтправить = ;
Для каждого ЭлМассивАдресовЭлектроннойПочты из МассивАдресовЭлектроннойПочты цикл
Для каждого СтрокаТЗАдресаЭлектроннойПочты из ТЗАдресаЭлектроннойПочты цикл
АдресЭлектроннойПочты = СтрокаТЗАдресаЭлектроннойПочты.АдресЭлектроннойПочты;
ПользовательКому = СтрокаТЗАдресаЭлектроннойПочты.Пользователь;
СтрокаПолучателиПисьма = ДокОбъект.ПолучателиПисьма.Добавить();
СтрокаПолучателиПисьма.Адрес = ЭлМассивАдресовЭлектроннойПочты;
СтрокаПолучателиПисьма.Представление = ""+ПользовательКому+" <"+ЭлМассивАдресовЭлектроннойПочты+">";
СтрокаПолучателиПисьма.Адрес = АдресЭлектроннойПочты;
СтрокаПолучателиПисьма.Представление = ""+ПользовательКому+" <"+АдресЭлектроннойПочты+">";
СтрокаПолучателиПисьма.Контакт = ПользовательКому;
Конеццикла;
ДокОбъект.СформироватьПредставленияКонтактов();
ДокОбъект.Записать();
КонецПроцедуры
Функция ПолучитьМассивАдресовЭлектроннойПочты(МассивПользователей)
МассивАдресовЭлектроннойПочты = Новый Массив();
Функция ПолучитьТЗАдресаЭлектроннойПочты(МассивПользователей)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПользователиКонтактнаяИнформация.Ссылка,
| ПользователиКонтактнаяИнформация.Тип,
| ПользователиКонтактнаяИнформация.Вид,
| ПользователиКонтактнаяИнформация.АдресЭП
| ПользователиКонтактнаяИнформация.Ссылка КАК Пользователь,
| ПользователиКонтактнаяИнформация.АдресЭП КАК АдресЭлектроннойПочты
|ИЗ
| Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация
|ГДЕ
@ -67,12 +74,8 @@
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
МассивАдресовЭлектроннойПочты.Добавить(Выборка.АдресЭП);
КонецЦикла;
Возврат МассивАдресовЭлектроннойПочты;
ТЗАдресаЭлектроннойПочты = РезультатЗапроса.Выгрузить();
Возврат ТЗАдресаЭлектроннойПочты;
КонецФункции
Процедура узЗагрузкаИзмененийИзХранилища() Экспорт
@ -107,3 +110,8 @@
Сообщить("Загружены изменения для конфигурации ["+пКонфигурация+"] с версии ["+ОбрОбъект.ВерсияС+"]");
КонецЦикла;
КонецПроцедуры
Функция узОткрыватьСправочникЗадачиПриНачалеРаботыСистемы() Экспорт
пТекущийПользователь = Пользователи.ТекущийПользователь();
Возврат пТекущийПользователь.узОткрыватьСправочникЗадачиПриНачалеРаботыСистемы;
КонецФункции

View File

@ -37,9 +37,14 @@
СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();
// Конец СтандартныеПодсистемы
узОткрытьСправочникЗадачи();
КонецПроцедуры
Процедура узОткрытьСправочникЗадачи()
Если узОбщийМодульСервер.узОткрыватьСправочникЗадачиПриНачалеРаботыСистемы() Тогда
ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаСписка");
Конецесли;
КонецПроцедуры
Процедура ПередЗавершениемРаботыСистемы(Отказ)
@ -50,4 +55,5 @@
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2982,9 +2982,9 @@
<d3p1:fixedVariantMeasure>Day</d3p1:fixedVariantMeasure>
<d3p1:fixedVariantInterval>1</d3p1:fixedVariantInterval>
<d3p1:autoFullInterval>true</d3p1:autoFullInterval>
<d3p1:fullIntervalBegin>2016-11-09T12:00:00</d3p1:fullIntervalBegin>
<d3p1:fullIntervalEnd>2016-11-18T12:59:59</d3p1:fullIntervalEnd>
<d3p1:visualBegin>2016-11-09T12:00:00</d3p1:visualBegin>
<d3p1:fullIntervalBegin>2016-11-13T08:00:00</d3p1:fullIntervalBegin>
<d3p1:fullIntervalEnd>2016-11-22T08:59:59</d3p1:fullIntervalEnd>
<d3p1:visualBegin>2016-11-13T08:00:00</d3p1:visualBegin>
<d3p1:intervalDrawType>Gradient</d3p1:intervalDrawType>
<d3p1:noneVariantChars>3</d3p1:noneVariantChars>
<d3p1:noneVariantMeasure>Day</d3p1:noneVariantMeasure>