Имя: Пароль:
1C
1С v8
обновление формы
,
0 Domanoff26
 
07.11.11
15:34
ФормаВлад = ЭтаФорма.ВладелецФормы;  
   ФормаВлад.Обновить();        
   ЭтаФорма.Закрыть();
Владелец формы так и остается неизменнолй, хотя при ПЕРЕЧИТАТЬ данные меняются, какой метод обновляет(перечитывает форму)
1 Domanoff26
 
07.11.11
15:40
Что забыл?
2 rrunover
 
07.11.11
15:48
а зачем форму владельца перечитывать?
3 Domanoff26
 
07.11.11
15:50
(2 ) потому что из этой формы меняются реквизиты формы владельца
4 rrunover
 
07.11.11
15:51
ЭтаФорма модально открывается?
5 rrunover
 
07.11.11
15:52
+(4) // быстрофикс
А полный код можно посмотреть?
6 Domanoff26
 
07.11.11
15:57
(4) не модально
(5) что такое быстрофикс?
там перед СК_ПривилегированныеПроцедуры.ИзменениеДопустимыхРеквизитов(Документ,ТаблицаРеквизитов);
которая
Процедура ИзменениеДопустимыхРеквизитов(Документ,Таблица) Экспорт
   ДокОбъект = Документ.ПолучитьОбъект();
   Для каждого СтрокаРекв Из Таблица Цикл
       РеквизитСтр = СтрЗаменить(СтрокаРекв.Реквизит," ","");
       ДокОбъект[РеквизитСтр] = СтрокаРекв.Значение;
   КонецЦикла;
   
   Попытка
       ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
   Исключение
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
   
   
   КонецПроцедуры
7 Domanoff26
 
07.11.11
16:03
Если ПравоДоступа("Редактирование",Док.ПолучитьОбъект().Метаданные(), ПользователиИнформационнойБазы.ТекущийПользователь()) Тогда
       ФормаИзм = ПолучитьОбщуюФорму("ФормаИзмененияЗначенийРеквизитов");
       ФормаИзм.ВладелецФормы = Форма;
       ФормаИзм.Документ = Док;
       ФормаИзм.ОткрытьМодально();
       //ЭтаФорма.Закрыть();
   Иначе Сообщить ("Недостаточно прав для изменения этого документа");
   КонецЕсли;
8 Domanoff26
 
07.11.11
16:03
это фот так форма открывается
9 rrunover
 
07.11.11
16:06
быстрофикс - это значит кто-то аццки быстро решил дописать предыдущий свой пост и изменить его, но по каким-то причинам не смог сообщение отредактировать и написал новый. Чтобы было понятно, что это не два разных сообщения, а одно, разделенное молнией мысли и употребляется "быстрофИкс".

Где в коде три строки из (0)?
10 Domanoff26
 
07.11.11
16:13
(9 ) это там где хочу обновить -    
СК_ПривилегированныеПроцедуры.ИзменениеДопустимыхРеквизитов(Документ,ТаблицаРеквизитов);
   ФормаВлад = ЭтаФорма.ВладелецФормы;  
   ФормаВлад.Обновить();
    Оповестить("Перечитать",,ЭтаФорма);
   ЭтаФорма.Закрыть();
   
А открывается ЭтаФорма через (7)
может я не так открываю ее
11 Domanoff26
 
07.11.11
16:14
оповестить() не хочу, почему так не обновляется
12 rrunover
 
07.11.11
16:25
Ещё раз давай. Суть вопроса:
Ты открываешь форму владельца и из формы-потомка хочешь обновить форму-владельца?
Потому что в форме-потомке есть реквизиты, которые принадлежат и форме-владельцу???

Если нет, тогда открывай форму модально, при закрытии форма будет возвращать владельцу параметр. Его и обрабатывай.
По типу:

СтандартнаяОбработка = Ложь;
Форма = ПолучитьФорму("Документ.МойДокумент.ФормаСписка", , ЭтаФорма);
Форма.РежимВыбора = Истина;
Форма.ОткрытьМодально();
Если ЗначениеЗаполнено(Форма.ТекущийЭлемент.ТекущаяСтрока) Тогда
   Элемент.Значение = Форма.ТекущийЭлемент.ТекущаяСтрока;
КонецЕсли;
13 rrunover
 
07.11.11
16:26
а чем Оповестить() насолила? :)
14 Reset
 
07.11.11
16:30
ФормаВладелец.ЭтотОбъект.Прочитать()

(13) Присоединяюсь к вопросу
15 Domanoff26
 
07.11.11
16:55
(14) спс Через прочитать вышло
Программист всегда исправляет последнюю ошибку.