Как выполнить код в 1С на клиенте или на сервере
Трехзвенная архитектура платформы 1С
В платформе 1С начиная с появления управляемых форм используется полноценная трехзвенная архитектура: клиент, сервер, СУБД. Часто можно управлять тем, где именно будет выполнен код. Если не требуются данные из базы данных, если вся нужная информация уже есть на контексте клиента, то есть смысл несложные вычисления выполнять сразу на клиенте. Так вы сэкономите серверный вызов. Приложение будет работать быстрее.
Директивы компиляции в 1С
Существует четыре директивы компиляции в 1С. Это специальные указания в коде, с их помощью компилятор "понимает", где именно нужно выполнить код.

Директивы могут быть следующие:
- &НаКлиенте
- &НаСервере
- &НаСервереБезКонтекста
- &НаКлиентеНаСервереБезКонтекста
Указание "БезКонтекста" означает, что при выполнении кода не будет доступа к контексту текущей формы. Благодаря этому не передаются между клиентом и сервером лишние данные и выполнение алгоритмов ускоряется.
Важные ограничения
Нельзя с сервера обратиться к клиенту. Необходимо или вернуть данные как возвращаемое значение, если код выполняется на сервере. Или записать на сервере в базу данных или во временное хранилище. И потом прочитать уже из клиентского сеанса.
Выполнение кода внутри процедур
Внутри кода процедур (тех, которые находятся, например, в общем модуле и доступны и с клиента и с сервера) можно дополнительно указать, какой код выполнять на клиенте, а какой на сервере.
#Если <Логическое выражение> Тогда
#ИначеЕсли <Логическое выражение> Тогда
...
#Иначе
#КонецЕсли
Доступные термы для логических выражений:
- Клиент (Client)
- МобильноеПриложениеКлиент (MobileAppClient)
- МобильноеПриложениеСервер (MobileAppServer)
- ТолстыйКлиентОбычноеПриложение (ThickClientOrdinaryApplication)
- ТолстыйКлиентУправляемоеПриложение (ThickClientManagedApplication)
- Сервер (Server)
- ВнешнееСоединение (ExternalConnection)
- ТонкийКлиент (ThinClient)
- ВебКлиент (WebClient)
- И (AND)
- ИЛИ (OR)
- НЕ (NOT)