Автор: ktu78 27.04.15, 12:16
Добрый день, коллеги. Версия 1с 8.3
Проблема: в документе у меня 2 реквизита:
КонтрагентВалюты и НомерПаспорта
КонтрагентВалюты - ссылочный тип на Справочник "КонтрагентыВалюты"
НомерПаспорта - строка 10 знаков.
В справочнике "КонтрагентыВалюты" также есть реквизит НомерПаспорта, строка 10 симв.
Я хочу, чтобы в форме документа после того, как выберу контрагента, в поле документа "НомерПаспорта" автоматически появился номер паспорта, взятый со справочника "КонтрагентыВалюты" для конкретного человека
В модуле формы таков код:
&НаКлиенте
Процедура ПродавецВалютыПриИзменении(Элемент)
НомерПаспорта=ПолучиНомерПаспорта(Элементы.ПродавецВалюты);
КонецПроцедуры
&НаСервере
Функция ПолучиНомерПаспорта(СсылкаНаПродавцаВалюты)
ПродавецВалютыКакОбъект=СсылкаНаПродавцаВалюты.ПолучитьОбъект();
Возврат ПродавецВалютыКакОбъект.НомерПаспорта;
КонецФункции
При запуске 1с в пользовательском режиме когда я вставляю Контрагента
выдается сообщение:
Ошибка отображения типа. Отсутствует отображение для типа "Поле формы"
Когда я подробней просмотрел ошибку, то выдано следующее:
{Документ.ПокупкаВалюты.Форма.ФормаДокумента.Форма(34)}: Ошибка при вызове метода контекста (ПолучиНомерПаспорта)
НомерПаспорта=ПолучиНомерПаспорта(Элементы.ПродавецВалюты);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ПолеФормы'
Подскажите пожалуйста, помогите. Заранее благодарен. Удачного дня!
Автор: logist 27.04.15, 12:23
Цитата(ktu78 @ 27.04.15, 13:16)
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
А что тут непонятного? Вы пытаетесь передать с сервера на клиент, то, что не передается.
ПолучитьОбъект используется в том случае, когда надо изменять данные объекта, в Вашем случае достаточно получить значение реквизита из ссылки.
Автор: ktu78 27.04.15, 12:51
Цитата(logist @ 27.04.15, 13:23)
А что тут непонятного? Вы пытаетесь передать с сервера на клиент, то, что не передается.
ПолучитьОбъект используется в том случае, когда надо изменять данные объекта, в Вашем случае достаточно получить значение реквизита из ссылки.
если можно, подбросьте фрагмент кода, методы, свойства. Заранее благодарен
Автор: logist 27.04.15, 12:57
&НаСервере
Функция ПолучиНомерПаспорта(СсылкаНаПродавцаВалюты)
Возврат СсылкаНаПродавцаВалюты.НомерПаспорта;
КонецФункции
Автор: ktu78 27.04.15, 13:56
Цитата(logist @ 27.04.15, 13:57)
&НаСервере
Функция ПолучиНомерПаспорта(СсылкаНаПродавцаВалюты)
Возврат СсылкаНаПродавцаВалюты.НомерПаспорта;
КонецФункции
Большое спасибо. Пробовал. Но отладчик выдает, что "Элементы.ПродавецВалюты" типа ПолеВвода и в конце всего выдается ошибка.
Можно ли как-то совместить типы данных в мое случае
Автор: Petre 27.04.15, 14:01
&НаКлиенте
Процедура ПродавецВалютыПриИзменении(Элемент)
ПолучиНомерПаспорта();
КонецПроцедуры
&НаСервере
Функция ПолучиНомерПаспорта()
Объект.НомерПаспорта = Объект.ПродавецВалюты.НомерПаспорта;
КонецФункции