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

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

Автор maxipunchik, 22 дек 2014, 20:04

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

maxipunchik

В общем то в названии и весь вопрос. Скажем у нас есть 2 справочника. В справочнике А указан нужный реквизит,который является строкой из 100 символов, в справочнике Б есть такой же реквизит, а так же реквизит, являющийся ссылкой на справочник А, нужно сделать так, чтобы при выборе нужного элемента в справочнике Б реквизит заполнился автоматически.

дфтын

Нужныйреквизит = реквизитСсылкойНаСправочникА.Реквизит;

cska-fanat-kz

Приложение - обычное или управляемое?
Во втором случае "реквизитСсылкойНаСправочникА.Реквизит" так просто не получишь, надо серверную функцию делать.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

maxipunchik


cska-fanat-kz

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

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

keramik

Привет, похожая ситуация.
Хочу передать значение поля "ТелНр" из справочника Контакты в документ "Заказ", основываясь на том, какой клиент выбран.

Пробовал так:

Процедура ПриДобавленииПерсоны
Объект.КонтактнаяПерсона = ПолучитьЗначениеПоля.ТелНр(Справочники.Контакты);
КонецПроцедуры

и там же, чуть ниже функция:
&НаСервереБезКонтекста
Функция ПолучитьЗначениеПоля.ТелНр(Контакты);
Возврат СсылкаНаСправочник.Контакты.ТелНр;
КонецФункции

Но это не работает, а как исправить пока не допёр.

cska-fanat-kz

жееееееееееееесть!

Цитата: keramik от 23 дек 2014, 11:55Функция ПолучитьЗначениеПоля.ТелНр(Контакты);
в имени функции не бывает точек! как и ";" в конце

Цитата: keramik от 23 дек 2014, 11:55Процедура ПриДобавленииПерсоны
1. где "()" в конце?
2. обработчик события обычно выглядит ИмяПоляПриИзменении(). мало того что вы создали процедуру, ее надо на вкладке "Диалог" указать как обработчик события (если уж вы пошли простите через ж...) у соответствующего поля.

Цитата: keramik от 23 дек 2014, 11:55Объект.КонтактнаяПерсона = ПолучитьЗначениеПоля.ТелНр(Справочники.Контакты);

Что еще за параметр "Справочники.Контакты"? Видимо все таки "ОБЪЕКТ.Контакт", где "Контакт" - реквизит документа или справочника про форму которого идет речь.

Цитата: keramik от 23 дек 2014, 11:55Возврат СсылкаНаСправочник.Контакты.ТелНр;

Что еще за "СсылкаНаСправочник"? Параметр функции у вас называется "Контакты", от нее и получаете значение свойства "ТекНр", т.е. всего лишь
Возврат Контакты.ТелНр;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

maxipunchik

Цитата: cska-fanat-kz от 23 дек 2014, 09:39
Процедура ПолеСправочникаАПриИзменении()
Объект.РеквизитСправочникаБ = ПолучитьЗначениеРеквизитаСправочникаАНаСервере(Объект.СсылкаНаСправочникА);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЗначениеРеквизитаСправочникаАНаСервере(СсылкаНаСправочникА);
Возврат СсылкаНаСправочникА.РеквизитСправочникаА;
КонецФункции
С пятисотой попытки, но для меня все же дошло как это сделать, спасибо большое за помощь)

keramik


keramik

Привет.
Решил для начала вывести значение поля "Должность" в отдельную строку на форме. Переписал код следующим образом:
1. В модуле формы элемента добавил процедуру:
Процедура КонтактнаяПерсонаПриИзменении()
Объект.РеквизитСправочникаКонтактнаяПерсона = ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере(Объект.КонтактныеЛицаКонтрагентов);
КонецПроцедуры

2. В модуле этой же формы под процедурой добавил функцию:
&НаСервереБезКонтекста
Функция ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере(КонтактныеЛицаКонтрагентов)
Возврат КонтактныеЛицаКонтрагентов.Должность;
КонецФункции

3. Добавил в свойство поля "ПриИзменении" процедуру КонтактнаяПерсонаПриИзменении

Но когда запускаю форму, то вылетают ошибки:
1. Variable is not defined (Объект), указываются оба упоминания "Объект" в теле процедуры.
2. Procedure or function with specified name is not defined (ПолучитьЗначениеРеквизитаСправочникаКонтактныеЛицаКонтрагентовНаСервере), сылаясь на код в теле процедуры.
3. В конце строк с описанием ошибки фраза Verification: Thick client (ordinary aplication).

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

Рейтинг@Mail.ru

Поиск