Имя: Пароль:
1C
1С v8
Можно ли в ОбработкеВыбора получить название документа?
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 ) Точно, спасибо большое,  получилось...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший