Что кабинет умеет без связи: какие разделы откроются, какие действия встают в очередь и уходят сами при возврате сети, где смотреть неотправленное, что происходит при споре с коллегой, почему повтор отправки не создаёт вторую запись — и честный список того, что без интернета не сработает.

Мастер Мария выехала к клиенту за город. Список работ на сегодня и карточку заказа она открыла ещё в
мастерской, а на месте связь пропала: одна палка, потом ноль. Работу она сделала, сумму согласовала —
и вот тут обычно начинается «запишу на бумажке и внесу вечером».
Здесь по-другому: список читается, карточка открывается, правка сохраняется. Кабинет запоминает, что
Мария сделала, и отправляет это сам — в ту секунду, когда телефон снова поймает сеть.
Эта статья отвечает на три вопроса: что откроется без связи, что отложится и уедет само и
чего без интернета не будет — последним, отдельным списком, без умолчаний.
Шаг 1. Кабинет сам замечает, что связи нет

Наверху появляется спокойная полоса: «Вы офлайн — показаны сохранённые данные», а рядом — на какой
момент эти данные. Не «только что» и не время открытия страницы, а честный момент последнего ответа
сервера; если сказать нечего, мы молчим, а не выдумываем.
Связь мы проверяем сами, а не верим значку сети. Вагон метро, вайфай в кафе, который «есть», но никуда
не ведёт, гостиничная страница-заглушка — во всех этих случаях телефон уверенно показывает
подключение. Кабинет в это время тихо спрашивает сервер, отвечает ли тот, и переключается на
сохранённые данные, не дожидаясь, пока вы упрётесь в ошибку.
Шаг 2. Что откроется без связи
Кабинет держит на устройстве копию того, что вы уже видели, и хранит её неделю. Срок свой у каждого
экрана: он отсчитывается не от последнего входа в кабинет, а от того раза, когда вы открывали именно
этот раздел со связью. Без сети открываются:
- разделы и списки, которые вы открывали раньше со связью, — с теми данными, что успели загрузиться;
- карточки записей, в которые вы заходили;
- сама оболочка кабинета — меню и переходы между уже открытыми разделами.
Раздел, в который вы ни разу не заходили с этого устройства со связью, без сети не откроется: взять
его неоткуда. Но кабинет от этого не закрывается и не перезагружается — вы остаётесь на том же экране,
со всеми уже загруженными данными, и видите короткое объяснение. Ничего из начатого не теряется.
Практический совет полевому сотруднику один: откройте нужные списки, пока связь есть.
Шаг 3. Что откладывается и уходит само

Без связи эти действия не ругаются ошибкой, а встают в очередь:
- правка записи — жмёте «Сохранить» в карточке ровно так же, как со связью;
- новая запись — заводится сразу, с ней можно работать дальше. Номера у неё пока нет, и мы не
выдаём за номер ничего: пока запись не уехала, она честно подписана «новая запись»;
- перетаскивание карточки на доске в другую стадию — карточка остаётся там, куда вы её положили,
и не «прыгает назад»;
- перенос и укорачивание события в календаре — событие остаётся на новом месте;
- галочка «готово» в «Моих делах» — дело уходит из списка сразу;
- строки заказа: вписать товар или услугу вручную и поправить количество, цену или скидку прямо в
строке. Строку, которую вы сами только что добавили без связи, можно и убрать — это отмена
собственного черновика. А вот выбрать позицию из прайса без связи не получится: список прайса
кабинет ищет на сервере в момент набора. Вписывайте строку руками, привязать её к прайсу можно
потом.
Работает и связка «создал клиента → тут же создал ему заказ» без всякой сети: когда очередь уедет,
ссылка между ними окажется правильной сама. Это самая тихая из возможных ошибок — сервер принял бы обе
записи и не пожаловался, просто связь между ними исчезла бы, — поэтому проверяем мы её отдельно.
Дважды сохранённая правка одной записи не превращается в две строки очереди: они схлопываются в одну,
и уедет то, что вы набрали последним.
Шаг 4. Где видно неотправленное

В шапке появляется значок с числом: «Правок ждёт отправки: 2. Они уйдут сами, когда появится связь».
Очередь лежит на устройстве, а не в памяти вкладки: перезагрузили страницу, закрыли браузер, телефон
уснул — правки на месте. Открыли кабинет во второй вкладке — она видит ту же очередь, а не свою.
Шаг 5. Экран «Синхронизация»

Значок в шапке открывает список, а рядом живёт целый экран — «Синхронизация». Он отвечает на вопрос
«где моя работа» и делится на вкладки:
- Все — всё неотправленное сразу, без разбора по состояниям;
- Ждут — что стоит в очереди, с группировкой по записи: две правки одного заказа видны как две
строки одной записи, а не как два непонятных пункта;
- Конфликты — правки, разошедшиеся с чужими;
- Отклонённые — то, что сервер не принял (например, у вас больше нет прав на этот раздел); каждую
можно повторить или убрать, и рядом написано, почему так вышло;
- История — последние отправленные правки. Очередь по своей природе пустеет, и без истории экран
после удачной синхронизации выглядел бы так же, как если бы работы не было вовсе.
Если коллега правил ту же запись
Пока Мария была в дороге, Аня в мастерской поправила ту же карточку. Когда очередь уедет, разные
поля объединятся сами — сумма Марии и комментарий Ани не затрут друг друга. Спор возникает только
там, где оба поменяли одно и то же поле, и тогда открывается ровно то же окно, что и при обычной
работе: ваша версия, версия коллеги, имя автора и время. Ничего не выбирается за вас молча.
Почему повторная отправка не создаёт вторую запись
Это самое неприятное, что может случиться с отложенной работой, поэтому объясним подробно.
Связь возвращается, очередь отправляет вашу новую запись — и обрыв случается ровно на обратном пути:
сервер запись уже создал, а ответ до телефона не дошёл. Телефон видит «отправка не удалась» и,
естественно, пробует ещё раз. Раньше в этом месте в разделе появлялись две одинаковые карточки.
Теперь не появятся. Каждое отложенное создание кабинет подписывает именем, которое не меняется между
попытками, а сервер это имя помнит. Пришёл повтор под тем же именем — сервер не создаёт вторую
карточку, а возвращает тот же ответ, что отправлял в первый раз. Для вас это выглядит просто как
удачная отправка.
Две честные оговорки, которые стоит знать.
- Сервер помнит отправку сутки. Если устройство пролежало в офлайне дольше суток и попало ровно
в этот редкий случай (запись принята, ответ не дошёл), повтор снова может дать вторую карточку.
Обещать «никогда» мы не имеем права.
- Если вы дописали поле в ещё не уехавшую запись, а первая отправка уже успела дойти до сервера,
кабинет не станет молча подменять одно другим. Такая отправка попадёт в «Отклонённые» с
объяснением: запись на сервере уже есть, второй такой же не появится — откройте её и внесите
недостающее. Ваш текст при этом никуда не девается: он остаётся на экране «Синхронизация», и его
видно.
И отдельно: защита от дубля включается только у отложенной отправки. Двойной клик по «Сохранить»
на живой связи — это другая история, и от неё бережёт сама форма (кнопка блокируется на время
сохранения).
Поставьте кабинет на телефон
Всё описанное работает и в обычном браузере, но на телефоне кабинет лучше поставить как приложение —
свой значок на экране, полный экран без адресной строки и, главное, надёжное хранение сохранённых
данных и очереди. На Android кнопка установки появляется сама. На iPhone установка ручная:
«Поделиться» → «На экран „Домой“» — кабинет подскажет это на месте.
Это не реклама значка. На iPhone браузер стирает данные сайтов, в которые не заходили около недели, —
вместе с несинхронизированной очередью. Установленное приложение под это правило не попадает.
Честные границы
- Кабинет, закрытый или перезагруженный без сети, заново не откроется. Подтвердить, что вы вошли,
может только сервер, а хранить этот ответ на устройстве мы отказались намеренно: вместе с ним на
общем планшете осели бы ваши права и ваша почта. Поэтому холодный запуск без интернета показывает
честный экран «Нет связи — кабинет не открыть» с кнопкой «Проверить связь». Очередь правок при этом
цела, и кабинет откроется сам, как только связь вернётся.
- Открывается ровно то, копия чего лежит на устройстве. Раздел, куда вы не заходили с этого
устройства при живом интернете, без сети не появится.
- Сохранённые данные живут неделю, и неделя своя у каждого экрана. Раздел, который вы не открывали
восемь дней, без сети уже не откроется, даже если вчера вы работали в соседнем.
- Фильтр, сортировка и переключение месяца внутри открытого раздела меняют экран, но новых данных
под них не берут. Отбор применится и останется в адресе, а вот записи под новый набор сервер
посчитать не сможет: если именно такой список вы со связью ещё не открывали, вместо строк будет
честное «данных этого экрана в сохранённой копии нет». Вернитесь к прежнему отбору — список снова
на экране.
- Удалить существующую запись или строку заказа без связи нельзя. Удаление ведёт себя как обычно —
попросит сеть: у него другая цена ошибки и свой путь назад через корзину. А вот отменить
собственный черновик, который ещё не уехал, можно всегда — в том числе строку, только что вписанную
руками.
- Товар из прайса без связи не выбрать — только вписать руками. Прайс кабинет ищет на сервере в
момент, когда вы набираете название.
- Файлы и вложения, документы, сообщения чата, письма, звонки и оплаты — только со связью. В
очередь уходят правки данных, а не всё подряд: молча «отложить» отправку письма клиенту хуже, чем
честно сказать, что сейчас это не сработает.
- Правила и автоматизации офлайн не считаются. Уведомления, итоги, подстановки и расчётные поля
досчитываются на сервере после отправки; до этого момента расчётные значения показывают прежние
числа.
- Поиск, отчёты и дашборды считает сервер — без связи они недоступны, даже если исходные записи
лежат в памяти устройства.
- Новая запись встаёт первой в списке и не встраивается в вашу сортировку: правильное место строки
знает только сервер, а показать её сверху честнее, чем спрятать.
- Адрес открытой карточки не меняется после синхронизации. Данные верны и следующая правка уйдёт
правильно, но ссылка в адресной строке останется временной — до перехода в раздел.
- В режиме инкогнито очередь может не пережить закрытие вкладки. Часть браузеров там запрещает
приложениям хранить данные, и тогда откладывать правки просто негде.
Что дальше
Как экран догоняет работу команды, когда связь есть, — обзор кабинета;
что показывает сотруднику его рабочий список, — «Мои дела»; как устроена карточка
записи, которую вы правите в поле, — карточка записи.