Разработка мобильного приложения для заявок на отпуск/командировку
Заявки на отпуск и командировки — одна из самых частых задач для корпоративных мобильных приложений. Сотрудник подаёт заявку, руководитель согласовывает, HR отражает в учётной системе. Технически просто, но дьявол в интеграциях: 1С:ЗУП, SAP HCM, BambooHR, Workday — у каждой системы свой API и своя логика согласования.
Ключевая логика: процесс согласования
Цепочка согласования может быть линейной (сотрудник → руководитель → HR) или ветвящейся (командировка за рубеж → дополнительное согласование с финансовым директором). Эту логику не стоит хардкодить на мобильном — она должна приходить с backend как конфигурация.
Мобильное приложение отображает текущий статус заявки и список approver'ов, но не принимает решений о маршруте. Так изменение процесса согласования не требует обновления приложения.
Интеграция с HR-системами
Для 1С:ЗУП — REST-сервисы через oData v4 или HTTP-сервисы 1С. Заявка на отпуск создаётся как документ НачислениеОтпуска. Для синхронизации баланса отпускных дней — запрос к регистру сведений ОстатокОтпуска.
suspend fun getRemainingVacationDays(employeeId: String): VacationBalance {
val response = hrApiClient.get("/odata/standard.odata/InformationRegister_ОстатокОтпуска") {
parameter("\$filter", "Сотрудник_Key eq guid'$employeeId'")
parameter("\$select", "ВидОтпуска,КоличествоДней")
}
return VacationBalance.fromODataResponse(response)
}
Для SAP HCM — SAP Mobile Services SDK или REST через SAP API Business Hub. BambooHR и Workday имеют стандартные REST API с OAuth 2.0.
UX для подачи заявки
Форма не должна быть длинной. Выбор типа отпуска (ежегодный, без содержания, учебный), дата начала и окончания с проверкой рабочего календаря, комментарий — этого достаточно. Автоматически показываем количество дней и остаток баланса.
Выбор дат — нативные DatePicker с блокировкой выходных и праздников (производственный календарь нужно подгружать с сервера или хранить локально, обновляя раз в год).
После подачи заявки — push-уведомление при изменении статуса. Руководитель получает push с кнопками действий прямо в уведомлении (iOS: UNNotificationCategory с actions; Android: NotificationCompat.Action), без необходимости открывать приложение.
Разработка MVP-приложения для заявок (отпуск + командировка + согласование + интеграция с одной HR-системой) — 4-8 недель. Стоимость рассчитывается индивидуально.







