Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как в управляемой форме, создать документ и открыть его форму (обычную, не управляемую)

Как в управляемой форме, создать документ и открыть его форму (обычную, не управляемую)
Я
   TDI
 
05.10.21 - 12:43
Есть управляемая форма,
нужно на форме разместить кнопку, по которой создается и заполняется документ, и открывается его форма.
Форма документа обычная, не управляемая.
Как это сделать ?
   ДенисЧ
 
1 - 05.10.21 - 12:44
док = Документы.Ляляля.СоздатьДокумент();
док.ПолучитьФорму().Открыть();
   TDI
 
2 - 05.10.21 - 12:53
(1) это на сервере ? там же ничего не отразится
   DimVad
 
3 - 05.10.21 - 13:05
(0) Ну, если документик можно записать а потом формочку открывать - всё просто. На сервере записали, ссылочку в клиента вернули...
   TDI
 
4 - 05.10.21 - 13:12
(3) нельзя записывать
   DimVad
 
5 - 05.10.21 - 13:16
(4) Тогда никак, мне кажется. Поэтому я бы придумал логику в которой записывать было бы можно :-)
   Ёпрст
 
6 - 05.10.21 - 13:20
(0)

&НаКлиенте
Процедура ВВестиАктОтказа(Команда)
    ДокТвой=Документы.Нужный.СоздатьДокумент();
    ДокТвой.Реквизит=....;
    Форма = ДокТвой.ПолучитьФорму();
    Форма.ЭлементыФормы.Хрень.Доступность=Ложь;
    Форма.ЭлементыФормы.Хрень2.ТолькоПросмотр=Истина;
    Форма.Открыть();

   Ёпрст
 
7 - 05.10.21 - 13:21
Это если открывать обычную форму.
   polosov
 
8 - 05.10.21 - 13:21
(0) При открытии формы передать в нее параметры, которые она должна будет заполнить. Открываемая форма должна сама позаботиться об обработке передаваемых параметров.
   hhhh
 
9 - 05.10.21 - 13:22
(6) на клиенте не работает СоздатьДокумент()
   acht
 
10 - 05.10.21 - 13:24
(9) ТС хочет из управляемой открыть обычную. Догадайся - в каком виде клинета это происходит?
   fisher
 
11 - 05.10.21 - 13:27
(0) Как минимум, нужно для начала включить в свойствах конфы "Использовать обычные формы в управляемом приложении" и запускать 1С в режиме "Толстый клиент (управляемое приложение)"
   fisher
 
12 - 05.10.21 - 13:31
(11) + А потом как обычно.
ПолучитьФорму(), заполнить, Открыть().
   fisher
 
13 - 05.10.21 - 13:46
А, или у тебя использование управляемых форм в обычном приложении?
Ну, тогда тоже самое. Глобальное ПолучитьФорму() должно работать во всех режимах.
   TormozIT
 
14 - 06.10.21 - 08:06
Если хочется на сервере создать объект и потом на клиенте открыть его обычную форму, то на сервере сериализуем ДокументОбъект в строку и передаем на клиент. На клиенте из строки десериализуем тот же объект и у него зовем ПолучитьФорму().
   acht
 
15 - 06.10.21 - 11:07
(14) > сериализуем ДокументОбъект в строку
Поосторожней с терминологией.

А то набегут неофиты и будут кричать "мутабельные объекты можно сериализовывать, дядька Тормозит разрешил!" =)
   TormozIT
 
16 - 06.10.21 - 11:57
(15) ДокументОбъект
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Данный объект может быть сериализован в/из XML. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/enterprise/current-config}. Имя типа XDTO: DocumentObject.<Имя документа>.
   acht
 
17 - 06.10.21 - 12:20
(16)
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Если ЭтотОбъект.МояЭкспортнаяПеременная <> 1 Тогда
        Отказ = Истина;
        ЭтотОбъект.ПолучитьФорму("Нет доступа").Открыть();
    КонецЕсли;
КонецПроцедуры

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.