При открытии (событие может быть ПередОткрытием и ПриОткрытии) любой обычной формы происходит его настройка в соответствии с теми или иными условиями. Фактически происходит полное редактирование свойств самой формы и всех элементов. Для этого в указанных событиях вызывается процедура. Т.к. клиентские машины слабые, то обработка происходит достаточно долго и формы открываются с зависанием. Можно ли перенести изменение свойств обычной формы и всех элементов, хотя бы частично, на сервер? Проблема в том, что сама форма не сериализуемая и есть элементы которые тоже не передаются на сервер, например, отбор. Есть варианты переноса обработки на сервер или же выход в увеличении мощности клиента и оптимизации кода обработки на клиенте?
---
частичный перевод на УФ в данном случае не поможет. Эффект будет только в тонком клиенте, а он не работает с ОФ.
А в толстом клиенте даже УФ выполняются полностью на клиенте.

Смотря что за затратные операции. Если это получение данных, или другие не связанные с формой действия, то их можно перенести на выполнение в общий серверный модуль, через промежуточный общий модуль с вызовом сервера.
Схема следующая:
ПередОткрытием - ОщийМодульВызовСервера - ОбщийМодульСервер.
Но это будет заметно, если таких переходов будет минимум. Т.е. желательно все действия выполнять за один вызов.

Но опять же, все зависит от операций, которые необходимо делать.
---
выход я вижу в переходе на управляемые формы.
В обычных формах нет разделения на клиент и сервер, там нет директив где и что выполнять, обычные формы это работа под толстым клиентом.
Вы не совсем до конца понимаете события и процесс открытия обычной формы, мне так кажется.
---
Переписывать все на УФ никто не будет. Переход будет постепенный. А редактировать формы надо сейчас. Как вариант, выполнять не имеющие прямого обращения к форме и затратные по времени операции в общем модуле на сервере.

По поводу управляемых форм тоже не совсем понятно. Получить форму на сервере нельзя, передать тоже, какие-то изменения свойств требует обращения на сервер. Но сформировать/отредактировать управляемую форму на сервере так, чтобы на клиенте только результат (т.е. саму форму) показать не получится? Как правильно редактировать управляемые формы тогда, подскажите, пожалуйста?
---
частичный перевод на УФ в данном случае не поможет. Эффект будет только в тонком клиенте, а он не работает с ОФ.
А в толстом клиенте даже УФ выполняются полностью на клиенте.

Смотря что за затратные операции. Если это получение данных, или другие не связанные с формой действия, то их можно перенести на выполнение в общий серверный модуль, через промежуточный общий модуль с вызовом сервера.
Схема следующая:
ПередОткрытием - ОщийМодульВызовСервера - ОбщийМодульСервер.
Но это будет заметно, если таких переходов будет минимум. Т.е. желательно все действия выполнять за один вызов.

Но опять же, все зависит от операций, которые необходимо делать.
---
так и придется видимо делать. Я так понимаю если переходить на управляемое приложение то и там нельзя на сервере форму редактировать? Если форму полностью рисовать программно, то это тоже только на клиенте будет возможно?
---
на УФ существует два разных контекста формы. Серверный и клиентский. Сначала форма строится на сервере. Создание формы УФ это декларативный принцип. После создания серверного контекста формы выполняется серверная процедура модуля формы ПриСозданииНаСервере. В ней можно внести коррективы в созданную форму, в том числе перестроить программно.
Затем серверный контекст формы сериализуется и передается на клиента. Где строится клиентский контекст формы, который заполняется полученными данными с сервера. Серверный контекст формы в этот момент удаляется.
В последующем, при каждом серверном вызове в модуле формы с клиента, происходит сериализация клиентского контекста формы и создание серверного контекста формы, с последующем заполнением полученных данных. Поэтому и не рекомендуются частые контекстные серверные вызовы.

Все это работает полноценно на тонком клиенте. В толстом клиенте последовательность в основном та жа, но все выполняется на клиенте.
---
серверный контекст не удаляется. удаляется из памяти объект, тот который ПриЧтенииНаСервере(ТекущийОбъект)
---
да, согласен. Сам контекст не удаляется.
---
А в толстом клиенте даже УФ выполняются полностью на клиенте.
Отладчик с вами не согласен. Всё там нормально на сервере выполняется.
---
хотите сказать, что процедура ПриСозданииНаСервере в Толстом клиенте УФ выполняются таки на сервере?
Можете привезти доказательства?
---
вот вам для размышления. Код модуля формы справочника:

```1c
    #Если ТолстыйКлиентУправляемоеПриложение Тогда

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОбщийМодульКлиент.КлиенскаяПроцедура();
    КонецПроцедуры

    #КонецЕсли
```

ОбщийМодульКлиент это общий модуль с флагом Клиент (управляемое приложение).
И этот код работает. Ответите, почему он работает?
---
Тык ведь у вопрошающего не управляемое приложение а обычное, с обычными формами.
---
а ответ в (13) был дан для (11). Что и где выполняется для УФ толстый клиент.
---
да, конечно. Правда могу предположить что произошла подмена понятий, толстым клиентом обозвали обычное приложение. Хотя я могу и ошибаться.
---
Мы сейчас про клиент-серверную базу говорим? На файловой могут быть различия.

В защиту моей версии: при замере производительности указывает явное разделение на клиент и сервер; при отключении серверного предмета отладки и при оставлении предмета отладки толстого клиента остановки на серверных модулях УФ не происходит.

Проверил ваш код

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    #Если ТолстыйКлиентУправляемоеПриложение Тогда
    Сообщить("плплп");
    #КонецЕсли
```
 не выполняется он на клиент-сервере.
---
что-то упустил этот момент. Согласен, что на клиент-серверной базе это так.
На файловой все выполняется на клиенте.
---
:) боюсь спросить, а что выполняется на сервере в файловой базе?
---
в тонком клиенте (файловый вариант) сервер эмулируется. И выполнение по директивам отрабатывает. И тут два варианта:
1. Прямое подключение к файлу базы тонким клиентом. Сервер эмулируется на клиенте. Просто разделение кода в рамках одной программы на одном компьютере.
2. Подключение тонким клиентом через web-сервер. Сервер эмулируется на web-сервере. Разделение кода похожее на настоящий клиент-сервер, хоть и несколько упрощенное.
---
садитесь, пять
---
эк вы ее лихо так. Форма на сервере бесполезная сущность - это сущность для отражения представлений базы на клиенте. Уф вообще может не создаваться, ее создаст система при открытии списка или элемента или документа. Как правильно их редактировать - а зачем их редактировать? Форму надо создать и использовать для управления элементами в базе. Как то так, наверно.
---
а зачем их редактировать? было решено реализовать "Вариант запуска" и что-то вроде "ограничение доступа" помимо ролей. Поэтому перед тем как пользователь откроет форму ее полностью редактируем: видимость, доступность, толькопросмотр, отбор, сортировка, настройки отбора и сортировки и т.д.
---
Спасибо всем за подробное описание! Стало понятнее что и как происходит. С УФ надо на практике разбираться и смотреть от конкретных параметров, которые нужно будет редактировать. Полагаю, при возникновении проблем можно отдельную тему создать.
Благодарю за помощь!