Имя: Пароль:
1C
1С v8
Модифицированность() объекта (управляемое приложение)
,
0 PsyTech
 
11.12.14
16:32
При открытии формы уже в ПриСозданииНаСервере объект модифицирован. Где до этого он может модифицироваться?
1 Garykom
 
гуру
11.12.14
16:36
(0) там в УФ с формами вообще все плохо в плане последовательности событий для привыкших к обычным
2 Maxus43
 
11.12.14
16:37
ПриЧтенииНаСервере
3 Garykom
 
гуру
11.12.14
16:37
(1)+

Жизненный цикл формы объекта

Давайте рассмотрим, что происходит, когда мы открываем форму существующего элемента справочника.

На клиенте вызывается метод «ОткрытьФорму» или мы просто открываем форму из какого-либо списка справочника. Начинается серверный вызов
В памяти сервера создается новый СправочникОбъект, выполняется код модуля объекта (тот, что написан в самом низу модуля)
Данные объекта считываются из базы данных, присваиваются значения реквизитов, наполняются табличные части объекта СправочникОбъект.
В памяти сервера создается новая управляемая форма элемента
Вызывается событие формы ПриЧтенииНаСервере, куда передается свежесозданный СправочникОбъект в параметре ТекущийОбъект
Основной реквизит формы «Объект», тот, что в списке реквизитов выделен жирным шрифтом наполняется данными на основании данных СправочникОбъект. Здесь происходит обычное поэлементное присваивание свойствам объекта ДанныеФормы значений, записанных в одноименных свойствах объекта СправочникОбъект. По сути, происходит «ЗаполнитьЗначенияСвойств(ДанныеФормы, СправочникОбъект)
СправочникОбъект уничтожается. Все его данные стираются из памяти сервера.
Вызывается событие формы «ПриСозданииНаСервере», в котором мы получаем уже заполненные ДанныеФормы
Данные формы сериализуются и отправляются на клиента, где форма отображается пользователю

http://infostart.ru/public/198766/

(2) не факт
4 Maxus43
 
11.12.14
16:39
(3) не факт, но глянуть надо
5 PsyTech
 
11.12.14
16:40
Сверил программно каждый реквизит с БД - никаких изменений, а Модифицированность() = истина
6 PsyTech
 
11.12.14
16:41
(2) Там пусто и там он тоже уже модифицирован
7 Garykom
 
гуру
11.12.14
16:42
(5) а если поменяли на тоже самое?

я давным давно любил автоименования элементов в ПриОткрытии() загонять типа ФИО = Ф+" "+И" "+О
8 Defender aka LINN
 
11.12.14
16:43
А ничего страшного, что метод Модифицированность() есть только у объекта, которых в УФ не наблюдается, если их только самому не создавать?
9 PsyTech
 
11.12.14
16:45
Можно конечно своую ПроверитьМодифицированностьОбъекта(ИсточникОбъект) использовать, но хотелось бы понять - что там меняется
10 PsyTech
 
11.12.14
16:46
(8) РеквизитФормыВЗначение("Объект")
11 scanduta
 
11.12.14
16:57
Проверяй ЭтаФорма.Модифицированность
12 PsyTech
 
11.12.14
17:04
(11)Проверить нужно в модуле объекта
13 Defender aka LINN
 
11.12.14
17:32
(10) Этим ты создаешь новый экземпляр объекта, если что.
14 Garykom
 
гуру
11.12.14
17:46
(0) У Объекта не бывает модифицированности, в отличие от Формы Объекта

У него есть только новизна, т.е. записан он в базу или нет...
15 Defender aka LINN
 
11.12.14
21:20
(14) От это поворот! ©
16 Garykom
 
гуру
11.12.14
21:21
(15) а что такое модифицированность объекта в базе данных?

про время модификации = времени записи ничего не говорю
17 Defender aka LINN
 
11.12.14
21:31
(16) Так как я не знаю, что такое "объект в базе данных", то ничего ответить не могу.
Объект - он в памяти живет, а не в БД.
18 Garykom
 
гуру
11.12.14
21:43
(17) да согласен, неправильно выразился в (14)

если считать что объект это то что считано в память из бд то да есть модифицированность

СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
Модифицированность (Modified)
Синтаксис:

Модифицированность()
Возвращаемое значение:

Тип: Булево.
Истина - объект изменен; Ложь - в противном случае.
Описание:

Определяет, был ли изменен объект после считывания из базы данных.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Метод не позволяет определить, был ли изменен объект другими пользователями.