Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:21

Заполнение поля справочника из подчиненного справочника

Автор Space_minus, 18 авг 2016, 07:26

0 Пользователей и 1 гость просматривают эту тему.

Space_minus

Всем привет! Необходимо мне заполнить поле(Наименование) справочника "Студенты" из подчиненного справочника "ФизЛицо" поле (Наименование)
В модуле формы справочника "Студенты" Написал код:

&НаСервере
Процедура ЗаполнитьФИОпоФизЛицу()
Справочники = РеквизитФормыВЗначение("Объект");
Справочники.Студенты.Наименование = Справочники.ФизическиеЛица.Наименование;
ЗначениеВРеквизитФормы(Справочники, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура ПриИзмененииФизЛица(Элемент)
Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда
ЗаполнитьФИОпоФизЛицу();
Иначе
КонецЕсли;
КонецПроцедуры


затем указал событие у поля

и вылазит ошибка:


Подскажите, как исправить проблему

SGIRG

У Вас же форма элемента справочника.
значит нужно делать вот так:
Наименование = Физлицо.Наименование;

Space_minus

Цитата: SGIRG от 18 авг 2016, 08:29
У Вас же форма элемента справочника.
значит нужно делать вот так:
Наименование = Физлицо.Наименование;

не определяется:
{Справочник.Студенты.Форма.ФормаЭлемента.Форма(251,17)}: Переменная не определена (ФизЛицо)

SGIRG

Ну у Вас элемент формы называется "Физлицо". На картинке не видно откуда в него данные попадают

cska-fanat-kz

нечего мудрить там где не надо :thwrt:
получать объект сервера...

Цитата: Space_minus от 18 авг 2016, 07:26Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда
        ЗаполнитьФИОпоФизЛицу();   
    Иначе
    КонецЕсли;

когда достаточно

Если ЗначениеЗаполнено(Объект.ФизЛицо) Тогда
        Объект.Наименование = ЗаполнитьФИОпоФизЛицу(Объект.ФизЛицо);   
    Иначе
    КонецЕсли;

...
Функция ЗаполнитьФИОпоФизЛицу(ФизЛицо)
    Возврат ФизЛицо.Наименование;
КонецФункции;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ilnur75

все проще, например прописать
&НаКлиенте
Процедура ПрописатьФИО()
   Объект.Наименование = ?(ПустаяСтрока(Объект.ФизЛицо), "", СокрЛП(Объект.ФизЛицо) ) ;
КонецПроцедуры

&НаКлиенте
Процедура ФизЛицоПриИзменении(Элемент)
   ПрописатьФИО();
КонецПроцедуры

Space_minus

Всем плюсик за помощь :)
&НаКлиенте
Процедура ФизЛицоПриИзменении(Элемент)
Если НЕ Объект.ФизЛицо.Пустая() Тогда
Объект.Наименование = Объект.ФизЛицо;
КонецЕсли;
КонецПроцедуры


норм заработало

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск