Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Справочник и Документы


Автор: Tamerlan777 31.1.2008, 09:50
Привет всем.
У меня такая проблемма.
У меня есть справочник- ФИО. И соответственно 3 поля в нем: Фамилия, Имя, Отчество.
Создаю документ допустим -ПринятиеНаРаботу.
В Форме этого документа создаю различные реквизиты, в том числе фамилия, имя, отчество и делаю ссылку на Справочник.ФИО.

Все ясно. !!

Вот, что у меня не получается. На форме этого документа соответственно поля. При нажатии на поле Фамилия, у меня открывается Справочник ФИО. И сдесь мне необходимо  достать именно только значение фамилии. Получается значение Наименование , но оно у меня пустое и его значение <>.
Как достать только одно значение поля справочника. Ну а потом соответственное по фамилии автоматически заполнялись бы в Форме документа поля Имя, Отчество.

Вот такая вот проблемка. Спасибо все заранее.

Автор: Naghual 31.1.2008, 11:21
Вариантов решения может быть несколько.  Приведу пример (алгоритм) одного из решений.

В справочнике ФИО, пишем процедуру ПриЗаписи(), в которой устанавливаем Наименование равное Фамилии.
На вашей форме, Реквизит Фамилия будет ссылатся на справочник ФИО. 
В формулах реквизитов Имя и Отчество пишем соответственно Фамилия.Имя и Фамилия.Отчество.

Автор: Tamerlan777 3.2.2008, 23:29
 С наименованием  все понятно.

Нок как получить в Документе значение любого реквизита Справочника. Я так и не понял. Напишите пожайлуста поподробнее.

Автор: Naghual 3.2.2008, 23:55
В вашем документе есть Реквизит "Фамилия", имеющий тип "Справочник.ФИО".
Тогда, получение остальных значений из этого справочника осуществляется через реквизит "Фамилия".

Т.е.
В поле Формула реквизита "Имя" пишем:  Фамилия.Имя

Автор: Tamerlan777 4.2.2008, 15:55
формула в 7.7
а в 8.0 ??? Куда? в Событие?

Автор: Naghual 4.2.2008, 16:46
А с 8 я не работаю! 
Указывайте, пожалуйста, платформу в самом начале поста!

 smile 

Автор: BabySG 4.2.2008, 17:32
Tamerlan777, 
странное решение использования справочника, ну - вам работать smile

А по делу: используйте событие ОбработкаВыбора

Цитата
ПолеВвода.ОбработкаВыбора (TextBox.ChoiceProcessing)
ПолеВвода (TextBox)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:
ОбработкаВыбора(<Выбранное значение>, <Стандартная обработка>) 
Параметры:
<Выбранное значение>
Тип: Произвольный. Выбранное значение, которое будет установлено как значения поля ввода. 
<Стандартная обработка>
Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Фактически это означает, что выбор произведен не будет.
Значение по умолчанию: Истина 
Описание:
Возникает после выполнения выбора при: обработке выбора из списка выбора; обработке выбора из всех модальных диалогов выбора (например, календаря, калькулятора); обработке немодального выбора (например, из списка справочника). 


В данном случае, в виде значения придет ссылка на элемент справочника, из которого можете выдернуть нужный реквизит.

---------------------

Теперь о том, что неправильно:
Вы используете для нестадандартного поля стандартный механизм выбора - в данном случае:  это очень некошерно!
Лучше сделать так:

Добавляете элемент ПолеВвода с типом строка, на событие НачалоВыбора (типа нажали на ...) вешаете открытие формы выбора справочника, где владелец формы будет этот элемент. Далее, аналогично написанному выше, обрабатываете полученные значение выбора в событии ОбработкаВыбора.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)