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

Автоматическое заполнение поля реквизитом справочника

Автор LaMira, 03 окт 2019, 05:39

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

LaMira

Добрый день, помогите решить задачу
есть 2 поля: ФИО и дата рождения. ФИО заполняется по справочнику физические лица (СправочникСсылка. Физические лица) и очень хочется, чтобы дата рождения данного лица заполнялась автоматически.
На данный момент в модуле прописала такой код:

&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Объект.ДатаРождения.Ссылка = ПолучитьДатаРождения(Объект.Наименование);
КонецПроцедуры

&НаСервере
Функция ПолучитьДатаРождения(ФизическоеЛицо)
Возврат ФизическоеЛицо.ДатаРождения;
КонецФункции


ошибок нет, но поле не заполняется

alexandr_ll

Цитата: LaMira от 03 окт 2019, 05:39
Добрый день, помогите решить задачу
есть 2 поля: ФИО и дата рождения. ФИО заполняется по справочнику физические лица (СправочникСсылка. Физические лица) и очень хочется, чтобы дата рождения данного лица заполнялась автоматически.
На данный момент в модуле прописала такой код:

&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Объект.ДатаРождения.Ссылка = ПолучитьДатаРождения(Объект.Наименование);
КонецПроцедуры

&НаСервере
Функция ПолучитьДатаРождения(ФизическоеЛицо)
Возврат ФизическоеЛицо.ДатаРождения;
КонецФункции


ошибок нет, но поле не заполняется
Что означает "Объект.ДатаРождения.Ссылка" ? Разве дата рождения имеет ссылочный тип?
ФИО=Наименование=ФизическоеЛицо.Ссылка? Функция возвращает значение?

LaMira

ЦитироватьЧто означает "Объект.ДатаРождения.Ссылка" ? Разве дата рождения имеет ссылочный тип?
я понимаю, что пишу не так, но не могу подобрать верный вариант. Отталкивалась от того, что надо сослаться на реквизит ДатаРождения из справочника ФизическиеЛица.


alexandr_ll

Цитата: LaMira от 03 окт 2019, 09:03
ЦитироватьЧто означает "Объект.ДатаРождения.Ссылка" ? Разве дата рождения имеет ссылочный тип?
я понимаю, что пишу не так, но не могу подобрать верный вариант. Отталкивалась от того, что надо сослаться на реквизит ДатаРождения из справочника ФизическиеЛица.
Возможно так:
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Объект.ДатаРождения = ПолучитьДатаРождения(Объект.Наименование);
КонецПроцедуры

&НаСервере
Функция ПолучитьДатаРождения(ФизическоеЛицо)
Возврат ФизическоеЛицо.ДатаРождения;
КонецФункции

LaMira

модуль принимает, но видимого результата нет

alexandr_ll

Цитата: LaMira от 04 окт 2019, 05:31
модуль принимает, но видимого результата нет
Какие типы имеют реквизиты объекта "Наименование" и "ДатаРождения"? Что возвращает функция?

LaMira

спасибо за ответ, только что добралась до работы после простуды.
"Наименование" - это ФИО, видимо? Тогда тип СправочникСсылка.ФизическиеЛица
А у ДатаРождения тип пока что дата, хотя пробовала и СправочникСсылка, и просто поле

Возврата от функции пока что не вижу, либо не знаю где смотреть. Мое видение ситуации: в режиме отладки при заполнении поля ФИО данными справочника поле ДатаРождения должно заполниться нужной датой из того же справочника. Но этого не происходит

alexandr_ll

Цитата: LaMira от 07 окт 2019, 05:30
спасибо за ответ, только что добралась до работы после простуды.
"Наименование" - это ФИО, видимо? Тогда тип СправочникСсылка.ФизическиеЛица
А у ДатаРождения тип пока что дата, хотя пробовала и СправочникСсылка, и просто поле

Возврата от функции пока что не вижу, либо не знаю где смотреть. Мое видение ситуации: в режиме отладки при заполнении поля ФИО данными справочника поле ДатаРождения должно заполниться нужной датой из того же справочника. Но этого не происходит
У вас в процедуре "НаименованиеПриИзменении" указано "Объект.Наименование", а не "Объект.ФИО".
Посмотреть, что возвращает функция, можно отладчиком, либо просто сообщением.
Например:
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Объект.ДатаРождения = ПолучитьДатаРождения(Объект.ФИО);//здесь имя реквизита
КонецПроцедуры

&НаСервере
Функция ПолучитьДатаРождения(ФизическоеЛицо)
Сообщить(ФизическоеЛицо.ДатаРождения);// что возвращает функция
Возврат ФизическоеЛицо.ДатаРождения;
КонецФункции

LaMira

ЦитироватьУ вас в процедуре "НаименованиеПриИзменении" указано "Объект.Наименование", а не "Объект.ФИО".
да, только что поправила, сейчас вот так
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Объект.ДатаРождения = ПолучитьДатаРождения(Объект.ФизическоеЛицо, "Дата рождения");
КонецПроцедуры

&НаСервере
Функция ПолучитьДатаРождения(ФизическоеЛицо)
Возврат ФизическоеЛицо.ДатаРождения;
КонецФункции


выдает ошибку:
Справочник.НаправлениеНаМедосмотр.Форма.ФормаЭлемента.Форма(15,67)}: Слишком много фактических параметров (ПолучитьДатаРождения)
Объект.ДатаРождения = ПолучитьДатаРождения(Объект.ФизическоеЛицо, <<?>>"Дата рождения"); (Проверка: Тонкий клиент)

кажется, сейчас просиходит отбор ВСЕХ дат рождения из справочника, а не одной для конкретного лица

alexandr_ll

Цитата: LaMira от 07 окт 2019, 06:37
ЦитироватьУ вас в процедуре "НаименованиеПриИзменении" указано "Объект.Наименование", а не "Объект.ФИО".
да, только что поправила, сейчас вот так
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Объект.ДатаРождения = ПолучитьДатаРождения(Объект.ФизическоеЛицо, "Дата рождения");
КонецПроцедуры

&НаСервере
Функция ПолучитьДатаРождения(ФизическоеЛицо)
Возврат ФизическоеЛицо.ДатаРождения;
КонецФункции


выдает ошибку:
Справочник.НаправлениеНаМедосмотр.Форма.ФормаЭлемента.Форма(15,67)}: Слишком много фактических параметров (ПолучитьДатаРождения)
Объект.ДатаРождения = ПолучитьДатаРождения(Объект.ФизическоеЛицо, <<?>>"Дата рождения"); (Проверка: Тонкий клиент)

кажется, сейчас просиходит отбор ВСЕХ дат рождения из справочника, а не одной для конкретного лица
Какое все-таки имя реквизита обработки : Наименование, ФИО или Физическое лицо?
Зачем добавили параметр "Дата рождения"?
Что значит "кажется"? Что возвращает функция?

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

Рейтинг@Mail.ru

Поиск