Имя: Пароль:
1C
1С v8
DMService: Получить список задач пользователя
0 Active PM
 
22.03.19
13:01
Коллеги, добрый день.
Есть вот такая задача: мне нужно из УПП программно получить список задач пользователя из 1С:Документооборот (невыполненные).

Что имеем:
1С:УПП 1.3.113.4
1С:ДО КОРП 2.1.10.2
ИнтеграцияС1СДокументооборотом 1.1.5.1

Пишу вот такой код:

//Получим все задачи ДО по пользователю
Прокси = ИнтеграцияС1СДокументооборотПовтИсп.ПолучитьПрокси();
СписокУсловий = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListQuery"); //DMObjectListQuery = Условие отбора для запроса DMGetObjectListRequest
    
НайденноеЗначение = ИнтеграцияС1СДокументооборотВызовСервера.ОбъектыДокументооборотаПоНаименованию("DMUser", ВыбПользователь.Наименование);
Если НайденноеЗначение.Количество() = 1 Тогда
DMUser = НайденноеЗначение[0].object.objectId;
конецЕсли;
    
Исполнитель = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, "DMBusinessProcessTaskExecutor");
    
СтруктураUser = Новый Структура;
СтруктураUser.Вставить("Пользователь", ВыбПользователь.Наименование);
СтруктураUser.Вставить("ПользовательID", DMUser.id);
СтруктураUser.Вставить("ПользовательТип", "DMUser");
    
Обработки.ИнтеграцияС1СДокументооборот.ЗаполнитьОбъектXDTOИзОбъектногоРеквизита(Прокси, СтруктураUser,  "Пользователь", Исполнитель.user, "DMUser");
    
// теперь нужно написать два условия: пользователь (точнее сказать - DMBusinessProcessTaskExecutor) и невыполненные задачи
Условие = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, "DMObjectListCondition");  //DMObjectListCondition = Условие отбора для запроса DMGetObjectListRequest.
Условие.property = "performer"; //DMBusinessProcessTaskExecutor
Условие.value = Исполнитель;
СписокУсловий.conditions.Добавить(Условие);
    
Запрос = ИнтеграцияС1СДокументооборот.СоздатьОбъект(Прокси, "DMGetObjectListRequest"); //DMGetObjectListRequest = Запрашивает список объектов Документооборота (элементов справочника или значений перечисления), удовлетворяющих указанному условию.
Запрос.type = "DMBusinessProcessTask"; //DMBusinessProcessTask = Описывает задачу в Документообороте, которая формируется при движении бизнес-процесса по маршруту.
Запрос.query = СписокУсловий;
    
Ответ = ИнтеграцияС1СДокументооборот.ВыполнитьЗапрос(Прокси, Запрос);
ИнтеграцияС1СДокументооборот.ПроверитьВозвратВебСервиса(Прокси, Ответ);

Валится с ошибкой:
Ошибка при получении списка задач:
Неизвестное поле в условии отбора: performer

Вопрос: что делаю не так?! Как решить задачу?

PS Руководствуюсь описанием веб-сервиса, где для класса DMBusinessProcessTask определено свойство performer с типом DMBusinessProcessTaskExecutor
1 Active PM
 
01.04.19
09:17
Ну что, коллеги?! Разве никто не использует в своей деятельности интеграцию УПП с ДО?
У меня вопрос неспешный, но решить нужно.
Есть кто-нибудь кто по существу вопроса может что-то конкретное сказать?!
2 baza1
 
01.04.19
10:04
Посмотрите какие есть условия отбора для получения списка задач в модуле ДО
ОбработкаЗапросовXDTOБизнесПроцессыИЗадачи.ПолучитьСписокЗадач
В нем вы и попадаете на "'Неизвестное поле в условии отбора: %1'"

Вроде там нет отбора по исполнителю, только по пользователю сеанса.