Имя: Пароль:
1C
1С v8
Версионированирование+хэш
,
0 shamashs
 
28.11.12
22:57
В самописку клиентскую добавил подсистему версионирования, все отлично хорошо, но как обычно есть несколько но.

Запись в регистре версий создается каждый раз при перезаписи объекта,  хотелось бы делать запись документа в регистр версий только если он изменен, каким образом делать запись с учетом того что Модифицированность() не работает потому, что ПриЗаписи подписка стандартная.
1 shamashs
 
28.11.12
22:58
плюсом к этому не хотелось бы выгружать сначала текущую версию+потом сравнивать ее с предидущей и если есть разница уничтожать это не логично и еще сильнее затормозит процесс проведения или записи документа для пользователя.
2 shamashs
 
28.11.12
22:58
Заранее спасибо за помощь!)
3 shamashs
 
28.11.12
23:01
Я подразумеваю, что надо внедрятся в подписку и проверять какой то реквизит источника. Источником является ДокументОбъект
4 shuhard
 
28.11.12
23:04
(3)[ надо внедрятся в подписку]
не человечески сложный процесс
5 Скай
 
28.11.12
23:05
XMLСтрока(Объект) => Хеш => Профит
6 H A D G E H O G s
 
28.11.12
23:05
(5) ВерсияДанных будет разная скорее всего.
7 shamashs
 
28.11.12
23:08
(6) Она каждый раз при записи разная копал в эту сторону.
(5) Сейчас посмотрю
8 Живой Ископаемый
 
28.11.12
23:09
2(5) и как ХМЛСтрока объекта будет меняться при изменении объекта?
9 Скай
 
28.11.12
23:10
(5) (8) не то написал. Через xml сериализовать объект, исключить версию данных, хешировать. Наверное.
10 Скай
 
28.11.12
23:11
11 Живой Ископаемый
 
28.11.12
23:11
2(9) а..
12 shamashs
 
28.11.12
23:34
(10) Идея неплоха. Но есть такой косяк в стандартной подсистеме версионированирование подписка идет в приЗаписиОбъекта, переделал на перед записью, и все полетело по приципу (10).

ВXML(Источник) = ВXML(Источник.Ссылка.ПолучитьОбъект())
13 shamashs
 
28.11.12
23:35
все спасибо, еще раз.
14 J_B
 
28.11.12
23:38
(0) а если сравнивать значения реквизитов Объекта (текущая версия) и Ссылки (старая версия)?