TGViewer
1С и AI, полезные инструменты и сервисы, стандарты и паттерны 1С и AI, полезные инструменты и сервисы, стандарты и паттерны @usefultools1c · 2.25K subscribers
Post #221 1.19K

Forwarded from Прусаков Никита | Про 1С

🚀 Как провести документ и не «повесить» интерфейс

Серфил тут по одной конфигурации и наткнулся на интересный подход, которого раньше не встречал: проведение документа из формы запускается как длительная операция.

⏱️ В чём проблема?

Полагаю, все знают, что документ, который проводится 20 секунд и дольше, — не самый удачный сценарий.
Особенно в веб-клиенте, где требования к времени отклика выше, чем в тонком клиенте. Если серверный вызов выполняется слишком долго, соединение клиента с информационной базой может быть разорвано.

В рекомендациях 1С приводятся примерно такие значения:

• около 20 секунд — для большинства браузеров и веб-серверов;

• около 8 секунд — для некоторых браузеров.

Поэтому серверные вызовы, которые могут выполняться дольше 8 секунд, рекомендуется запускать асинхронно — через фоновое задание.

А для конфигураций, работающих в модели сервиса через веб-клиент, требования ещё строже: отклик должен укладываться примерно в 2–3 секунды.

⚙️ И вот как это решили в конфигурации

В форме документа стандартное проведение заменили запуском длительной операции.

Документ проводится в фоне, а после завершения операции форма получает результат и обновляется.

🛠 Получается примерно такая схема:

1️⃣ Переопределяем стандартные команды формы: Записать, Провести и Провести и закрыть.

2️⃣ При выполнении команд Провести или Провести и закрыть сериализуем объект документа в двоичные данные и помещаем их во временное хранилище.

3️⃣ Передаём адрес временного хранилища в фоновое задание. Там восстанавливаем объект из двоичных данных и проводим его.

4️⃣ После завершения фонового задания возвращаем результат на клиент и при необходимости обновляем или закрываем форму.

✅ Что получаем в итоге?

Пользователь не смотрит на зависший экран и может заняться чем-то ещё, пока документ проводится.

⚠️ Конечно, есть нюансы: нужно обработать ошибки проведения, защититься от повторного нажатия команды и правильно обновить состояние формы после завершения операции.

Сам документ от этого быстрее проводиться не станет. Но для пользователя, особенно в веб-клиенте, работа будет выглядеть гораздо приятнее.

До этого фоновые операции я обычно встречал в обработках и отчётах, при заполнении табличных частей, а вот проведение документа в фоне из формы увидел впервые.

А вы встречали такой подход?
  • 👍 6
More from @usefultools1c
  1. Sep 23, 2026📚 Программа A&PM EVENT 2026 готова! Можно открывать и выбирать, на что идти 12–14 ноября.…
  2. Sep 18, 2026Самодостаточность регистров 🟡 При проектировании структуры регистров придерживайтесь прав…
  3. Sep 11, 2026Post #229
  4. Sep 11, 2026🍁 Программа INFOSTART TECH EVENT 2026 полностью готова! Если вы работаете с 1С и хотите п…
  5. Sep 7, 2026Пока искал себе стажёров-программистов 1С, вспомнил, что у меня есть 2 бесплатных курса по…
  6. Aug 31, 2026Большой опрос сообщества 1С Ландшафт технологий 1С - карта инструментов, которыми пользует…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →