Имя: Пароль:
1C
 
как переопределить форму для документа?
0 mikecool
 
14.03.16
15:35
Хочу - при создании нового документа подсовывать одну форму, а при открытии существующего - другую
В ОбработкаПолученияФормы у меня все пусто, никаких признаков о том - открываемый объект новый или нет, нету
как выйти из положения?
зы: поиск пока ничего не дал
1 lubitelxml
 
14.03.16
15:36
как вариант юзать костыль - при создании на сервере смотреть новый или нет объект, и закрывать эту форму и открывать другую...
2 mikecool
 
14.03.16
15:37
(1) подумал уже об этом
но вдруг я как то не могу передать параметры в ОбработкаПолученияФормы
3 lubitelxml
 
14.03.16
15:41
посмотри в упп в модуле менеджера РТиУ есть ОбработкаПолученияФормы
4 mikecool
 
14.03.16
15:45
(3) нет под рукой
зато (1) работает, думаю меня это пока устроит
5 Fragster
 
гуру
14.03.16
15:46
Еси в Параметры есть ключ - то это существующий объект...
6 lubitelxml
 
14.03.16
15:48
Функция ПолучитьИмяФормыПоВидуОперации(ВидОперации) Экспорт
    
    Если ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРеализацияТоваров.ПродажаКомиссия") Тогда
        ИмяФормыПоВидуОперации = "Форма.ФормаДокументаУправляемая";
    ИначеЕсли ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРеализацияТоваров.АктВыполненныхРабот") Тогда
        ИмяФормыПоВидуОперации = "Форма.АктВыполненныхРабот";
    ИначеЕсли ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРеализацияТоваров.АктНаПередачуПрав") Тогда
        ИмяФормыПоВидуОперации = "Форма.АктНаПередачуПрав";
    Иначе
        ИмяФормыПоВидуОперации = "ФормаОбъекта";
    КонецЕсли;
    
    Возврат "Документ.РеализацияТоваровУслуг." + ИмяФормыПоВидуОперации;
    
КонецФункции

Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
    
    Если ВидФормы <> "ФормаДокумента" И ВидФормы <> "ФормаОбъекта" Тогда
        Возврат;
    КонецЕсли;

    ВидОперации = Неопределено;

    Если Параметры.Свойство("Ключ") И ЗначениеЗаполнено(Параметры.Ключ) Тогда
        ВидОперации    = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.Ключ, "ВидОперации");
    КонецЕсли;

    Если НЕ ЗначениеЗаполнено(ВидОперации) Тогда
        Если Параметры.Свойство("ЗначениеКопирования") И ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
            ВидОперации = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ЗначениеКопирования, "ВидОперации");
        КонецЕсли;
    КонецЕсли;

    Если НЕ ЗначениеЗаполнено(ВидОперации) Тогда
        Если Параметры.Свойство("ЗначенияЗаполнения") И ТипЗнч(Параметры.ЗначенияЗаполнения) = Тип("Структура") Тогда
            Если Параметры.ЗначенияЗаполнения.Свойство("ВидОперации") Тогда
                ВидОперации    = Параметры.ЗначенияЗаполнения.ВидОперации;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(ВидОперации) Тогда
        Если Параметры.Свойство("ВидОперации") Тогда
            ВидОперации    = Параметры.ВидОперации;
        КонецЕсли;
    КонецЕсли;
    
    СтандартнаяОбработка = Ложь;
    ВыбраннаяФорма = ПолучитьИмяФормыПоВидуОперации(ВидОперации);
    
КонецПроцедуры
7 mikecool
 
14.03.16
15:54
о, спасибо )))