Имя: Пароль:
1C
1С v8
УФ. Ввод на основании программно или заполнение реквизитов объекта новой формы
0 YF
 
13.11.12
15:19
На клиенте имею ссылку на элемент справочника Спр1. На основании этого справочника может быть введен документ Док1.

Хочу открыть форму нового документа Док1 заполненную так же как будто нажал на кнопку Ввести на основании.

Как это сделать?

ЗЫ Варианты с передачей параметра в форму документа и обработкой их там не интересны, т.к. не хочу изменять модули документа Док1
1 МишКа
 
13.11.12
15:22
У обработки заполнения документа поставь "экспорт" и наслаждайся.
2 ll13
 
13.11.12
15:22
3 YF
 
13.11.12
15:23
(1) Как ее вызвать?
4 YF
 
13.11.12
15:24
(2) Интересно.

А сожно ли вызвать процедуру ОбработкаЗаполнения ?
5 МишКа
 
13.11.12
15:25
новдок=документы.мойдокумент.создатьдокумент();
новдок.обработказаполнения(спросн);
6 YF
 
13.11.12
15:25
(5) Молодец. А как теперь открыть заполненную форму?
7 mikecool
 
13.11.12
15:25
(4) Заполнить() вроде было
8 Defender aka LINN
 
13.11.12
15:26
(1) Мощно. ВнушаетЪ.
(0) ОткрытьФорму("Документ.Док1.ФормаДокумента", Новый Структура("ДанныеЗаполнения", Ссылка))
9 YF
 
13.11.12
15:28
(8) Кто-то этот переданный параметр должен будет обработать в форме ...
10 Defender aka LINN
 
13.11.12
15:29
(9) Я ХЗ, кто этот кто-то, но работает на ура.
11 YF
 
13.11.12
15:30
(10) Только что попробовал - открывается пустая форма ....

только не Документ.Док1.ФормаДокумента, Документ.Док1.ФормаОбъекта
12 YF
 
13.11.12
15:33
(7) Доступно только для объекта, значит выполнять только на сервере, если поменяешь объект у формы на сервере, то ругается про передачу данных между клиентом и сервером
13 mikecool
 
13.11.12
15:36
(11) ОбработкуЗаполнение пропиши правильную
14 mikecool
 
13.11.12
15:37
ОбработкуЗаполнения*
15 mikecool
 
13.11.12
15:37
(12) с чего такие мысли посещают?
16 Defender aka LINN
 
13.11.12
15:38
Ну, не "ДанныеЗаполнения", а "Основание". Можно ж было и самим догадаться :)
17 YF
 
13.11.12
15:41
(15)


&НаСервере
//------- © YF --------------------
Процедура ЗаполнитьФ(_форма, _данныеЗаполнения)

   _форма.Объект.Договор        = _данныеЗаполнения;
   _форма.Объект.Контрагент    = _данныеЗаполнения.Владелец;
   _форма.Объект.Организация    = _данныеЗаполнения.Организация;
   
КонецПроцедуры


&НаКлиенте
//------- © YF --------------------
Процедура СоздатьСобытиеДоговорнойРаботыПоДоговору(_команда)
   
   // Найдем договор
   договор_    = ПолучитьТекущийДоговор();
   Если договор_ = Неопределено Тогда
       Возврат;
   КонецЕсли;//договор_ = Неопределено
   
   ЗаполнитьФ(форма_, договор_);
   
   форма_.Открыть();
   
КонецПроцедуры


Ошибка:

{Справочник.СпрМой.Форма.ФормаСпискаДляДоговорнойРаботы.Форма(197)}: Ошибка при вызове метода контекста (ЗаполнитьФ)
   ЗаполнитьФ(форма_, договор_);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'УправляемаяФорма'
18 YF
 
13.11.12
15:42
(16) Ага, спс Получилось. Век живи - век учись
19 Defender aka LINN
 
13.11.12
15:46
+(16) В ДанныеЗаполнения можно структуру кажись передать. Тогда тоже небольшое аносамо будет.