Имя: Пароль:
1C
1С v8
ВерсияДанных
, ,
0 kanalex
 
30.09.12
21:47
Народ, просветите, что есть поле ВерсияДанных в 8.2?
Теоретически понятно, но как с ним работать? Ято оно из себя представляет? Как его расшифровать?
Например, в подписке на события ПриЗаписи объекта, можно по нему понять новый объект или уже был записан?
1 Boleev v2
 
30.09.12
21:49
Это верися объекта, используется для реализации оптимистичной блокировки.
На уровне данных информация была всегда, просто в 8.2 к ней открыли доступ прикладному разработчику.
2 kanalex
 
30.09.12
22:05
Так можно как-то по нему определить состояние объекта? новый он или уже изменяется?
3 Ник второй
 
30.09.12
22:06
(2) По другому надо программировать. Опиши задачу и тебе помогут.
4 Aleksey
 
30.09.12
22:09
(2) Нет, максимум можно узнать что объект изменен
5 kanalex
 
30.09.12
22:11
(3) я описал задачу в корне темы...
Что оно из себя представляет? Как его расшифровать?
Например, в подписке на события ПриЗаписи объекта, можно по нему понять новый объект или уже был записан?
6 Живой Ископаемый
 
30.09.12
22:17
Если есть версия данных, то он уже записан. Все.
7 IamAlexy
 
30.09.12
22:20
(0) при каждой записи обновляется версия.
удобно использовать для синхронизации и понимания что объекты изменены без использованиять какихнить там планов обмена
8 kanalex
 
30.09.12
22:30
(6) хорошо.
Записан первый раз или уже обновлен?
9 Aleksey
 
30.09.12
22:31
(8) Каждая запись +1 к версии
10 Aleksey
 
30.09.12
22:32
При этом при создании может быть явно записан и несколько раз. Т.е. пользователь создал элемент нажал ОК и версияДанных будет равна к пример 3 (3 раза записан был)
11 Живой Ископаемый
 
30.09.12
22:54
2(8) Поставь эксперимент. Создать по 100 объектов 10 разных типов данных. Запиши каждый по 10 раз... Обменяйся с другой базой 3-мя разными способами. Расскажи как меняется при этом версия данных. Пожни славу и PROFIT.
12 rs_trade
 
30.09.12
23:02
(9)(10) там поле timestamp вообще то.
13 Aleksey
 
30.09.12
23:04
(12)  Из СП "Тип: Строка. Содержит текущую версию данных объекта."
14 Живой Ископаемый
 
30.09.12
23:05
2(12) для всех типов баз данных? ставил эксперименты?
15 Aleksey
 
30.09.12
23:06
Свойство "ВерсияОбъекта", содержащееся в данных формы, представляющих объектные типы (СправочникОбъект и т.п.) переименовано в "ВерсияДанных" и имеет тип Строка. В данной строке содержится Base64-представление версии объекта.
из описания к 8_2_8_195
16 rs_trade
 
30.09.12
23:12
(14) для всех типов это оперативная отметка времени.
17 rs_trade
 
30.09.12
23:15
(16) нет, не так. автоматом формируемые значения уникальные в пределах базы. как то так.
18 Boleev v2
 
30.09.12
23:22
еще раз.
ВерсияДанных  используется для оптимистической блокировки и никаких других функций на нее не возлагается.
19 rs_trade
 
30.09.12
23:23
(7) забавная получится синхронизация. бесконечная.
20 rs_trade
 
30.09.12
23:25
(18) не согласен. ВерсияДанных  используется для определения изменен объект в базе данных или нет. А где эта проверка используется дело десятое.
21 Aleksey
 
30.09.12
23:35
(19) Т.е. хранишь версию с момента последней синхронизации - версия изменилась - объект нужно выгружать и обновить версию
22 IamAlexy
 
30.09.12
23:38
(19) с чего бы?
если мне надо малой кровью например из одной базы в другую односторонне перегонять только измененные платежки например не, невзлетит?
23 rs_trade
 
30.09.12
23:41
(22) нет. это поле заполняется движком субд. у одного и того же объекта, в разных базах, будут всегда разные версии.
24 Aleksey
 
30.09.12
23:43
(22) А зачем мне версии "у одного и того же объекта, в разных базах"?
25 rs_trade
 
30.09.12
23:44
создал документ в базе, у него версия например 0x0000000000000CA6. перегнал его в другую базу, там у него версия 0x0000000000000C7B стала. в источнике документ перезаписали, версия стала 0x0000000000000CB1. как тут синхронизировать.
26 Фокусник
 
30.09.12
23:45
(25) как признак измененности
27 rs_trade
 
30.09.12
23:46
версия используется что бы проверять менялся ли объект в субд по отношению к этому же объекту в оперативной памяти.
28 rs_trade
 
30.09.12
23:47
(26) а что с чем сравнивать?
29 IamAlexy
 
30.09.12
23:50
(25) реально недогоняешь?

я во второй базе сделаю поле "версия_первой_базы" и буду с этим полем сравнивать версию документа.
при изменении обновлять документ и номер версии
30 Фокусник
 
30.09.12
23:55
(29) хотя реально мало знать факт перезаписи, хорошо бы точно определять, были ли значимые изменения или просто "записать" нажали, фактически ничего не изменив :)
31 Aleksey
 
30.09.12
23:55
(30) Иногда это "достаточная точность"
32 rs_trade
 
30.09.12
23:56
(29) и зачем этот огород городить когда есть планы обмена?
33 IamAlexy
 
30.09.12
23:59
(32) реально недоганяешь?

у меня есть адская самописка на УТ.
у меня есть 10 отдельных баз БП из которых эта самая УТ дергает разнесенные платежки.
БП все на поддержке.
УТ11 переписана наглухо (к примеру: в ней есть регистры бухгалтерии и план счетов с типовыми бухгалтерскими отчетами по плану счетов который не бухгалтерский)


как думаешь - для 15 баз планы обмена рисовать и поддерживать много легче чем написать обработку которая будет тупо реквизит сверять и если он различается перезаписывать объект.

а?
34 IamAlexy
 
30.09.12
23:59
(33) для 10 баз.. конечно же всего лишь и  только для 10
35 Фокусник
 
01.10.12
00:02
(31) а если базу перепровели - все документы перезаписались, а фактически нет изменений :)
Буквально неделю назад была такая задача от клиента: "хочу видеть список-отчет об измененных документах в прошлых периодах, но если комментарий у документа поменяли или просто перепровели, то его не включать в отчет" :)
36 IamAlexy
 
01.10.12
00:05
(35) на эту "жертву" можно пойти.
темболее что например в моем случае ограничение по периоду синхронизации задано.
то есть перепроведи всю базу - все равно ВСЕ платежки не лезут.

кстати чо там с планами обмена.. если я перепроведу всю базу, в РБД все объеты перейдут заново?
37 rs_trade
 
01.10.12
00:06
(33) да смысл то ясен. просо никогда не видел обменов на версии данных и сам бы делать не стал.
38 Фокусник
 
01.10.12
00:08
(36) тоже заново. Поэтому пришлось свой "слепок данных" делать и с ним сверять, ХЗ может лисапед получился :)
39 rs_trade
 
01.10.12
00:08
(36) как напишешь, так и перейдут. можно все, а можно не все.
40 Aleksey
 
01.10.12
00:08
(37) А что какая то принципиальная разница между планом и на версии? Никакой. Или в палын попадают только "измененые"? Или групповое перепроведение не влияет на план обменов?
41 rs_trade
 
01.10.12
00:14
(40) принципиальная разница если че огромная.
42 Aleksey
 
01.10.12
00:20
(41) Никакой
43 Aleksey
 
01.10.12
00:21
Дальше продолжать смысла нет, ибо холивар будет