Выбор ответа Middle Клиент, сервер и контекст обновлено
Ошибка в серверной процедуре
Вопрос
Почему этот код не скомпилируется?
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
ИНН = ПолучитьИНН();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьИНН()
Возврат Объект.Контрагент.ИНН;
КонецФункции
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В процедуре без контекста нет доступа к реквизиту Объект. В &НаСервереБезКонтекста нет контекста формы, поэтому обращение к Объект.Контрагент ошибочно.
Варианты ответа
- Нельзя вызывать серверную процедуру из клиентской процедуры формы
- Функция без контекста не может возвращать значение на клиент
- В процедуре без контекста нет доступа к реквизиту Объектправильный ответ
- Объект Запрос недоступен на сервере в модуле формы
Разбор
В &НаСервереБезКонтекста нет контекста формы, поэтому обращение к Объект.Контрагент ошибочно. Нужно передать контрагента параметром: ПолучитьИНН(Объект.Контрагент). Клиент может вызывать серверные процедуры, функции без контекста возвращают значения, а Запрос как раз серверный объект.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.