ERPNext на смартфоне: PWA для прораба и её ограничения
АйТи Фреш
IT-аутсорсинг и бизнес

ERPNext в телефоне прораба: PWA, заявка с объекта и чего мобильный доступ не умеет

Автор: , директор ООО «АйТи-Фреш» · · ~14 мин чтения
Прораб с телефоном среди лесов, на экране карточка заявки, в небе полоска сигнала с одним делением: ERPNext PWA
Заявка с объекта работает ровно настолько, насколько есть связь.

Отдельного мобильного приложения у ERPNext нет: прораб открывает систему в браузере телефона и добавляет её на экран Домой, как PWA. Заявка с объекта оформляется за минуту, если упростить форму, но офлайн-режима нет, нужна связь. Ниже установка, настройка формы и ограничения.

Что такое PWA и чем это лучше мобильного приложения для прораба

PWA — это сайт, который ведёт себя как приложение: у него есть иконка на экране телефона, он открывается без адресной строки и не требует магазина приложений. Для ERPNext это значит, что прораб открывает тот же сайт, что и директор за компьютером, но с телефона и с иконки. Отдельно разрабатывать, подписывать и публиковать мобильный клиент не нужно, обновления приходят вместе с обновлением сервера. Для небольшой фирмы, которая внедряет систему по схеме ERPNext под ключ, это серьёзная экономия: нет второго продукта, который нужно поддерживать.

Теперь об уточнении, которое я проверил по исходникам. В версии 15 страница рабочего стола ERPNext (шаблон www/app.html во Frappe) содержит метатеги для мобильных браузеров (признак веб-приложения, цвет панели, масштаб), но не содержит ссылки на файл манифеста и не подключает сервис-воркер. Проще говоря, из коробки Desk — это адаптивный сайт, который можно добавить на экран Домой, а не полноценный устанавливаемый PWA с офлайн-кэшем. У соседнего приложения Frappe HR другая история: по его документации, это PWA по адресу /hrms, и на Android в Chrome браузер предлагает его установить.

Есть и официальный мобильный клиент Frappe на Flutter, но его репозиторий архивирован в октябре 2022 года: разработку команда прекратила. Для рабочего процесса я на него не рассчитываю. Поэтому мобильный доступ к ERPNext в 2026 году — это браузер плюс ярлык, а всё, что сверх этого, придётся делать своими силами, и я сразу говорю заказчикам, где граница.

Чем это хорошо для прораба. Не нужны магазины и учётные записи сторонних сервисов, не нужно ставить ничего на личный телефон, кроме ярлыка. Интерфейс адаптивный: списки и формы перестраиваются под экран, хотя, как показано ниже, плотные формы остаются неудобными. Чем плохо: нет офлайна, и сеть на площадке напрямую определяет, будет ли работать процесс. Это не недостаток конкретной настройки, а свойство подхода.

Как установить ERPNext на телефон: Android, iPhone и ярлыки

На iPhone используйте Safari: откройте адрес вашей системы, войдите под учётной записью прораба, нажмите кнопку «Поделиться» и выберите пункт «На экран Домой» (в английском интерфейсе Add to Home Screen). Если пункта нет в списке, прокрутите меню вниз и откройте «Редактировать действия». Так написано в документации Frappe HR по установке мобильного приложения, и для ERPNext порядок такой же. Сторонние браузеры на iPhone могут вести себя иначе, поэтому для прораба я прописываю Safari.

На Android откройте адрес в Chrome и в меню с тремя точками найдите «Установить приложение» или «Добавить на главный экран». Подсказку может показать и сам браузер. В документации Frappe HR отдельно оговорено, что Firefox без плагина установку PWA не поддерживает. В нашем случае, когда манифеста у Desk нет, пункта «Установить» может и не быть, и тогда остаётся «Добавить на главный экран»: результат тот же ярлык, но без особого режима окна. Это нужно проверить на ваших устройствах.

Ярлыки на разделы (например, сразу на список задач /app/task) в сообществе делают через собственный файл манифеста. На форуме Frappe описан рецепт: загрузить манифест и иконку в публичные файлы сайта, указать ссылку на манифест в настройках сайта и при необходимости собрать пакет через PWA Builder. Автор рецепта сам оговаривает слабые места: манифест должен быть доступен без входа, на Android пункт добавления приходится выбирать вручную, а надёжность PWA на разных устройствах неодинакова.

Я не воспроизводил этот рецепт на стенде и вижу в нём вопрос. Поле HTML для заголовка в настройках сайта (Website Settings, head_html) предназначено для страниц публичного сайта, а шаблон Desk, как я проверил, места для него не содержит. Значит, ссылка на манифест может не попасть в страницу рабочего стола. Если вам нужен настоящий установочный PWA, это задача для собственного приложения Frappe, которое добавляет манифест и иконки через хуки, и её нужно закладывать отдельным пунктом сметы. Условия для ваших устройств проверьте до обещаний прорабам.

Не обещайте бригаде «приложение». Честная формулировка: «ярлык на экране телефона, нужна связь». Тогда ожидания совпадут с реальностью.

Заявка с объекта за минуту: какие поля оставить на форме

Интерфейс ERPNext рассчитан на компьютер, и заявка на материалы со всеми полями на телефоне выглядит громоздко. Задача — оставить прорабу минимум: объект, номенклатура, количество. Всё остальное либо скрывается, либо подставляется автоматически. Но здесь есть нюанс, который я проверил по описанию DocType версии 15: обязательными в заголовке Material Request остаются серия документа, тип заявки, организация и дата документа, а в строке позиции — позиция, количество, единица измерения, коэффициент пересчёта, складская единица и дата потребности. Значит, скрыть «всё лишнее» нельзя: обязательные поля либо должны получить значение по умолчанию, либо остаться видимыми.

Практика такая. Через Customize Form я задаю значение по умолчанию для типа заявки («Purchase»), серии и организации и скрываю то, что не нужно прорабу (например, технические поля учёта). Единицы измерения подтягиваются из карточки номенклатуры, это нужно проверить в вашей настройке. Дату потребности делаю значением по умолчанию «завтра» или ставлю правило, при котором она заполняется из заголовка. Остаётся то, что прораб должен видеть: объект (Project в строке), позиция и количество. Проверка простая: я сажусь с бригадиром, он создаёт три заявки на своём телефоне, а я смотрю, где он задерживается и какие поля пролистывает.

Для самых простых случаев есть альтернатива: веб-форма. В DocType Web Form можно выбрать документ (Select DocType), включить «Login required», перечислить только нужные поля в таблице Web Form Fields и задать значения по умолчанию. Для прораба получается короткая страница без интерфейса Desk. Что нужно проверить: как веб-форма работает с табличной частью в вашей версии, как она применяет права документа (есть флажок Apply Document Permissions) и как попадает проект. Я бы пробовал веб-форму для пилота, а не закладывал в план как гарантированное решение.

Ещё одна мелочь, которая важна на объекте: ввод на телефоне медленнее. Лучше заранее подготовить короткий список ходовых материалов с понятными названиями, чтобы прораб выбирал позицию из поиска за пару символов, а не искал по длинному каталогу. Для этого я чищу номенклатуру до запуска: одно название для одного материала, понятные единицы, группы по видам работ.

Что PWA не умеет: офлайн и перегруженные формы

Главное ограничение — отсутствие офлайн-режима. Стандартная веб-версия ERPNext и PWA не поддерживают полноценную работу без связи: без интернета заявку не создать и не сохранить. Офлайн в экосистеме встречается у отдельных сторонних кассовых решений для розницы (например, TailPOS), а для строительной заявки готового офлайн-клиента нет. Для строительной площадки с плохим сигналом это существенно, и вопрос «что делает прораб без связи» решается процессом, а не настройкой: заявку фиксируют сообщением или голосом снабженцу, а в систему её вносят при появлении связи.

Второе ограничение — табличная часть. Редактировать строки позиций на маленьком экране неудобно, особенно если в заявке больше пяти позиций. В обсуждениях на форуме Frappe встречаются жалобы на заметные задержки интерфейса, когда из заявки на сотню с лишним строк создают заказ; насколько это касается вашей версии и сервера, проверяют на стенде. Для прораба это редкий случай, но привычка подавать заявки на сто строк с телефона — плохая идея. Крупные заявки лучше оформлять на компьютере.

Третье: ярлык не заменяет мобильный клиент по поведению. Уведомления на экран блокировки я здесь не обещаю: почтовые оповещения настраиваются отдельно, а работу push в вашей версии нужно проверять самому. Камера работает через выбор файла в браузере, а сохранение черновика зависит от того, не закрыл ли пользователь страницу до отправки. Перед запуском проверьте это на тех телефонах, которые реально есть у бригадиров: старые Android-устройства и разные версии Safari ведут себя по-разному.

ЧтоРаботаетТребует решения
Заявка Material Request при наличии связида—
Прикрепление фото к документуда, через выбор файлапроверить на ваших телефонах
Ярлык на экране Домойдана Android может быть без режима приложения
Ярлыки на разделы через манифестчерез собственное приложениене из коробки
Офлайн-режимнетрегламент подачи без связи
Табличная часть на 5 и более строкнеудобноупрощение формы, заявка с компьютера
Доступ к финансамзависит от ролиограничить роль и права, проверить

Выездная Бригада: девять человек, пять объектов и один телефон на бригаду

Условный пример: подрядчик «Выездная Бригада», 9 рабочих мест, пять объектов, четыре бригады. Рабочие места: директор, снабженец, бухгалтер, сметчик, кладовщик базы и четыре бригадира. У каждого бригадира один рабочий телефон и своя учётная запись. Числа и времена в разборе условные, они иллюстрируют ход процесса, а не результаты реального клиента.

День бригадира в условном примере выглядит так. В 8:00 он осматривает объект и видит, что не хватает материала. В 8:20 открывает ярлык ERPNext на телефоне и оформляет заявку: объект, позиция, количество, остальное подставлено по умолчанию. В 8:30 снабженец видит заявку в списке, а в 9:00 руководитель согласует её по маршруту. В 10:00 связь на объекте пропала: заявку на следующий материал бригадир отправил голосом снабженцу, и она была внесена позже, когда связь вернулась. К 15:00 бригадир приложил к документу фото акта выполненных работ.

Что выяснили на пилоте. Форма заявки сначала была перегружена, и бригадиры звонили снабженцу, не желая заполнять её. После скрытия лишнего и подстановки значений по умолчанию жалоб на форму почти не осталось. Связь на двух объектах из пяти была неустойчивой, поэтому записали правило: если связи нет, заявка подаётся голосом, а снабженец вносит её сам с пометкой в комментарии. Вопрос с общим телефоном на бригаду решили отдельно: учётная запись на человека, а не на бригаду, иначе в системе нет ответственного. Как показать такой сценарий вживую, можно обсудить: на демостенде erp-demo.itfresh.ru по запросу видно, как выглядит заявка на телефоне.

Что ограничить прорабу на телефоне: роль, проекты и финансы

Мобильный доступ повышает риски: телефон теряют, оставляют без присмотра, дают подержать коллегам. Поэтому для прораба нужна отдельная роль с минимальным набором прав: заявки, задачи, просмотр номенклатуры и проекта, без доступа к платежам, счетам и отчётам по финансам. Затем сужение по записям: User Permission на его Project и склад объекта, чтобы в списках и полях выбора он видел только свои объекты. Роль и User Permission нужно проверить под тестовой учётной записью, в том числе в глобальном поиске и полях выбора.

Дальше меры против потери телефона. В System Settings есть двухфакторная аутентификация, и для руководителей и бухгалтерии я бы включал её всегда. Для прорабов решение зависит от условий: код каждый раз неудобен на объекте, поэтому на пилоте мы обычно оставляем пароль, но ограничиваем срок сессии (Session Expiry в System Settings) и права роли. Если телефон потерян, сразу отключаем учётную запись: пользователь в ERPNext отключается снятием флажка Enabled. Об управлении смартфонами сотрудников на уровне устройства можно прочитать в материалах про MDM для смартфонов и про личные телефоны сотрудников (BYOD).

И несколько честных границ. Мобильный доступ не решает вопрос с интернетом на объекте: если связи нет, решать нужно регламентом или усилением сигнала, а не настройкой ERPNext. Он не заменяет полноценного клиента: если вам нужны офлайн-режим, сканирование штрихкодов и ввод фотографий с привязкой к строкам, это отдельная разработка. И он не отвечает на вопрос, нужна ли вам именно эта система: если важны нативное приложение и офлайн, сравните варианты в обзоре выбора системы учёта на Linux. Мой совет: начните с пилота на одной бригаде, проверьте реальные телефоны и связь и только потом раскатывайте на остальных.

Частые вопросы

Есть ли у ERPNext мобильное приложение?

Отдельного поддерживаемого приложения для ERPNext нет: официальный мобильный клиент Frappe на Flutter архивирован в 2022 году. Для прораба используют браузер телефона и ярлык на экране Домой, то есть PWA-подобный доступ, без App Store и Google Play. Это работает при наличии связи, офлайн-режима из коробки нет.

Как установить ERPNext на iPhone?

Откройте адрес системы в Safari, войдите, нажмите «Поделиться» и выберите «На экран Домой» (Add to Home Screen). Если пункта нет, откройте «Редактировать действия». На Android в Chrome аналогичный пункт есть в меню браузера. Ярлыки на отдельные разделы, например /app/task, требуют собственного файла манифеста, а не настроек из коробки.

Работает ли ERPNext без интернета на стройплощадке?

Нет: стандартная веб-версия и ярлык на экране не поддерживают полноценный офлайн-режим, для заявки нужна связь. Офлайн есть только в сторонних решениях вроде TailPOS для розницы. Как прораб подаёт заявку при отсутствии связи, решается регламентом: сообщить снабженцу, а внесение сделать позже, когда связь появится.

Удобно ли заполнять заявку на материалы с телефона?

Интерфейс ориентирован на компьютер, поэтому форму упрощают: оставляют объект, позицию и количество, остальное подставляют по умолчанию. Обязательные поля скрыть нельзя без значений по умолчанию, их нужно заполнить заранее. Удобство табличной части проверяют на реальном телефоне бригадира, а крупные заявки лучше оформлять с компьютера.

Может ли прораб с телефона увидеть чужие объекты и деньги?

Не должен: ему создают отдельную роль без доступа к финансам и User Permission на его Project и склад. После настройки обязательно проверьте под тестовой учётной записью, не видны ли чужие проекты в списках, поиске и полях выбора. Мобильный доступ не отличается от компьютерного по правам, только по неудобству проверки.

Столкнулись с похожей задачей? Обращайтесь — решим

Если у вас происходит что-то из описанного в этой статье — или любая другая проблема с ИТ-инфраструктурой, — обращайтесь в любое время. Мои специалисты и я лично разберём ситуацию, найдём настоящую причину и доведём до решения.

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

Источники

© ООО «АйТи-Фреш» · Москва · Все статьи