Имя: Пароль:
1C
1С v8
Модифицированность()
,
0 conborath
 
15.09.11
23:30
Друзья, читаю в ПодпискеНаСобытие Перед записью Источник.Модифицированность(), и оно ВСЕГДА ИСТИНА.

Ничего не понимаю, данные не изменяются, как такое может быть?


1С 8.2 Управляемое Тонкий
1 zak555
 
15.09.11
23:37
у объекта есть метод Модифицированность() ?

я думал, что это для формы...
2 Fragster
 
гуру
15.09.11
23:39
в ПередЗаписью что-то присваивается реквизитам объекта?
3 conborath
 
15.09.11
23:48
Fragster
нет, проверял даже на Валюте, там всего-то 3 реквизита, в форме ничего не меняется. Модуль объекта абсолютно чист.
откуда берется модифицированность не понятно.
Перед запись в форме проверяю модифицированност формы = ЛОЖЬ.

Почитал тут http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=579177&print=0  ответа нет...
4 conborath
 
15.09.11
23:49
смысл проверки для версионирования. Выгружаю версию объекта в логи, если объект модифицирован.
Всегда выгружать нет желания.
5 GROOVY
 
15.09.11
23:54
При открытии что происходит. Визуально маркер модифицированности на форме есть?
6 Икогнито
 
15.09.11
23:54
(15) ПередЗаписью() - вдумайся в смысл.

У тебя есть ОбъектВФорме, ОбъектНаСервере. ОбъектВФорме модифицируется, а до ОбъектаНаСервере еще дело не дошло.

Копай ДанныеФормыВЗначение или что-то подобное.
7 Икогнито
 
15.09.11
23:55
(6) для (0), а не для (15)
8 conborath
 
16.09.11
00:01
Создал специально справочник вообще без реквизитов, объект все равно всегда модифицирован.
Похоже смотрит на версию объекта, а версия объекта всегда меняется при записи.

Жму, например, кнопку записать в форме 10 раз (в ней нет реквизитов вообще, одна кнока) и все 10 раз объект модифицирован.
9 Икогнито
 
16.09.11
00:03
(8) а как он может быть не модифицирован, если он записывается?
10 conborath
 
16.09.11
00:08
Есть процедура "ПередЗаписью()" и она срабатывает всегда когда жмешь кнопку записать, не важно менял ты что=то или нет.
Но как в ней понять модифицирован объект или нет?

Проблема возникает только если записывать объект из формы.
Видимо на форму создается объект и латформа уже считает его модифицированным, т.к. он обратно в базу идет с клиента...

Если просто программнополучить объект и записать его, то Модифицированность() = ЛОЖЬ, если нажать на кнопку в форме, то будет ИСТИНА (хотя форма не менялась)
11 Икогнито
 
16.09.11
00:10
(10) подписка на событие геде выполняется, как думаешь?

НаКлиенте, али НаСервере?
12 Икогнито
 
16.09.11
00:15
(10) млин, читай еще раз (9) по поводу третьего абзаца своего поста
13 Икогнито
 
16.09.11
00:16
И вообще, забудь про Модифицированность() и сформулирую, шо ты хошь получить на выходе?
14 conborath
 
16.09.11
00:19
Икогнито
Хватит глупости нести.

1)
Берем объект на сервере, суем его в форму на клиенте, открываем форму.
В форме ничего не меняем, ПередЗаписью() в форме МОдифифцированность формы = ЛОЖЬ, нигде нет никаких обработчиков, которые могли бы изменить объект. В подписке на события ПередЗаписью() сам объект МОдифицированность()=ИСТИНА (Почему, если ничего не менялось?)

2)
Берем программно получаем объект (ПолучитьОбъект()), записываем его и он в подписке на события ПередЗаписью Модифицированность = ЛОЖЬ.  => Вопрос тебе "а как он может быть не модифицирован, если он записывается?"

PS:
Что я хочу я уже написал, читай 4 = "смысл проверки для версионирования. Выгружаю версию объекта в логи, если объект модифицирован. Всегда выгружать нет желания."
15 Икогнито
 
16.09.11
00:28
(14) по ходу, чувак, глупости у тебя, а не у меня.
16 GROOVY
 
16.09.11
00:29
Форма управляемая?
17 conborath
 
16.09.11
00:31
GROOVY
Да
18 Икогнито
 
16.09.11
00:31
(14) ты ваще не догоняешь в своем п. 2

Я тебя спрашивал: "Как объект может быть не модифицирован, если ты в форме жмешь кнопку "ЗАПИСАТЬ"?
19 GROOVY
 
16.09.11
00:32
(17) Тогда слушай @Инкогнито он дело говорит.
20 GROOVY
 
16.09.11
00:33
Перед записью данные формы конвертируются в прикладной объект, и у него меняется реквизит ВерсияДанных. От сюда и модифицированность.
21 zak555
 
16.09.11
00:43
(16) у обычной нетак ?
22 GROOVY
 
16.09.11
00:46
(21) В 8.2 видимо ВерсияДанных полюбасу сменится. Надо затестить. Платформы нет под рукой.
23 Икогнито
 
16.09.11
00:47
(22) насколько я понял объяснения Гончарова, версия данных была и в 8.1, тока она была недоступна для разработчика.
24 GROOVY
 
16.09.11
00:51
(23) В таблицах? Была. Надо тестить, у меня куча мыслей пришла. :)
Завтра отпишусь.
25 zak555
 
16.09.11
01:11
(23) и подписки были ?
26 Икогнито
 
16.09.11
01:14
(25) в 8.0 их не было, в 8.1 они всю жизнь были.
27 zak555
 
16.09.11
01:22
ВерсияДанных

это для урбд изначально ?