Серфил тут по одной конфигурации и наткнулся на интересный подход, которого раньше не встречал: проведение документа из формы запускается как длительная операция.
⏱️ В чём проблема?
Полагаю, все знают, что документ, который проводится 20 секунд и дольше, — не самый удачный сценарий.
Особенно в веб-клиенте, где требования к времени отклика выше, чем в тонком клиенте. Если серверный вызов выполняется слишком долго, соединение клиента с информационной базой может быть разорвано.
В рекомендациях 1С приводятся примерно такие значения:
• около 20 секунд — для большинства браузеров и веб-серверов;
• около 8 секунд — для некоторых браузеров.
Поэтому серверные вызовы, которые могут выполняться дольше 8 секунд, рекомендуется запускать асинхронно — через фоновое задание.
А для конфигураций, работающих в модели сервиса через веб-клиент, требования ещё строже: отклик должен укладываться примерно в 2–3 секунды.
⚙️ И вот как это решили в конфигурации
В форме документа стандартное проведение заменили запуском длительной операции.
Документ проводится в фоне, а после завершения операции форма получает результат и обновляется.
🛠 Получается примерно такая схема:
1️⃣ Переопределяем стандартные команды формы:
Записать, Провести и Провести и закрыть.2️⃣ При выполнении команд
Провести или Провести и закрыть сериализуем объект документа в двоичные данные и помещаем их во временное хранилище.3️⃣ Передаём адрес временного хранилища в фоновое задание. Там восстанавливаем объект из двоичных данных и проводим его.
4️⃣ После завершения фонового задания возвращаем результат на клиент и при необходимости обновляем или закрываем форму.
✅ Что получаем в итоге?
Пользователь не смотрит на зависший экран и может заняться чем-то ещё, пока документ проводится.
⚠️ Конечно, есть нюансы: нужно обработать ошибки проведения, защититься от повторного нажатия команды и правильно обновить состояние формы после завершения операции.
Сам документ от этого быстрее проводиться не станет. Но для пользователя, особенно в веб-клиенте, работа будет выглядеть гораздо приятнее.
До этого фоновые операции я обычно встречал в обработках и отчётах, при заполнении табличных частей, а вот проведение документа в фоне из формы увидел впервые.
А вы встречали такой подход?




