|
Можно ли в ОбработкеВыбора получить название документа?
| ☑ |
0
Chernlen
18.08.11
✎
17:23
|
Поле составного типа, документов много:
Процедура ДокументОбработкаВыбора(Элемент,ВыбранноеЗначение,СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ВыбранноеЗначение = ТипЗнч"ДокументСсылка.РеализацияТоваровУслуг" Тогда
ФормаВыбора = Документы.РеализацияТоваровУслуг.ПолучитьФормуВыбора(,Элемент);
ФормаВыбора.ДокументСписок.Отбор.Контрагент = Истина;
ФормаВыбора.ДокументСписок.Отбор.Контргент.Использование = Истина;
ФормаВыбора.ДокументСписок.Отбор.Контргент.Значение=Контрагент;
ФормаВыбора.Открыть();
Иначе
// Куча других документов
КонецЕсли;
КонецПроцедуры
Поскольку документов много хотелось бы что-то типа универсального:
ФормаВыбора=Документы[ВыбранноеЗначение.Имя].ПолучитьФормуВыбора(,Элемент);
но так не работает.
Метаданные тоже не работает.
Подскажите, как можно получить текст типа "РеализацияТоваровУслуг".
Первый раз пока не выбран документ в ВыбранномЗначении стоит Тип - "Тип",а значение "Документ ссылка : Реализация Товаров и услуг"
Убирать из текста пробелы как то не очень хочется...
Спасибо.
|
|
1
Nina2005
18.08.11
✎
17:31
|
Если Тип(ВыбранноеЗначение) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
|
|
2
unregistered
18.08.11
✎
17:35
|
ИмяДокумента = ВыбранноеЗначение.Метаданные().Имя;
ФормаВыбора = Документы[ИмяДокумента].ПолучитьФормуВыбора(,Элемент);
|
|
3
Chernlen
19.08.11
✎
10:09
|
(1)
<Если Тип(ВыбранноеЗначение)> (для Поля составного типа )"ВыбранноеЗначение" и так типа "Тип ", так что если еще раз ставить функцию "Тип" , то ругается.
Как у меня написано Выше - условие работает.
(2)
Значение не является значением объектного типа (Метаданные)
Сообщить(" Знач "+ВыбранноеЗначение.Метаданные().Имя);
Не через .Метаданные() не просто через .Имя не работает.
Я в "ОбработкуВыбора" (для Поля составного типа )первый раз попадаю , когда выбираю тип документа и "ВыбранноеЗначение" принимает значение "Документ ссылка : Реализация Товаров и услуг" и тип принимает значение "Тип", а не "документ"
А второй раз попадаю, когда выбираю документ и тогда я уже в "ВыбранномЗначении" смогла бы получить Имя Метаданных, но тогда мне уже не надо.
Надо получить вид документа , чтобы знать , форму какого док-та открыть на этапе, когда пользователь выбрал только "тип" поля.
Т.е.
ИмяДокумента = ВыбранноеЗначение.Метаданные().Имя;
Это работает только , когда поле не составного типа.
|
|
4
unregistered
19.08.11
✎
10:26
|
(3) если ВыбранноеЗначение имеет тип тип:
НовыйОбъект = Новый(ВыбранноеЗначение);
ИмяДокумента = НовыйОбъект.Метаданные().Имя;
ФормаВыбора = Документы[ИмяДокумента].ПолучитьФормуВыбора(,Элемент);
НовыйОбъект = Неопределено;
|
|
5
Chernlen
19.08.11
✎
10:37
|
( unregistered ) Точно, спасибо большое, получилось...
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший