1С:Предприятие 8.2 /
Разработчикам /
Платформа, механизмы и технологии
Особенности работы формы с данными
Любая управляемая форма предназначена для отображения и изменения некоторых данных. Такие данные, как правило, хранятся в реквизитах формы. Совокупность этих данных (значения реквизитов формы) называется данными формы.
Т.к. данные формы доступны и на клиенте и на сервере, то основным хранилищем всех данных выступает сервер, просто потому что взаимодействие клиента и сервера инициируется только с клиента. Это означает, что в момент работы в памяти сервера находятся все данные формы, и доступ к ним осуществляется напрямую. На клиенте же имеется в общем случае частичное представление этих данных, при необходимости подгружаемое с сервера. При дальнейшей работе с формой изменения данных могут передаваться туда и/или обратно для синхронизации состояний клиента и сервера.
Данный подход накладывает определенный отпечаток на методику работы с данными формы. Рассмотрим основные сценарии работы с формой:
- Открытие формы .
- Редактирование формы.
- Закрытие формы.
Открытие формы
При открытии формы, на клиенте в памяти доступны следующие данные:
- Значения реквизитов, кроме табличных частей, табличных документов и динамических списков.
- Некоторая часть данных табличных частей, динамических списков и табличных документов, предназначенная для отображения.
Т.е. если у вас есть реквизит, в котором, например, хранится список значений, то этот список целиком будет передан на клиента при открытии формы. Для табличных частей, алгоритм работы платформы другой – изначально передается только часть строк. Далее, при обращении к остальным строкам табличных частей, они будут постепенно подчитываться с сервера. Это значит, что при открытии формы все подготовительные действия с табличными частями желательно производить на сервере. Если же аналогичные действия мы попытаемся выполнить на клиенте, то это приведет к тому, что все данные табличной части будут переданы на клиента, хотя они не требуются для отображения в форме.
Редактирование формы
Если в процессе работы с формой на сервере требуется выполнить некоторый код, использующий данные формы, то при получении управления сервером на нем должны быть те же данные что и на клиенте. Для реализации этого используется контекстный вызов процедуры или функции, при котором платформа делает обмен изменениями данных формы с момента предыдущей синхронизации. Т.е. на сервер будут переданы не все данные с клиента, а только изменившаяся часть. Аналогично, после завершения работы контекстного метода на сервере, изменившиеся данные на сервере могут быть переданы на клиента, если это необходимо для отображения в форме. Помимо контекстных вызовов есть также встроенные методы табличной части, такие как Сортировать и НайтиСтроки, которые также могут приводить к серверному вызову с посылкой изменений, но уже конкретной табличной части.
Закрытие формы
При записи и закрытии формы, происходит серверный вызов, аналогичный контекстному вызову. Изменения данных формы после последней синхронизации отправляются на сервер. На сервере же, происходит конвертация этих данных в объект информационной базы с последующей его записью. Чтобы не делать лишних действий с базой данных, платформа пытается оптимизировать запись данных объекта в базу данных, в случае если мы редактировали уже созданный ранее объект информационной базы. Это касается только табличных частей, и их запись в базу происходит по следующим правилам:
- Если были только добавления новых строк в конец табличной части, то записываться в базу данных будет только эти новые добавленные строки.
- Если были перемещения, удаления или добавления строк в середине табличной части, то она перезаписывается полностью.
Тренинг-семинар «Как получить работу бухгалтера»
Курсы бухгалтеров с трудоустройством
Курсы программирования 1С:Предприятие 8.2
Другие материалы по теме:
сценарии, платформа, закрытие, процедуры, представление, сервер, редактирование, функции, алгоритм, клиент, строки, действия..., выполнить, основные, список, например, формы, значения, объект, изменения, конфигурирование, реквизит, работы, пример, данные, документов, действия
Материалы из раздела: 1С:Предприятие 8.2 / Разработчикам / Платформа, механизмы и технологии
Другие материалы по теме:
Особенности нетранзакционного чтения данных
Рекомендации по эффективным приемам работы в конфигураторе
Общесистемные механизмы и принципы
Нас находят: ow ly
Мы на Facebook