Добрый день.
Опять не приложили фрагмент кода, где возникает ошибка. Поэтому я попробую предположить, почеиму возникает ошибка.
Как я писал выше, ошибка может возникать если мы на сервере вызываем интерактивные процедуры. Например, если на сервере мы вызываем процедуру "ПолучитьФорму".
Пример
Код |
---|
&НаКлиенте
Процедура СотрудникФизЛицоПриИзменении(Элемент)
СотрудникФизЛицоПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура СотрудникФизЛицоПриИзмененииНаСервере()
Если ТипСотрудника = Перечисления.ТипыСовместителей.Сотрудник Тогда
Форма=ПолучитьФорму("Справочник.Сотрудники.ФормаВыбора",ЭтаФорма);
Форма.Открыть();
Иначе
Форма=ПолучитьФорму("Справочник.ФизическиеЛица.ФормаВыбора",ЭтаФорма);
Форма.Открыть();
КонецЕсли;
КонецПроцедуры |
Процедура "ПолучитьФорму" мы можем вызывать только на клиенте, потому что интерактивные операции на сервере не доступны. Поэтому процедуру "ПолучитьФорму" надо перенести в процедуру вызываемую на клиенте.
Почему это работает в толстом клиенте?
Толстый клиент это наследие предыдущих версий платформ 7.7, 8.0, 8.1, 8.2, тогда не было разделение на клиентский и серверный код, все процедуры формы выполнялись на клиентской машине. Поэтому, если в толстом клиенте на сервере мы выполним код:
Код |
---|
#Если НаСервере Тогда
Сообщить("НаСервере");
#КонецЕсли
#Если Сервер Тогда
Сообщить("Сервер");
#КонецЕсли
#Если НаКлиенте Тогда
Сообщить("НаКлиенте");
#КонецЕсли
#Если Клиент Тогда
Сообщить("Клиент");
#КонецЕсли |
То получим
Код |
---|
НаСервере
Сервер
Клиент |
Что означает, что в толстом клиенте на сервере доступны оба контекста.