Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1.1. Необходимо минимизировать объем кода, который выполняется на стороне клиентского приложения. В частности не следует выполнять на клиенте сложные алгоритмы, требующие значительных ресурсов компьютера. В таких случаях выполнение алгоритма на клиенте может занимать гораздо больше времени, чем передача управления с клиента на сервер, выполнение алгоритма на сервере и возврат результата обратно на клиент.
Следует размещать такие алгоритмы в серверном коде, выполняя к ним минимально необходимое число обращений с клиента.
См. также: Минимизация количества серверных вызовов
Это требование продиктовано тем, что
1.2. Рекомендуется оставлять на клиенте такие алгоритмы, скорость работы которых заведомо быстрее, чем затраты, необходимые на вызов одной серверной функции. Например, перерасчет доступности элементов управления в форме при изменении пользователем данных выполняется на клиенте, т.к. контекстный серверный вызов для сложной формы может сделать работу пользователя в этой форме неприемлемой.
2.1. Исключение из этого правила составляют отдельные случаи, когда функциональная подсистема предназначена для работы с программным обеспечением, установленным на клиентском компьютере. Например, работа с торговым оборудованием, интеграция с клиент-банком, формирование печатных форм в офисные программы и т.п.
2.2. В тех случаях когда функциональная подсистема предназначена для работы с клиентским программным обеспечением только в определенных режимах работы клиента, следует использовать директивы препроцессора. Например, для кода, недоступного в веб-клиенте:
#Если ВебКлиент Тогда
Предупреждение(НСтр("ru = 'Загрузка адресного классификатора не доступна в веб-клиенте.'"));
#Иначе
ОткрытьФорму("РегистрСведений.АдресныйКлассификатор.Форма.ФормаЗагрузкиАдресногоКлассификатора");
#КонецЕсли