Имя: Пароль:
1C
1С v8
Открыть форму нового несохраненного документа в УФ
,
0 NordMad
 
15.06.16
11:49
Есть обработка которая создает док, заполняет. а вот как открыть форму этого дока не пойму. точнее как передать на клиент и открыть форму. читал что нужно использовать что то типа - ЗначениеВРеквизитФормы(ИсходящаяТТН,"ОБъект"), но вываливается ошибка:
Недопустимое значение параметра (параметр номер '2')
подскажите как быть?
1 Nuobu
 
15.06.16
11:52
2 Мимохожий Однако
 
15.06.16
11:52
Измени параметр номер 2
3 Numerus Mikhail
 
15.06.16
12:02
Как вариант:
ФормаНовогоДокумента = ПолучитьФорму("Документ.ТвойДокумент.Форма.ФормаДокумента", ПараметрыФормы);
ДанныеФормы = ФормаНовогоДокумента.Объект;
//Тут заполняешь всё что хочешь
ФормаНовогоДокумента.Открыть();
4 NordMad
 
15.06.16
12:11
(3) а это на клиенте что ли?
5 NordMad
 
15.06.16
12:15
(1) в примере по ссылке не показано само заполнение. т.е. команда открытия вижу, а вот где заполняется док непонятно
6 NordMad
 
15.06.16
12:16
(2) на что? контекстная подсказка ничего другого не предлагает. может добавить реквизит, но тогда какого типа?
7 Numerus Mikhail
 
15.06.16
12:18
Да, на клиенте.
Но никто не мешает тебе создать процедуру заполнения на сервере
ЗаполнитьОтгрузкуТовараНаСервере(ДанныеФормы); // моя серверная процедура
КопироватьДанныеФормы(ДанныеФормы, ФормаНовойОтгрузки.Объект);
8 NordMad
 
15.06.16
12:29
(7) почти получилось. но тут:
ФормаНовогоДокумента = ПолучитьФорму("Документ.ТТНИсходящаяЕГАИС.Форма.ФормаДокумента");
ДанныеФормы = ФормаНовогоДокумента.Объект;
//Тут заполняешь всё что хочешь
ФормаНовогоДокумента.Объект = ЗаполнитьНаСервере(ДанныеФормы);
//КопироватьДанныеФормы(ДанныеФормы, ФормаНовойОтгрузки.Объект);
ФормаНовогоДокумента.Открыть();

вываливается
Ошибка при установке значения атрибута контекста (Объект)
ФормаНовогоДокумента.Объект = ЗаполнитьНаСервере(ДанныеФормы);
по причине:
Нельзя изменять поле, содержащее объект данных формы

а: КопироватьДанныеФормы(ДанныеФормы, ФормаНовойОтгрузки.Объект); не доступна на тонком клиенте
9 Fragster
 
гуру
15.06.16
12:29
КопироватьДанныеФормы доступна в тонком клиенте
10 NordMad
 
15.06.16
12:30
(7) то есть остается только передать заполнение формы в новый док.. но блин не пойму как..
11 NordMad
 
15.06.16
12:30
(9) да
12 leonidkorolev
 
15.06.16
12:33
(0) Может подойдёт

&НаСервере
Процедура Команда1НаСервере(ДанныеФормы)
  
   ДанныеФормы.Реквизит1 = "ыыыыыыыыыыы";    
   ДокОб =ДанныеФормыВЗначение(ДанныеФормы,тип("ДокументОбъект.Документ1"));
   НовСтр1  = ДокОб.ТабличнаяЧасть1.Добавить();
   НовСтр1.Реквизит1 = "ввв";
   НовСтр1.Реквизит2 = "ббб";
   НовСтр2  = ДокОб.ТабличнаяЧасть1.Добавить();
   НовСтр2.Реквизит1 = "ввв2";
   НовСтр2.Реквизит2 = "ббб2";
   ЗначениеВДанныеФормы(докОб,ДанныеФормы);
  
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
  
   Форма1 = ПолучитьФорму("Документ.Документ1.ФормаОбъекта");
   ДанныеФормы = Форма1.Объект;
   Команда1НаСервере(ДанныеФормы);
   КопироватьДанныеФормы(ДанныеФормы, Форма1.Объект);
   Форма1.Открыть();
  
КонецПроцедуры
13 Numerus Mikhail
 
15.06.16
12:33
Вот так будет работать:
ФормаНовогоДокумента = ПолучитьФорму("Документ.ТТНИсходящаяЕГАИС.Форма.ФормаДокумента");
ДанныеФормы = ФормаНовогоДокумента.Объект;

ЗаполнитьНаСервере(ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, ФормаНовойОтгрузки.Объект);

ФормаНовогоДокумента.Открыть();
14 Numerus Mikhail
 
15.06.16
12:34
ой, там только очепятка
КопироватьДанныеФормы(ДанныеФормы, ФормаНовогоДокумента.Объект);
15 NordMad
 
15.06.16
12:40
(14) Спасибо, работает!
Программист всегда исправляет последнюю ошибку.