Имя: Пароль:
1C
1С v8
УФ. Просто открыть обработку из документа. Как?
0 Nemoj
 
09.09.15
23:21
Элементарная вещь. На УФ не могу сделать. Нужно при нажатии кнопки в форме документа открыть форму обработки.

Делаю так:
&НаСервере
Функция ПечатьАктаНаСервере()
    ПечатьАкта = Обработки.ПечатьАкта.Создать();
    Фрм = ПечатьАкта.ПолучитьФорму("Форма");
    Фрм.Открыть();
КонецФункции

&НаКлиенте
Процедура ПечатьАкта(Команда)    
    ПечатьАктаНаСервере();
КонецПроцедуры


Получается так:
{Документ.Заявка.Форма.ФормаДокумента.Форма(107)}: Ошибка при вызове метода контекста (ПолучитьФорму)
    Фрм = ПечатьАкта.ПолучитьФорму("Форма");
по причине:
Интерактивные операции недоступны
1 Lexey_
 
10.09.15
00:08
(0) используй ОткрытьФорму()
2 palsergeich
 
10.09.15
00:21
Сделать что нибудь на клиенте, например открыть форму - невозможно.
в вашем случае достаточно сделать следующее:
&НаКлиенте
Процедура ПечатьАкта(Команда)    
    ОткрытьФорму("Обработки.ПечатьАкта.Форма");
КонецПроцедуры
3 palsergeich
 
10.09.15
00:21
Сделать что нибудь на клиенте, например открыть форму, на сервере - невозможно.
4 Nemoj
 
10.09.15
00:24
Понял, сейчас попробую.
5 palsergeich
 
10.09.15
00:26
&НаКлиенте
Процедура ПечатьАкта(Команда)    
    ОткрытьФорму("Обработка.ПечатьАкта.Форма");
КонецПроцедуры
Вот так будет работать.
6 Nemoj
 
10.09.15
00:29
Отлично, форму открывает.
Как теперь передать туда данные из документа?
7 Franchiser
 
гуру
10.09.15
00:40
Глобальный контекст (Global context)
ОткрытьФорму (OpenForm)
Вариант синтаксиса: По названию

Синтаксис:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
8 Franchiser
 
гуру
10.09.15
00:43
1 можно передать Параметры
2 можно передать форму-владельца и обращаться к ней в той форме
9 Nemoj
 
10.09.15
01:14
&НаКлиенте
Процедура ПечатьАкта(Команда)  
    ОткрытьФорму("Обработка.ПечатьАкта.Форма",,ЭтаФорма);
КонецПроцедуры

Форма отчета открывается. Как в ней обратиться к владельцу?
10 palsergeich
 
10.09.15
01:20
В форме отчета в любой клиентской процедуре, например ПриОткрытии, ЭтаФорма.Владелец
11 Nemoj
 
10.09.15
01:35
Сделал так:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Клиент=ЭтаФорма.Владелец.Клиент;
КонецПроцедуры

Получил это:
{Обработка.ПечатьАкта.Форма.Форма.Форма(4)}: Поле объекта не обнаружено (Владелец)
    Клиент=ЭтаФорма.Владелец.Клиент;

Я вообще правильно передал форму владельца из документа?
&НаКлиенте
Процедура ПечатьАкта(Команда)  
    ОткрытьФорму("Обработка.ПечатьАкта.Форма",,ЭтаФорма);
КонецПроцедуры
12 Nemoj
 
10.09.15
01:37
Когда я набрал
Клиент=ЭтаФорма.
В списке подстановки не было Владелец. Бало ВладелецФормы. Может его надо было?
13 palsergeich
 
10.09.15
01:43
ену да, ВладелецФормы Конечно жн
14 Nemoj
 
10.09.15
02:00
Спасибо, заработало.

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Объект.Клиент=ЭтаФорма.ВладелецФормы.Объект.Клиент;
    Объект.Заявка=ЭтаФорма.ВладелецФормы.Объект.Ссылка;
    СкопироватьУслуги();
КонецПроцедуры          

&НаСервере
Процедура СкопироватьУслуги()
    Объект.Услуги.Загрузить(Объект.Заявка.Услуги.Выгрузить());
КонецПроцедуры

Спокойной ночи!