Загрузка данных
/addNewIncident Зарегистрировать новый инцидент
Ответ = Новый HTTPСервисОтвет(200);
ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку();
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(ТелоЗапроса);
НовыйДокумент = Документы.Инцидент.СоздатьДокумент();
Массив = РазобратьJSON(ТелоЗапроса);
Если Массив.Количество() Тогда
ТекСоот = Массив[0];
Если НЕ ТекСоот.Получить("Topic") = Неопределено Тогда
НовыйДокумент.ТемаОбращения = ТекСоот.Получить("Topic");
КонецЕсли;
Если НЕ ТекСоот.Получить("Data") = Неопределено Тогда
НовыйДокумент.Дата = Дата(ТекСоот.Получить("Data"));
КонецЕсли;
Если НЕ ТекСоот.Получить("Description") = Неопределено Тогда
НовыйДокумент.Описание = ТекСоот.Получить("Description");
КонецЕсли;
Если ТипЗнч(ТекСоот.Получить("MembershipServices")) = Тип("Соответствие") И
ТекСоот.Получить("MembershipServices").Получить("UID") <> Неопределено И
Не ПустаяСтрока(Строка(ТекСоот.Получить("MembershipServices").Получить("UID")) ) Тогда
НовыйДокумент.КомпонентаУслуги = Справочники.СоставУслуг.ПолучитьСсылку(
Новый УникальныйИдентификатор(ТекСоот.Получить("MembershipServices").Получить("UID")));
НовыйДокумент.Услуга = НовыйДокумент.КомпонентаУслуги.Владелец;
КонецЕсли;
Если ТипЗнч(ТекСоот.Получить("Category")) = Тип("Соответствие") И
ТекСоот.Получить("Category").Получить("UID") <> Неопределено И
Не ПустаяСтрока(Строка(ТекСоот.Получить("Category").Получить("UID") )) Тогда
НовыйДокумент.Категория = Справочники.ИТ_Категории.ПолучитьСсылку(
Новый УникальныйИдентификатор(ТекСоот.Получить("Category").Получить("UID")));
КонецЕсли;
Если ТипЗнч(ТекСоот.Получить("ConfigurationItems")) = Тип("Массив") Тогда
Для каждого Соот Из ТекСоот.Получить("ConfigurationItems") Цикл
НовыйДокумент.КонфигурационныеЕдиницы.Добавить().КЕ =
Справочники.ОбъектыОбслуживания.ПолучитьСсылку(Новый УникальныйИдентификатор(
Соот.Получить("UID")
));
КонецЦикла;
КонецЕсли;
НовыйДокумент.КонтактноеЛицо = ИТ_ГлобальныйМодульСервер.Ит_глЗначениеПеременной("глТекущееКонтактноеЛицо");
НовыйДокумент.Клиент = НовыйДокумент.КонтактноеЛицо.Владелец;
НовыйДокумент.ЧасовойПоясДокумента = ПолучениеЗначенийСервер.ПолучитьПараметр("ИТ_ЧасовойПояс", ИТ_ГлобальныйМодульСервер.Ит_глЗначениеПеременной("глТекущееКонтактноеЛицо"));
НовыйДокумент.ДатаНачалаРегистрации= НовыйДокумент.Дата;
НовыйДокумент.КаналСвязи = Справочники.ИТ_КаналыСвязи.WebИнтерфейс;
НовыйДокумент.Тип = Константы.ИТ_ТипИнцидента.Получить();
Если Не ЗначениеЗаполнено(НовыйДокумент.Приоритет) Тогда
НовыйДокумент.Приоритет = Константы.ИТ_ПриоритетИнцидента.Получить();
КонецЕсли;
НовыйДокумент.РабочееМесто = ИТ_ГлобальныйМодульСервер.Ит_глЗначениеПеременной("глТекущееКонтактноеЛицо").РабМесто;
СценарийОбработки = "";
ИТ_ПравилаПереходаСервер.ПолучитьИзменениеСценарийИУстановитьСценарийВПараметр( НовыйДокумент.КомпонентаУслуги,НовыйДокумент.Клиент,
НовыйДокумент.Дата,СценарийОбработки,Ложь);
Если СценарийОбработки = "" Тогда
СценарийОбработки = Константы.ИТ_СценарийПоУмолчанию.Получить();
КонецЕсли;
СтруктураСостояний = ИТ_ПравилаПереходаСервер.ПолучитьСтруктуруСостояний(НовыйДокумент.Тип,СценарийОбработки,"Обращение",
НовыйДокумент.Состояние);
НовыйДокумент.СценарийОбработки = СценарийОбработки;
Если СтруктураСостояний.МассивСостоянийПоУмолчанию.Количество() > 0 Тогда
НовоеСостояние = СтруктураСостояний.МассивСостоянийПоУмолчанию[0];
НовыйДокумент.Состояние = НовоеСостояние;
СписокПравилДляОбработкиПриЗаписиПоСценарию = Новый СписокЗначений;
СписокПравилДляОбработкиПриЗаписиПоСценарию.ЗагрузитьЗначения(СтруктураСостояний.СоответствиеНачальныхСостояний[НовоеСостояние].Неинтерактивное);
Отказ = Ложь;
ИТ_ПравилаОбработкиСервер.ОбработатьПравило(ПредопределенноеЗначение("Перечисление.ИТ_ВидыОбъектов.Обращение"),
ПредопределенноеЗначение("Перечисление.ИТ_СобытияПравил.СценарийОбработки"),
НовыйДокумент,
Отказ ,
,
,
,
СписокПравилДляОбработкиПриЗаписиПоСценарию.ВыгрузитьЗначения() ,
Ложь);
КонецЕсли;
Попытка
ИТ_ОбщийЗакрытый.оз_НастройкаФорм("");
НовыйДокумент.Записать();
Исключение
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(ПолучитьJSONОшибка("Недостаточно прав для выполнения данной операции"));
Возврат Ответ;
КонецПопытки;
Ответ.УстановитьТелоИзСтроки(ЗаписатьВJSONДокументИнцидентДетально(НовыйДокумент.Ссылка).Закрыть());
Иначе
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(ПолучитьJSONОшибка("Не удалось получить детальные данные документа для его регистрации"));
Возврат Ответ;
КонецЕсли;
Возврат Ответ;