Имя: Пароль:
1C
1С v8
УФ - создать документ и вернуть клиенту без записи в базу?
0 mikecool
 
12.10.11
10:25
Как собсно?
вижу порядок типа:
1) создал объект, заполнил данными - далее стопорюсь
далее каким то образом надо передать на клиента заполненный объект.
надо рисовать реквизит формы нужного типа или как то по другому можно?
1 Злобный монстр
 
12.10.11
10:30
(0) Тебе в УФ документа передать надо или в произвольную?
2 mikecool
 
12.10.11
10:31
(1) у создаваемого документа только УФ и ее я и хочу вернуть пользователю, дабы подправил и сохранил или не сохранил
3 Злобный монстр
 
12.10.11
10:32
(0) Мне кажется(хотя я сам осваиваю только УФ) что если цель - создание дока заполненного данными то схема такая: ОткрытьФорму("Документ",Параметры)
В параметрах структура
В модуле дока в ПриСозданииНаСервере заполнение дока из параметров
4 mikecool
 
12.10.11
10:32
для обычной формы написал(за синтаксис не ругать ))
Заявка = Документы.ЗаявкаНаТранспорт.СоздатьДокумент();
Заявка.Заполнить(СписокЗаявок);
ПолучитьФорму("Документ.ЗаявкаНаТранспорт.Форма.ФормаДокумента", Новый Структура("Объект", Заявка)).Открыть();
5 Злобный монстр
 
12.10.11
10:33
(2) Тогда (3) подойдет, но правильно ли так делать? Может кто мнение озвучит?
6 Scooter
 
12.10.11
10:33
(0)забирай с клиента
7 Злобный монстр
 
12.10.11
10:34
(3) "В модуле дока " читать как "В модуле УФ дока "
8 aleks-id
 
12.10.11
10:35
формаОрдера = ПолучитьФорму("Документ.ПриходныйКассовыйОрдер.Форма.ФормаДокумента");
формаОрдера.Объект.Касса = получитьКассу();
формаОрдера.открытьМодально();
9 mikecool
 
12.10.11
10:38
(6) я не против, только как?
(7) как бе смущает - ОткрытьФорму вызывает только ПриСозданииНаСервере, а Обработку заполнения - вызовет ли?
10 Злобный монстр
 
12.10.11
10:39
(9) хз не пробовал
11 Scooter
 
12.10.11
10:40
(0)
>создал объект, заполнил данными - далее стопорюсь

кто и по какому событию создал объект?
12 mikecool
 
12.10.11
10:45
(11) пользователь жмет кнопку в форме списка другого документа, на основании которого(ых) создается заявка на транспорт
13 aleks-id
 
12.10.11
10:46
(12) чем тебя работа с формой не устраивает? зачем обязательно док создавать?
14 mikecool
 
12.10.11
10:47
(13) тогда переспрошу еще раз: ОткрытьФорму вызовет Обработку заполнения? что то я сомневаюсь
15 aleks-id
 
12.10.11
10:52
(14) ты не сомневайся. ты делай. только передай туда параметром то, что надо заполнить.

парам = новый структура("Основание", форма.Объект.Ссылка);
формаОрдера = ПолучитьФорму("Документ.ПриходныйКассовыйОрдер.Форма.ФормаДокумента", парам);
...
16 Defender aka LINN
 
12.10.11
10:53
(14) Причины сомнений со ссылками на ЖКК давай.
17 mikecool
 
12.10.11
11:33
(16) вот умеешь же послать )))
как передать параметр, что бы были установлены <ДанныеЗаполнения>?
18 mikecool
 
12.10.11
11:33
+17 параметр в ОткрытьФорму
19 mikecool
 
12.10.11
11:35
ОткрытьФорму("Документ.ЗаявкаНаТранспорт.Форма.ФормаДокумента", Новый Структура("ДанныеЗаполнения", СписокЗаявок))
не роляет
20 ll13
 
12.10.11
11:35
21 aleks-id
 
12.10.11
11:37
Синтаксис:
ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>)
Параметры:
<ИмяФормы> (обязательный)
<Параметры> (необязательный)

Тип: Структура. Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
22 mikecool
 
12.10.11
11:39
(20) интересует как раз "Первый способ заключается в том, что необходимо заранее подготовить некую структуру, которая будет содержать данные для заполнения документа, передать эту структуру в открываемую форму, а уже в самой форме в событии ПриСозданииНаСервере() заполнять вновь открываемую форму переданными в неё данными"

(21) и?
23 mikecool
 
12.10.11
11:40
+22 к 1 - ОбработкаЗаполнения вызывается первой, в ней и происходит заполнение объекта при интерактивной работе, остается только подсунуть ДанныеЗаполнения и все
24 H A D G E H O G s
 
12.10.11
11:40
ППЦ
25 H A D G E H O G s
 
12.10.11
11:41
Ищите уж ветку МаниАКА, там это реализованно
26 aleks-id
 
12.10.11
11:41
ЗначенияЗаполнения = Новый Структура;
ЗначенияЗаполнения.Вставить("Дата",ТекущаяДата());
ЗначенияЗаполнения.Вставить("Контрагент",Объект.Контрагент);
ОткрытьФорму("Документ.ПересчетТоваров.ФормаОбъекта",Новый Структура("ЗначенияЗаполнения",ЗначенияЗаполнения));
27 mikecool
 
12.10.11
11:42
(26) щас попробую, спс
28 mikecool
 
12.10.11
11:44
(26) не помогает
ДанныеЗаполнения - пусты
в при создании Параметры.ЗначенияЗаполнения - тоже пусто ((
29 mikecool
 
12.10.11
11:44
(25) по каким словам искать?
30 mikecool
 
12.10.11
11:47
ветку Мани нашел, читаю...
31 H A D G E H O G s
 
12.10.11
11:48
32 mikecool
 
12.10.11
11:49
(31) оО, это не является извратом? типа проще никак? )))
33 Злобный монстр
 
12.10.11
11:50
(28) Смотришь в ПриСозданииНаСервере? я в (3) собсно (26) и описал.
34 Злобный монстр
 
12.10.11
11:50
(32) Этож УФ там так все делается
35 mikecool
 
12.10.11
11:51
когда говорю ОткрытьФорму порядок вызова
ОбработкаЗаполнения - вот сюда какг бе и надо данные заполнения передать
ПриСозданииНаСервере
36 Злобный монстр
 
12.10.11
11:52
(32) Ну форма у тебя на клиенте, а параметры ты увидишь на сервере...
37 mikecool
 
12.10.11
11:55
(36) я понимаю, ОбработкаЗаполнения тоже вроде как на сервере выполняется, вот как передать правильно параметр?
это же все упростит и будет красиво
38 Злобный монстр
 
12.10.11
11:56
(37) Думается что если ты на сервере выполнишь процедуру заполнения после открытия формы - придется еще пересчитывать данные с сервера в форму...
39 mikecool
 
12.10.11
11:57
вот в v8: Открытие формы созданного документа GROOVY пишет
"Используйте ОбработкуЗаполнения для приема параметров и "ОткрытьФорму" для передачи."
чего я и хочу добиться )
40 ll13
 
12.10.11
11:57
(37)
Заполнить(<ДанныеЗаполнения>)
41 mikecool
 
12.10.11
11:58
не могу понять - как должен зваться параметр в ОткрытьФорму, что бы он превратился в ДанныеЗаполнения
42 mikecool
 
12.10.11
11:58
пока афк, после обеда продолжу ломать голову )))
43 H A D G E H O G s
 
12.10.11
12:06
(42) ППЦ.
Да юзай ты (31).
Просто и элегантно, и код типовой формы менять не надо.
44 Злобный монстр
 
12.10.11
12:07
(28) у меня (26) работает
45 ll13
 
12.10.11
12:08
(41)
ЗначенияЗаполнения = Новый Структура("МоиДанныеКлюч", "МоиДанныеЗначение");
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения);
ОткрытьФорму("Документ.Операция.ФормаОбъекта", ПараметрыФормы);
46 Злобный монстр
 
12.10.11
12:09
(42) Фишка в том что ключ структуры со значением в котором структура заполнения должен быть именн "ЗначенияЗаполнения"
47 Злобный монстр
 
12.10.11
12:10
(45) +100
48 mikecool
 
12.10.11
13:29
(45) (46) в том то и фигня - пробую, данные заполнения - неопределено (
49 mikecool
 
12.10.11
13:39
+48 я тормоз, не заметил что параметры заполнения - тоже структура ))
(43) если есть возможность использовать возможности платформы - буду использовать их
50 mikecool
 
12.10.11
13:54
все работает, но по сравнению с обычной формой - медленнее раз в 5-6