Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Второй вариант решения
Дальше: Использование временного хранилища для передачи данных между формами

Резюме

Запись объектов конфигурации в информационную базу должна производиться не когда придется, а в нужный момент, и не должна понижать эффективность прикладного решения.

Действия, логически объединенные в одну транзакцию (например, запись реквизитов объекта), нужно выполнять в одном серверном вызове. Это обеспечит согласованность данных объекта и избавит от лишних вызовов сервера.

При выборе картинки объекта, пока объект не записан пользователем, загруженные картинки должны быть во временном хранилище. Как только объект записывается, нужно переносить картинки из временного хранилища в реквизит и записывать синхронно с объектом (в одной транзакции) .

Что плохого, если записывать картинку в базу сразу после ее выбора? При этом будут произведены лишние вызовы сервера, ведь нет уверенности, что именно эта картинка и окажется в объекте в результате действий пользователя. Пользователь может вообще отказаться от записи объекта в базу данных. Также тут есть вопрос согласованности данных. Картинку записали, а объект – «не смогли». В результате данные могут быть несогласованными. То есть такие изменения должны выполняться в одной транзакции, за один серверный вызов.

Поэтому не нужно записывать картинку в базу данных сразу при ее выборе, а делать это нужно непосредственно перед записью самого объекта в базу данных.

Таким образом, из показанных вариантов решения задачи более эффективным будет второй – за счет записи картинки объекта синхронно с самим объектом в одной транзакции за один серверный вызов.

Назад: Второй вариант решения
Дальше: Использование временного хранилища для передачи данных между формами