Имя: Пароль:
1C
1С v8
Обычные формы. Как передать параметр в Форму?
0 altaykniga
 
15.01.17
21:19
Доброго вечера, уважаемые специалисты. Вопрос такой.
УПП 1.3.83.2, платформа 8.2.19.130.

на форме документа ЗаказПоставщику сделал кнопку "Создать заказ покупателя". Код взял из модуля документа ЗаказПокупателя, из процедуры ОбработкаЗаполнения.

Необходимо только отдельно заполнить реквизит "СкладГруппа".
в процедуре общего модуля пишу:

ЗаказПокупателяОбъект.СкладГруппа = Константы.ччч.Получить();
ФормаЗаказаПокупателя = ЗаказПокупателяОбъект.ПолучитьФорму("ФормаДокумента");ФормаЗаказаПокупателя.Открыть();


Но в модуле документа ЗаказПокупателя в процедуре ПриОткрытии выполняется такой код:


    Если ЭтоНовый() Тогда
        
        ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
        ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект, "Продажа", ПараметрОбъектКопирования);
        
        Если ПараметрОбъектКопирования = неопределено И ПараметрОснование = Неопределено Тогда
            // Заполнить реквизиты значениями по умолчанию.
            СкладГруппа = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновнойСклад");
        КонецЕсли;
        Если ПараметрОбъектКопирования <> неопределено Тогда
            ДатаОтгрузки = неопределено;
        КонецЕсли;
        
        УправлениеЗаказами.УстановитьДатуОплатыПоДоговору(ЭтотОбъект);
    КонецЕсли;


а т.к. у меня ЭтоНовый() и ПараметрОснование=Неопределено, то значение СкладГруппа изменяется. Никак не могу понять, как при открытии формы из общего модуля задать значение параметра "ПараметрОснование". Подскажите, пожалуйста, кто знает!
1 d546
 
15.01.17
21:22
я фигачил напрямую,
1. получал форму (процедура ПриОткрытии отрабатывается полностью)
2. правил реквизиты формы и объекта
3. открывал форму :)
2 altaykniga
 
15.01.17
21:26
(0) причем в конфигураторе в реквизитах формы и в коде нигде не могу найти "ПараметрОснование"
3 d546
 
15.01.17
21:30
(2) как я понял, это типа интерактивный параметр, при копировании в форме
4 youalex
 
15.01.17
21:30
(2) это предопределенный параметр события ПередОткрытием()
5 altaykniga
 
15.01.17
21:34
(4) а как этому параметру присвоить значение до открытия формы из общего модуля?
6 Lexey_
 
15.01.17
21:44
(5) ЗаказПокупателяОбъект.Заполнить(ДанныеЗаполнения);
ДанныеЗаполнения это ПараметрОснование в ПриОткрытии()
7 marvak
 
15.01.17
21:47
Или заполняй значение реквизита СкладГруппа ПОСЛЕ открытия формы.
Типа:
ФормаЗаказаПокупателя.Открыть();
ФормаЗаказаПокупателя.СкладГруппа = Константы.ччч.Получить();
8 youalex
 
15.01.17
21:49
(5) наврал, это свойство формы, из СП:
Расширение формы документа/Свойства формы/ПараметрОснование
"Содержит ссылку на объект-основание."

Можно явно указать - Форма.ПараметрОснования = СсылкаОснования
9 altaykniga
 
15.01.17
21:56
(8)
пробовал так написать в общем модуле, после метода ПолучитьФорму().


        ФормаЗаказаПокупателя = ЗаказПокупателяОбъект.ПолучитьФорму("ФормаДокумента");
        ФормаЗаказаПокупателя.ПараметрОснование = ЗаказПокупателяОбъект.Ссылка;
        ФормаЗаказаПокупателя.Открыть();


выходит ошибка "Несоответствие типов"
10 youalex
 
15.01.17
22:13
(9) у меня работает :

    ОбъектОснование = Документы.ПеремещениеТоваров.НайтиПоНомеру("00004675", Дата(2014,1,1)).ПолучитьОбъект();
    ДокОбъект = Документы.ПриходныйОрдерНаТовары.СоздатьДокумент();
    //ДокОбъект.Заполнить(ОбъектОснование);
    Форма = ДокОбъект.ПолучитьФорму();
    Форма.ПараметрОснование = ОбъектОснование.Ссылка;
    Форма.Открыть();

11 d546
 
15.01.17
22:54
(9) нельзя использовать ссылку на текущий объект, я закинул в него левую ссылку ФормаОбъекта.ПараметрОснование = Справочники.ВычетыНДФЛ.Код101; прокатило