Имя: Пароль:
1C
1С v8
Как открыть дополнительную форму документа?
0 Chai Nic
 
19.11.24
13:26
Есть документ, у него основная форма с данными. Мне надо часть данных вынести в дополнительную форму документа, и открывать её по кнопке.

Доп.форму создал, вытащил на неё нужные поля из Объекта, открываю её из основной формы методом  ОткрытьФорму("Документ.МойДокумент.Форма.ДопФорма"), она открывается, но пустая, никак не связана с объектом, который был в основной форме.

Как допформу открыть с привязкой к открытому объекту, подскажите?
1 Волшебник
 
19.11.24
13:29
Ф = Объект.ПолучитьФорму("ДопФорма");
Ф.Открыть();
2 Chai Nic
 
19.11.24
13:32
(1) "Метод объекта не обнаружен (ПолучитьФорму)"

Этот метод только в толстом клиенте работает. А у меня УФ.
3 Mr_Boogie
 
19.11.24
13:34
(0) Передать нужные параметры https://its.1c.ru/db/metod8dev/content/4148/hdoc
4 Климов Сергей
 
19.11.24
13:38
(2) Примерно так:
&НаКлиенте
Процедура СложноеЦенообразование(Команда)
    
    ЭтаФорма.Записать();
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Ключ", Объект.Ссылка);
    
    ОписаниеОповещения = Новый ОписаниеОповещения("РедактированиеЦенообразованияЗавершение", ЭтотОбъект);
    
    ОткрытьФорму("Документ.Спецификация.Форма.ФормаЦенообразования", ПараметрыФормы,,,,,ОписаниеОповещения);

КонецПроцедуры
5 Волшебник
 
19.11.24
13:39
(2) Жалкие неудачники
6 Chai Nic
 
19.11.24
13:43
(3)(4)
Если я через ПараметрыФормы передаю Объект, а потом в другой форме в ПриСозданииНаСервере пытаюсь сделать Объект=Параметры.Объект, то получаю ошибку "Нельзя изменять поле, содержащее объект данных формы"
7 RVN
 
19.11.24
13:46
И при этом вы хотите в 1С классы, ООП и прочие модные навороты. Вот и представьте какой трэш будет в конфигурациях, если уж такие простые вещи вызывают вопросы....

P.S. (6) Обратите внимание в приведенном примере передают не Объект, а ссылку
8 Волшебник
 
19.11.24
13:47
(7) Мы ещё хотим лямбды и вложенные функции.
9 Chai Nic
 
19.11.24
13:47
(7) Вы предлагаете заполнить заново по этой ссылке реквизиты формы вручную? При том, что эта форма является формой документа. Как это тогда сделать? А если документ ещё не записан и ссылки нет?
10 Chai Nic
 
19.11.24
13:49
Если нельзя, то так и скажите, буду тогда вручную делать через простую форму, без привязки к объекту, передавая в неё коллекции через параметры..
11 Мультук
 
19.11.24
13:49
(0)

Зачем вы это делаете?

Вам страниц мало ? Играйтесь со страницами и "Видимость"
12 Chai Nic
 
19.11.24
13:50
(11) Ок. Если это настолько сложно, то пусть будет так.
13 RVN
 
19.11.24
13:52
(8) Вот почему-то вспомнилось:
Стюардесса в салоне нового лайнера объявляет о то, что находится в самолете:
- На первой палубе - багаж, на второй - бар, на третьей - поле для гольфа, на четвертой бассейн.
И добавляет:
- А теперь, господа, пристегнитесь. Сейчас со всей этой хуйней мы попробуем взлететь.

И вот результат:
https://mode1976.livejournal.com/35976.html
14 Prog_man
 
19.11.24
13:58
(0)
&НаКлиенте
Процедура мДобавитьКомментарий(Команда)	 
	ПараметрыФормы = Новый Структура("Ключ", Объект.Ссылка);
	Оповещение = Новый ОписаниеОповещения("мОбновитьФорму", ЭтотОбъект);
	ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокументаКомментарий", ПараметрыФормы, ЭтотОбъект,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры	  

&НаКлиенте
Процедура мОбновитьФорму(Результат, ДополнительныеПараметры)  Экспорт
	ЭтаФорма.Прочитать();
КонецПроцедуры
15 RomaH
 
19.11.24
13:56
есть такой злой метод "КопироватьДанныеФормы"
16 Chai Nic
 
19.11.24
14:10
(15) Спасибо! Это работает.
17 RomaH
 
19.11.24
14:26
тока не увлекайся - 1БИТ насовал его во всюду

и доп реквизиты формы теперь не "обновляются" - кроме того что при создании/чтении и после записи надо их перечитывать, так еще и после каждого вызова этого метода
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.