Веб-сервис основан на сервисе TCWebService.asmx. Он сохранен для поддержания прежних разработок, однако для реализации новых функций следует использовать веб-сервис Valhalla.
Предварительная подготовка — настройка IIS для использования TCWebService
Работа с отдельными задачами
Метод NewTask
Метод NewTask создает задачу в указанной категории в "Первой Форме". В зависимости от категории, задача может являться, например, записью справочника или инициированным бизнес-процессом.
Параметры функции:
•Идентификатор пользователя (ID), от имени которого ставится задача.
•Текст задачи.
•Срок исполнения задачи, необязательный параметр.
•Идентификатор категории задачи (можно узнать в интерфейсе администрирования "Первой Формы", в разделе "Категории".).
•Комментарий к задаче, необязательный параметр.
•Идентификатор пользователя (ID), назначенного ответственным исполнителем задачи, необязательный параметр.
•Приоритет задачи (высокий/низкий/обычный).
•Дополнительные параметры.
После выполнения функция NewTask возвращает номер задачи. Номер является уникальным идентификатором задачи и используется для осуществления дальнейших действий с данной задачей. Обычно, во внешних системах реализуется функция "словаря", с помощью которого внутренние идентификаторы объектов системы соотносятся с соответствующими номерами задач из "Первой Формы".
Функция GetFullTaskInfo
Функция GetFullTaskInfo позволяет получить все данные о задаче, включая текущее состояние и реквизиты. При вызове функция возвращает основные параметры задачи, значения заполненных ДП, и текущий статус задачи (положение на маршруте).
Параметры функции:
•Номер задачи, о которой требуется получить информацию.
•Идентификатор пользователя с требуемым уровнем доступа, от имени которого осуществляется сбор данных.
Метод PostTask
Метод PostTask аналогичен NewTask, однако имеет более удобную сигнатуру — в частности, намного удобнее заполнять дополнительные параметры в задаче.
Параметры функции:
•Идентификатор пользователя (ID), от имени которого надо производить действия.
•Текст задачи.
•Идентификатор категории, куда надо поставить задачу.
•Опциональные параметры задачи.
Параметр "Опциональные параметры задачи" содержит следующие дочерние элементы:
•Срок задачи.
•Дата начала работы с задачей.
•Проставление автоматического комментария в задачу.
•Идентификатор исполнителя задачи.
•Приоритет. Может иметь значения 3 — высокий, 1 — обычный, 0 – низкий.
•Массив значений дополнительных параметров задачи, каждый из которых содержит следующие свойства:
oидентификатор доп. параметра.
oзначение доп. параметра.
•Напоминание о сроке задачи.
•Настройка постановки подзадачи, если задача создается как подзадача, со следующими свойствами:
oидентификатор родительской задачи.
oтребуется ли копировать подписчиков из родительской задачи.
oтребуется ли копировать вложения из родительской задачи.
Метод возвращает идентификатор созданной задачи (аналогично методу NewTask).
Работа с доп. параметрами и свойствами задач
Метод GetExtParamValueInTask
Метод GetExtParamValueInTask используется для получения значение конкретного ДП в определенной задаче.
Параметры:
•Номер задачи.
•Идентификатор дополнительного параметра.
•Возвращать ли идентификатор значения вместо текстового представления (для ДП "выпадающий список" или "ссылка на задачу"/лукап)
Идентификаторы (коды) доп. параметров можно узнать в интерфейсе администрирования "Первой Формы", в разделе "Доп. параметры".
Метод UpdateExtParamsInTasks
Метод UpdateExtParamsInTasks изменяет значения одного или нескольких ДП в задаче (например, изменяет реквизиты в элементе справочника или какие-либо данные в бизнес-процессе).
Параметры:
•Номер задачи.
•Идентификатор дополнительного параметра.
•Значения ДП, сформированные в виде строки специального формата
Изменение основных параметров
Существует ряд функций для изменения предопределенных свойств задач, не являющихся доп. параметрами:
•UpdateTime — устанавливает (или меняет) срок выполнения задачи
•UpdateTaskDescription — изменяет текст задачи
•UpdateTaskStartTime — фиксирует время начала выполнения работ по задаче.
Управление движением задачи по маршруту
Метод ChangeTaskStep осуществляет переход задачи по маршруту из одного состояния в другое. В том числе метод может осуществлять: отклонение или утверждение задач, переход в бизнес-процессе. Переход по маршруту – это стандартный способ инициировать автоматизацию в "Первой Форме" по команде от внешней системы
Функция имеет следующие параметры:
•Идентификатор перехода (можно узнать в интерфейсе администрирования "Первой Формы", раздел "Категории", вкладка "Маршрут")
•Номер задачи.
•Идентификатор пользователя, от имени которого осуществляется переход.
Методы для работы с файлами
Файлы в системе "Первая Форма" могут храниться в виде вложений в задачу и в ДП типа "файл".
Передача файлов в "Первую Форму"
Функции UploadFile и UploadEpFile загружают слепок файла при подписании файла с помощью ЭЦП. Функция UploadFile загружает его в задачу, а UploadEpFile — в ДП.
Функции имеют следующий набор параметров:
•Идентификатор пользователя (ID), от имени которого вкладывается файл.
•Номер задачи, в которую вкладывается файл.
•Исходные имя и расширение файла.
•Содержимое файла в виде массива байт (byte [ ]). При передаче по сети этот массив кодируется в Base64, в большинстве случаев задачу кодирования берет на себя оболочка программной среды, в которой выполняется доработка сторонней системы. Поэтому можно просто передавать массив байт в "чистом" виде.
•Текстовое описание файла (не обязательно для заполнения).
•Функция UploadEpFile имеет также параметр — ID ДП, в который загружается файл.
Передача файлов в стороннее приложение
Функции DownloadFile и DownloadEpFile позволяют стороннему приложению получить содержимое файла, вложенного в задачу или ДП "Первой Формы". Параметры DownloadFile:
•Идентификатор пользователя.
•Идентификатор файла.
Параметры DownloadEpFile:
•Идентификатор задачи.
•Идентификатор пользователя.
•Идентификатор ДП.
Обе процедуры возвращают файл в виде набора байт в кодировке Base64.
Получение идентификаторов пользователей
Внешняя система может не знать идентификатор пользователя в системе "Первая Форма", но может знать, например, их логин или е-mail. Функции GetUserIdByLogin и GetUserIdByEmail, которые возвращает ID пользователя, пригодный для использования в других методах. Параметрами вызова для них являются логин и е-mail соответственно.
Полный список методов
Первая Форма — это объект конфигурации с типом WSСсылки с WSDL (Web Services Description Language – язык описания веб-сервисов и доступа к ним, основанный на языке XML).
Метод |
Описание |
---|---|
AddAcceptant |
Добавить акцептанта |
AddCommentSilent |
Добавить комментарий без уведомления подписчиков |
AddCommentSilentWithType |
Добавить комментарий без уведомления подписчиков с указанием типа |
AddNewSignatureToTask |
Добавить запрос подписи |
AddPerformer |
Добавить исполнителя |
AddResponsiblePerformer |
Добавить отвественного исполнителя |
AddRole |
Добавить роль для пользователя в указанной группе Параметры: •<param name="groupId">int</param> – идентификационный номер группы, в которой состоит пользователь; •<param name="userId">int</param> – идентификационный номер пользователя, которому требуется добавить роль; •<param name="roleId">int</param> – идентификационный номер роли, которую требуется добавить (список ролей с ID можно уточнить в разделе "Роли") •<param name="adminUserId"></param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется добавление роли указанному пользователю. |
AddSubscriber |
Добавить подписчика |
AddSubscriberSilent |
Добавить подписчика без уведомления пользователей |
AddToFavourites |
Добавить письмо в избранное |
AddUnrequiredSignatures |
Запрос необязательных подписей |
AddUser |
Добавить пользователя |
AddUserComment |
Добавить комментарий |
AddUserCommentWithSms |
Оповестить о комментарии с помощью смс-сервиса |
AddUserToGroup |
Добавить пользователя по идентификационному номеру в группу с указанным идентификационным номером группы Параметры: •<param name="userId">int</param> – идентификационный номер добавляемого пользователя; •<param name="groupId">int</param> – идентификационный номер группы, в которую осуществляется добавление; •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется добавление пользователя. |
AddUserWithLang |
Добавить пользователя |
ChangeSignatureDue |
Сменить срок подписи |
ChangeSignatureReason |
Сменить причину подписи |
ChangeTaskStep |
Сменить статус задачи |
ChangeTaskStepWithoutUnrequiredSignatures |
Переход с необзятальными подписями |
CheckAuth |
Это служебный метод – проверяет не истек ли ключ авторизации |
CreateGroup |
Добавляет новую группу с указанными параметрами и возвращает идентификационный номер созданной группы Параметры: •<param name="groupName">string</param> – название группы; •<param name="groupDetails">string</param> – детальная информация о созданной группе; •<param name="groupTypeID">int</param> – идентификационный номер типа группы (список групп с ID можно уточнить в разделе "Группы -> Типы групп"); •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется добавление группы. |
DeleteAllPerformersFromTask |
Удалить всех исполнителей в указанной задаче •<param name="taskID">int</param> – идентификационный номер задачи, из которой требуется удалить исполнителей; •<param name="adminUserID">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется осуществляется удаление исполнителей данной задачи. |
DeleteMailbox |
Удалить почтовый ящик |
DeletePerformerFromTask |
Удалить исполнителя в указанной задаче Параметры: • <param name="performerID">int</param> – идентификационный номер пользователя, которого требуется удалить; • <param name="taskID">int</param> – идентификационный номер задачи, из которой требуется удалить исполнителя; • <param name="adminUserID">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется осуществляется удаление исполнителя данной задачи. |
DeleteRequestedSignature |
Отменить запрос подписи |
DeleteTask |
Удалить задачу |
EditGroup |
Редактировать группу по указанным параметрам Параметры: •<param name="name">string</param> – название редактируемой группы; •<param name="details">string</param> – детальная информация о редактируемой группе; •<param name="groupId">int</param> – идентификационный номер редактируемой группы; •<param name="groupTypeId">int</param> – идентификационный номер типа группы (список групп с ID можно уточнить в разделе "Группы -> Типы групп"); •<param name="adminUserId">int</param> – идентификационный номер пользователя с требеумым уровнем доступа, от имени которого осуществляется редактирование группы. |
EmailMassChangeReadState |
Пометить письмо прочитанным |
FindSidForAccountName |
Возвращает SID из AD по логину (AccountName) |
GetContactsTree |
Запрос на получение дерева контактов |
GetEvents |
Запрос на получение событий |
GetGroupCard |
Получить состав группы |
GetFullTaskInfo |
Получить полную информацию о задаче. Параметры: •<param name="taskID">int</param> – идентификанционный номер задачи, о которой требуется получить информацию; •<param name="adminUserID">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется сбор данных. |
GetFullTaskInfoAsDic |
Метод, аналогичный GetFullTaskInfo и позволяющий получить полную информацию о задаче. Используется для синхронизации данных с программами "1С:Предприятие" Параметры: •<param name="taskID">int</param> – идентификанционный номер задачи, о которой требуется получить информацию; •<param name="adminUserID">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется сбор данных. |
GetInvitationTemplate |
Возвращает шаблон для письма с приглашением 1Ф |
GetLastComment |
Показать последний комментарий |
GetLastComments |
Показать последние комментарии |
GetNextEvent |
Показать предстоящие события |
GetStats |
Возвращает статистику по пользователю по задачам в категории: Сколько задач сегодня •поставлено // filter by created date •завершено // filter by end date and status •сегодня подходит срок // filter by orderedtime and status по людям в группе: •сколько подчиненных онлайн •сколько подчинённых отсутствует |
GetTasks |
Показать текущие задачи |
GetTaskCommentRecipients |
Показать комментарии |
GetUserIdByLogin |
Возвращает идентификационный номер пользователя по переданному логину (логин может быть записан как адрес электронной почты, например, test@gmail.com, или как обычный логин, например, testuser) <param name="login">string</param> – логин пользователя, идентификационный номер которого необходимо получить |
GetUserIDByEmail |
Показать ID пользователя по E-mail |
GetUserInfo |
Возвращает информацию о пользователе в виде объекта UserWebParams. Параметры: •<param name="userId">int</param> – идентификационный номер пользователя, для которого требуется получить данные; •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которогоо осуществляется получение данных. |
InviteUser |
Пригласить пользователя |
MarkCommentAsUnread |
Пометить комментарий как непрочитанный |
MassDeleteEmail |
Удалить письма |
MoveTask |
Изменить категорию задачи |
NewTask |
Новая задача Параметры: •<userId>int</userId> – идентификационный номер пользователя (ID), от имени которого ставится задача; •<task>string</task> – текст задачи; •<orderedTime>dateTime</orderedTime> – срок; •<subCategoryId>int</subCategoryId> – идентификационный номер категории, в которую ставится задача; •<comment>string</comment> – позволяет сразу добавить комментарий к задаче; •<extParams> — массив строк, содержащий значения дополнительных параметров в виде {Идентификатор доп.параметра}={значение}. Для ДП типа лукап нужно передавать идентификатор связываемой задачи; для ДП типа checkbox – строку да/нет, все остальные значения передаются строками; •<performerId>int</performerId> – идентификационный номер пользователя (ID), назначенного ответственным исполнителем; •<priorityId>int</priorityId>– приоритет (высокий/низкий/обычный); •<parentId>int</parentId> – идентификационный номер родительской задачи; •<userNick>string</userNick> – ник пользователя; •<remind>boolean</remind> – создавать ли напоминание по задачи; •<propagateSubscribers>boolean</propagateSubscribers> – копировать подписчиков из родительской задачи; •<propagateFiles>boolean</propagateFiles> – копировать вложенные файлы из родительской задачи; •<isAnonymous>boolean</isAnonymous> – анонимная постановка задачи; •<realUserId>int</realUserId> – идентификационный номер пользователя (ID), от имени которого ставится задача; •<taskStartTime>dateTime</taskStartTime> – дата начала работы. |
NewTaskOld |
Новая задача (используется в CLR хранимках) |
NewTaskOldIgnoreAfterTaskPostedErrors |
Новая задача с перехватом исключений |
PeriodicExecution |
Запускает выполнение периодических задач (джобов) |
ReadAll |
Прочитать все непрочитанные комментарии |
ReasonDialog_AddQucikReply |
Быстрые ответы |
RemoveGroup |
Удаление группы по идентификационным номерам группы и пользователя Параметры: •<param name="groupId">int</param> – идентификационный номер удаляемой группы; •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется удаление группы. |
RemoveUserFromGroup |
Удалить пользователя с указанным идентификационным номером из группы с указанным идентификационным номером. Параметры: •<param name="groupId">int</param> – идентификационный номер группы из которой осуществляется удаление; •<param name="userId">int</param> – идентификационный номер удаляемого пользователя; •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется добавление пользователя. |
RemoveRole |
Удалить роль пользователя в указанной группе Параметры: •<param name="groupId">int</param> – идентификационный номер группы, в которой состоит пользователь; •<param name="userId">int</param> – идентификационный номер пользователя, у которого требуется удалить роль; •<param name="roleId">int</param> – идентификационный номер роли, которую требуется удалить; •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется удаление роли у указанного пользователя. |
SearchTasksExtended |
Поиск задач по расширенным параметрам. Параметры: •SearchParamsExtended – расширенный набор параметров поиска, данный параметр осуществляет запрос следующих атрибутов: oText – текст поискового запроса; o ExtParams – фильтр по дополнительным параметрам, каждая строка вида: {Идентификатор дополнительного параметра}={Значение дополнительного параметра} oSubcatInIds – категории и разделы, в которых осуществляется поиск задач (массив строк вида s32423,c423423); oStateInIds – отбор по статусам задач (список ID статусов через ;); oPerformers – поиск по исполнителям задач (строка вида: {условие;ID исполнителя}. Обратите внимание, что условия могут быть двух типов: 1. Условие И (AND(0)), либо 2. ИЛИ (OR(1)); oOwners – строка вида: {условие;ID заказчика}Обратите внимание, что условия могут быть двух типов: 1. Условие И (AND(0)), либо 2. ИЛИ (OR(1)); oFullTaskText – условие получения полного текста задачи (true\false) •<param name="ownerId">int</param> – идентификационный номер заказчика задачи; •<param name="userId">int</param> – идентификационный номер пользователя, от имени которого осуществляется поиск. |
SendSmsToGroup |
Отослать смс группе пользователей |
SendSmsToPhone |
Отослать смс по номеру телефона |
SendSmsToPhoneList |
Отослать смс по списку номеров |
SendSmsToUser |
Отослать смс пользователю |
SimpleSearch |
Поиск задач |
UpdateExtParamsInTasks |
Задать новые значения для ДП в задаче. Данный метод обновляет значения дополнительных параметров в первой форме. Может быть использован для обновления информации в справочниках из сторонних систем. Параметры: •<taskId>int</taskId> – номер задачи, где меняются параметры; •<userId>int</userId> – идентификационный номер пользователя (ID) пользователя, от имени которого меняются параметры; •<extParamStr>string</extParamStr> – сформированная строка со значениями дополнительных параметров (для того, чтобы сохранить символы '::' внутри значения ДП — поставьте перед ними обратный слеш '\::'; для того, чтобы поместить слеш в конце значения ДП — продублируйте его '\\::'\) В параметре <extParamStr>string</extParamStr> формируется строка следующего вида: #n{Идентификатор ДП}#v{Значение}::#n{Идентификатор ДП}#v{Значение}:: Если среди ДП есть "Выбор нескольких задач в категории" (multilookup), то для него список значений передается строкой вида: #n{Идентификатор ДП}#v{№Задачи1}#{№Задачи2}#{№Задачи3}:: |
UpdateOrderedTimeSilent |
Задает срок задачи |
UpdateTaskDescription |
Задает текст задачи |
UpdateTaskStartTime |
Задает время начала работы по задаче |
UpdateUser |
Обновить данные пользователя согласно переданным в UserWebParams данным. Параметры: •<param name="userObj">UserWebParams</param> – набор данных пользователя, которые требуется обновить; •<param name="adminUserId">int</param> – идентификационный номер пользователя с требуемым уровнем доступа, от имени которого осуществляется обновление информации о пользователе в базе данных. |
UploadFile |
Загрузить файл Параметры: •<userId>int</userId> – идентификационный номер пользователя (ID), от имени которого вкладывается файл; •<taskId>int</taskId> – идентификационный номер задачи, в которую вкладывается файл; •<fileName>string</fileName> – исходные имя и расширение файла; •<fileData>base64Binary</fileData> – содержимое файла в виде массива байт (byte[]). (При передаче по сети этот массив кодируется в Base64, в большинстве случаев задачу кодирования берет на себя оболочка программной среды, поэтому можно просто передавать массив байт в чистом виде.) •<description>string</description> – описание файла (это поле является необязательным для заполнения). |
UploadEpFile |
Вложить файл в ДП типа "файл". Параметры: •<userId>int</userId> – идентификационный номер пользователя (ID), от имени которого вкладывается файл; •<taskId>int</taskId> – идентификационный номер задачи, в которую вкладывается файл; •<extParamId>int</<extParamId> – идентификационный номер ДП, через который загружается файл; •<fileName>string</fileName> – исходные имя и расширение файла; •<fileData>base64Binary</fileData> – содержимое файла в виде массива байт (byte[]). (При передаче по сети этот массив кодируется в Base64, в большинстве случаев задачу кодироования берет на себя оболочка программной среды, поэтому можно просто передавать массив байт в чистом виде.) •<description>string</description> – описание файла (это поле является необязательным для заполнения). |
UserNotificationSettings |
Смена настроек уведомлений пользователя |
UserWebParams |
Набор данных пользователя доступных для методов UpdateUser и GetUser. Состоит из: userID[int] – ID пользователя (Список пользователей с ID можно получить в настройках "Админ"→"Пользователи"); nick[string] – Ник пользователя; firstName[string] – Имя пользователя; lastName[string] – Фамилия пользователя; middleName[string] – Отчество пользователя; phone[string] – Номер телефона пользователя; departmentID[int?] – Департамент, в котором состоит пользователь (cписок департаментов с ID можно получить в настройках "Админ"→"Пользователи"→"Список департаментов"); appointmentID[int?] – Должность пользователя (cписок должностей с ID можно получить в настройках "Админ"→"Пользователи"→"Список должностей"); externalAppointmentId[int?] – Внешняя должность пользователя; divisionID[int?] – Отдел, в котором состоит пользователь (cписок отделов с ID можно получить в настройках "Админ"→"Пользователи"→"Список отделов"); email[string] – адрес электронной почты пользователя; externalEmail[string] – адрес внешней электронной почты пользователя; externalDisplayName[string] – Обычно, это имя и фамилия; roomID[int?] – ID номера комнаты (cписок комнат с ID можно получить в настройках "Админ"→"Пользователи"→"Список комнат"); isFired[bool] – Если значение 1 – то уволен; displayname[string] – Имя отображаемое в основном интерфейсе приложения; Constants.UserNameMode – Тип отображения имени сотрудника в требуемом формате: •0 – отображать фамилию, •1 – отображать фамилию и имя, •3 – отображать ник; langID[int] – ID языковых настроек: •1 – русский, •2 – английский; companyID[int?] – ID компании (cписок компаний с ID можно получить в настройках "Админ"→"Пользователи"→"Список компаний"); cellPhone[string] – номер мобильного телефона; homePhone[string] – номер домашнего телефона; fax[string] – номер факса; skype[string] – контакт скайпа; isEmployee[bool] – является ли сотрудником компании. (1 – да); birthDate[DateTime?] – дата рождения; workStartDate[DateTime?] – дата начала работы; country[string] – название страны; city[string] – название города; isInMaternityLeave[bool] – Декрет. (1 – да); gender[bool?] – Пол: •1 – мужчина, •2 – женщина; sip[string] – внутренний номер 4 цифры. |
Примеры веб-сервисов TCWebService
Примеры использования веб-сервиса TCWebService.asmx:
Обращение к веб-сервису "Первой Формы" из стороннего приложения (при win-аутентификации):