|
v8: Модифицированность формы программно измененного объекта | ☑ | ||
---|---|---|---|---|
0
Roman Go
09.09.11
✎
10:30
|
Нахожу запросом документ, получаю его объект, изменяю табл.часть, открываю
но в форме не стоит указателя ее модифицированности и ее можно просто закрыть, не выдастся окно "записать?" как сделать чтобы форма открывалась модифицированная? |
|||
1
forforumandspam
09.09.11
✎
10:32
|
Заполнять тогда в форме, а не в объекте.
|
|||
2
Roman Go
09.09.11
✎
10:37
|
Форма = Док.ПолучитьФорму("ФормаДокумента",ЭтаФорма);
Форма.Модифицированность = истина; Форма.ДокументОбъект.Комментарий = "1"; Форма.Комментарий = "2"; Форма.ОткрытьМодально(); Форма.Модифицированность = истина; форма не модифицированная открывается |
|||
3
Roman Go
09.09.11
✎
10:43
|
причем когда создаю документ он открывается модифицированным, а найденный и измененный открывается не модифицированным... проблема
|
|||
4
Defender aka LINN
09.09.11
✎
10:44
|
(2) Форма.ОткрытьМодально();
Форма.Модифицированность = истина; Молодец. |
|||
5
Сергей Д
09.09.11
✎
10:45
|
Интересные дела происходят... Вот код:
МойДокумент=Документы.ДокументыКонтрагентов.НайтиПоНомеру("000000001"); МойОбъект=МойДокумент.ПолучитьОбъект(); МойОбъект.Наименование=МойОбъект.Наименование+"1"; МояФорма=МойОбъект.ПолучитьФорму(); МояФорма.Открыть(); Форма открывается в самом деле без звездочки и закрывается без запроса. НО! Смотрю в отладчике: МояФорма.ДокументОбъект.Модифицированность() = ИСТИНА МояФорма.Модифицированность = ИСТИНА |
|||
6
Roman Go
09.09.11
✎
10:50
|
(4) я эту модифицированность вставлял уже чуть ли не через каждую строчку кода, в надежде, что форма поведет себя так как будто она фодифицирована, но проблема в том, что она реально модифицирована
|
|||
7
Сергей Д
09.09.11
✎
10:53
|
Что обычная форма, что управляемая - одинаково.
|
|||
8
Сергей Д
12.09.11
✎
13:16
|
Провел еще один эксперимент. Вот код:
Процедура ПриНачалеРаботыСистемы() МойДокумент=Документы.ДокументыКонтрагентов.НайтиПоНомеру("000000001"); МойОбъект=МойДокумент.ПолучитьОбъект(); МойОбъект.Наименование=МойОбъект.Наименование+"АБВ"; МояФорма=МойОбъект.ПолучитьФорму(); // МояФорма.Модифицированность=истина; Сообщить("ПриНачалеРаботыСистемы"); Сообщить(МойОбъект.Модифицированность()); Сообщить(МояФорма.Модифицированность); МояФорма.Открыть(); КонецПроцедуры Модуль формы: Перем ФормаМодифицирована; Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Сообщить("ПередОткрытием"); Сообщить(ЭтотОбъект.Модифицированность()); Сообщить(ЭтаФорма.Модифицированность); ФормаМодифицирована=ЭтаФорма.Модифицированность; КонецПроцедуры Процедура ПриОткрытии() Сообщить("ПриОткрытии"); Сообщить(ЭтотОбъект.Модифицированность()); Сообщить(ЭтаФорма.Модифицированность); ЭтаФорма.Модифицированность=ФормаМодифицирована; КонецПроцедуры Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) Сообщить("ПередЗакрытием"); Сообщить(ЭтотОбъект.Модифицированность()); Сообщить(ЭтаФорма.Модифицированность); КонецПроцедуры При запуске получаем следующую последовательность сообщений: ПриНачалеРаботыСистемы Да Да ПередОткрытием Да Да ПриОткрытии Да Нет Т.е. при открытии формы признак ее (и только ее) модифицированности сбрасывается. И все встает на место, если перед открытием его запомнить, а при открытии - переприсвоить. |
|||
9
Defender aka LINN
12.09.11
✎
13:39
|
(8) Ну открывай не модально.
|
|||
10
Сергей Д
12.09.11
✎
13:44
|
(9) Так я и открываю не модально.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |