Имя: Пароль:
1C
1С v8
Как открыть форму объекта? На сервере или клиенте?
, , ,
0 IvanGorbunov
 
15.04.19
14:05
Есть функция на сервере, где получается объект отчета, типа Отчеты.ВедомостьПоОстаткам.Создать(), для которого после этого устанавливаются значения реквизитов отчета. Но потом нужно открыть форму этого объекта, этот объект нужно вернуть в клиентскую процедуру, откуда эта серверная функция была вызвана. Но объект клиентская процедура не видит, говорит ошибка отображения типов. Тонкий клиент.
Что делать?
1 Mankubus
 
15.04.19
14:10
(0) открывай форму на клиенте передав в нее все необходимые параметры.
при создании на сервере формы анализируй параметры и заполняй реквизиты
2 IvanGorbunov
 
15.04.19
14:11
(1) это надо конфу изменять
3 Fish
 
15.04.19
14:11
(2) Расширение прикрути.
4 IvanGorbunov
 
15.04.19
14:13
(3) это понятно, но не очень хочется так делать
5 edem911
 
15.04.19
14:14
Кури ДанныеФормыВзначение()и ЗначениеВДанныеФормы().
6 edem911
 
15.04.19
14:15
(5) а и еще КопироватьДанныеФормы()
7 IvanGorbunov
 
15.04.19
14:18
(5) можете чуть подробней сказать, как это здесь применить?
8 edem911
 
15.04.19
14:21
(7) На клиенте создаете форму (Открыть форму), далее на сервер передаете объект этой формы- там заполняете все что нужно, и далее копируете переданный на сервер объект в объект формы через КопироватьДанныеФормы()
9 edem911
 
15.04.19
14:27
10 IvanGorbunov
 
15.04.19
14:30
(8) у моей формы нет объекта, у нее есть разве что реквизит "Отчет" и вот такой код
ЗаполнитьОтчет(Форма.Отчет);

пишет ошибку
Ошибка при установке значения атрибута контекста (Отчет)
        ЗаполнитьОтчет(Форма.Отчет);
по причине:
Нельзя изменять поле, содержащее объект данных формы
11 edem911
 
15.04.19
14:36
(10) Переприсвой в переменную и потом передавай в ЗаполнитьОтчет()
12 edem911
 
15.04.19
14:37
(11)

ОтчетДляЗаполнения=Форма.Отчет;
ЗаполнитьОтчет(ОтчетДляЗаполнения);
КопироватьДанныеФормы(ОтчетДляЗаполнения, Форма.Отчет);
13 IvanGorbunov
 
15.04.19
14:56
(12) спасибо, так получается, единственное нужно еще отбор компоновщику установить и чтобы отчет при открытии сам формировался
14 IvanGorbunov
 
15.04.19
14:57
(13) отбор вроде ставлю, перед открытием формы Форма.Отчет.Компоновщик.Отбор - там мой отбор стоит, но в настройках открываемого отбора нет, и отчет без отбора формируется
15 edem911
 
15.04.19
15:07
(14) а что за реквизиты вы меняете? или меняете настройки компоновки данных?
16 edem911
 
15.04.19
15:09
(14) отчет формируется стандартной кнопкой или написан обработки формирования? Если написан обработчик формирования то без изменения формы никак.
17 IvanGorbunov
 
15.04.19
15:20
(15) меняю реквизиты отчета и настройки компоновки тоже
18 IvanGorbunov
 
15.04.19
15:23
(16) обработчик формирования для кнопки Сформировать там написан
19 toypaul
 
гуру
15.04.19
15:49
Форма = ПолучитьФорму()

Форма.Отчет.Компоновщик - настроить
Форма.СкомпоноватьРезультат()
Форма.Открыть()

вот тут http://learn.programstore.ru/ все это рассказывалось. скоро обещают сделать записи видосиков