OnlyGoRush
@OnlyGoRush
Студент

Как в модуле формы обратиться к элементу расположенному внутри объекта?

Здравствуйте, у меня есть два справочника: ИнформацияОбУчениках и ИнформацияОРодителях. В справочнике ИнформацияОбУчениках есть сведения о каждом ученике, в том числе и адрес где он живет. В справочнике ИнформацияОРодителях имеются данные о ФИО родителей, их телефон, адрес и ФИО их ребенка.
А задача такая: чтобы в форме создания родителя при выборе для него ребенка и нажатия на кнопку "Копировать адрес", данные адреса проживания ребенка, которые для него уже заполнены, копировались бы в поле "Адрес" для родителя, ведь как правило все-таки родители и их дети живут по одному и тому же адресу.

Для реализации задачи создал форму
5c112ade24c2f875951399.png

И написал следующий код:
&НаКлиенте
Процедура КопироватьАдрес(Команда)
	Объект.Адрес = Объект.Ребенок.Адрес;
КонецПроцедуры

Однако такой код при нажатии на кнопку выдает ошибку Поле объекта не обнаружено (Адрес)

Чтобы решить эту проблему пробовал переписать код и попытаться получить данные адреса ребенка при помощи его УникальногоИндентификатора:
&НаКлиенте
Процедура КопироватьАдрес(Команда)
	Объект.Адрес = Объект.Ребенок.УникальныйИдентификатор();
КонецПроцедуры

В результате в Адрес родителя вписывается уникальный ИД выбранного ученика, но вот как все-таки с помощью него обратиться к Адресу выбранного ученика и вписать его в Адрес родителя до сих пор не понял. Прошу помощи!
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
На клиенте не работает возможность обращаться через точку к свойствам ссылочного типа. Т.е. вам не удастся на клиенте узнать значения свойств того объекта, на который ссылается Объект.Ребенок. Свойства самого Объект вы можете читать, потому-что он является структурой, а вот Ребенок - это уже ссылка на справочник. Вам в нужно для этого сделать серверный вызов. Самый простой способ:

&НаКлиенте
Процедура КопироватьАдрес(Команда)
  Объект.Адрес = УзнатьАдрес(Объект.Ребенок);
КонецПроцедуры

&НаСервере
Функция УзнатьАдрес(Ребенок)
  Возврат Ребенок.Адрес;
КонецФункции
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы