Имя: Пароль:
1C
 
Сформировать хеш документа
0 Злопчинский
 
31.03.10
22:34
Как сформировать хеш документа а) с учетом его положения на оси времени в пределах дня б) без учета его положения на оси времени в пределах дня?
.
какой "аппарат" использовать для создания хеша? Хеш - он вообще какого размера будет? где его хранить (пока справочник типа кортежа "документ-хеш")
.
что хочу: из тиса 7.7 выгружаю документы в бухию 7.7, в момент выгрузки фиксирую хеш выгруженного документа в базе ТиС. Потом, в любой момент, могу по хешу сравнить с текущим состоянием документа, для выгрузки измененных документов... как-то так...
.
кто может поделится соображениями по сабжевой задаче? стопудово делал кто-то...
1 Chai Nic
 
31.03.10
22:40
Ну ничего кроме цикла по метаданным в голову не приходит
2 Злопчинский
 
31.03.10
22:46
типа идем по метаданным по шапке и ТЧ
для каждого реквизита - получаем его внутренний идентификатор в базе, конкатенируем в строку с каким-нить разделителем (ну типа на всякий случай?), получаем длинную строку, сторим по ней хеш (чтоб поменьше был) - типа так?
3 Джинн
 
31.03.10
22:49
Чем идентификатор документа не устраивает, уникальный в пределах базы?
4 Chai Nic
 
31.03.10
22:50
(2) Ага. Я бы так сделал.
(3) Наверное тем, что идентификатор не является хэшем содержимого документа
5 Rie
 
31.03.10
22:52
(0) Сцепи нужные реквизиты документа в строку и возьми от неё MD5.
6 Попытка1С
 
31.03.10
22:53
А как ось времени будет задействована в реквизитах?
7 Злопчинский
 
31.03.10
23:01
(3) мну нужна не идентификация документа, а идентификация события изменения документа...
тут предложили просто в реквизит дока писать дату-время последней записи документа - но тут мне видится "много" дыр, да и все равно по умум перед записью этого реквизита надо проверить - был документ изменен или нет... в слишком многих местах придется на! править.. сформировать хеш и запомнить его мне кажется "выгоднее"...
8 Джинн
 
31.03.10
23:01
(3) А на фига ему содержимое? Достаточно при выгрузке в базе сбрасывать флаг выгрузки. А при модификации снова его поднимать. Все доки с взведенным флагом нужно перегружать. Зачем какие-то телодвижения непонятные совершать с хэшем?
9 Джинн
 
31.03.10
23:03
(7) Править всего лишь в одном месте - ПриЗаписи или в ОбработкаПроведения.
Хранить флаги для выгрузки в справочнике.
10 Злопчинский
 
31.03.10
23:08
(8) логично...
(7) призаписи - не проканает. могут производиться программные модификации.. за всем не уследишь или сам забудешь... ;-) А если доки по сути не проводятся, но их выгрузка нужна, то....
.
надо подумать...
11 Джинн
 
31.03.10
23:12
12 AlexNew
 
31.03.10
23:18
А зачем справочник? Регистр оборотов а-ля регистр сведений.
13 Джинн
 
31.03.10
23:21
(12) Да хрен редьки не слаще. Разницы практически никакой. Со справочником, IMHO, в чем-то удобнее работать. Но тут у каждого свой вкус.
14 AlexNew
 
31.03.10
23:23
А обработка проведения? Помеченные на удаление, или ждать пока 1SConst лопнет?
15 Джинн
 
31.03.10
23:28
А причем здесь 1SConst? Зачем периодику использовать? Тут история не нужна. Контролировать дубли можно и в "ручном" режиме.
16 Злопчинский
 
31.03.10
23:30
(11) а УРБД - регистрирует, когда документ перепроводится но при этом сам док не изменен?
17 AlexNew
 
31.03.10
23:31
(16) Думаю, что нет. Там еще и его движения надо контролировать.
18 Злопчинский
 
31.03.10
23:32
(17) движения доков - неактуальны...
19 AlexNew
 
31.03.10
23:34
А причем тогда УРБД? На SQL можно триггер навесить.
20 vde69
 
31.03.10
23:49
я Сабж выкладывал на инфостаре, но потом потер, единственое чего сраху - нужно держать 2 хеша
1 - хешь данных
2 - хешь структуры метаданных по которым был получен 1 (для контроля версий обьекта и следовательности актуальности первого хеша)
21 AlexWolf
 
01.04.10
00:02
(16) регистрирует
22 Дядя Васька
 
01.04.10
00:05
(16) Уриб просто добавляет док в выгрузку, не уточняя что и с ним делали. Задачу не пойму, что добиться-то хочешь?
23 Дядя Васька
 
01.04.10
00:08
+(22) В УРИБе система простая, все что ты так или иначе изменишь попадет в файл выгрузки, и уйдет в регионы. Что и где ты конкретно делал он не фиксирует.
24 AlexWolf
 
01.04.10
00:12
+(23) я бы сказал не "все что ты так или иначе изменишь", а все объекты, которые были перезаписаны или перепроведены, причем интерактивно или программно - без разницы, и не важно - менялся объект или нет.
25 Дядя Васька
 
01.04.10
00:17
(24) Ну а почему тогда "не сказал бы"? Когда мне надо было глюки подлечить я тупо писал обормотку где в цикле выбирались нужные доки, ну и Записать(), и все уходило в лучшем виде. Более того, отчетег накатал который кажет кому ушло, кому нет, могу поделиться.
26 AlexNew
 
01.04.10
00:23
(25) Как нужные доки фиксировались, отбирались (критерии)?
27 AlexWolf
 
01.04.10
00:24
я к тому, что справочники/доки можно не менять, просто записал, и всё, привет урбд, попал в выгрузку. просто уточнил, давай не будем из этого битву начинать :)))
28 Дядя Васька
 
01.04.10
00:24
(26) Не понял вопроса
29 AlexNew
 
01.04.10
00:26
Как посчитать док нужный, или нет?
30 Дядя Васька
 
01.04.10
00:26
+(29) У меня обормоткой отбирались косячные доки, ей же правились, а чтобы в регионы ушли писалось тупо Записать(), а нужный или нет, тут по ситуации
31 AlexWolf
 
01.04.10
00:27
(29) как вариант - отобрать только те объекты, которые созданы в периферийках, которые нужно поправить
32 Дядя Васька
 
01.04.10
00:31
Ща хочу в подмосковных МЧС атоматическое обновление сделать на базе уриба. Сами базы независимые, тупо чтобы мд обновлялся. Накатал конвертер который внутренние мд подгоняет под эталон, если допилить чтобы работал не только с бухией, но и с торговлей да зряплатой, имеет смысл на инфостарте вывалить, пока рабочая версия, не знаю, найду ли в себе силы херней заняться )
33 AlexNew
 
01.04.10
00:31
(30) Вот про тупо записать и вопрос?
34 Дядя Васька
 
01.04.10
00:32
(33) Так в чем вопрос-то? Если сделаешь по доку Записать() он попадет в выгрузку, да и все.
35 Дядя Васька
 
01.04.10
00:34
внутренние мд = внутренние ид конечно
36 AlexNew
 
01.04.10
00:35
(32) Я не про то, я понял тебе УРБД нужен просто как регистратор изменений. Это я понял, как распознать, что в нем (движения не нужны) не изменилось?
37 Дядя Васька
 
01.04.10
00:39
(36) Так енто он сам и делает, без бубнов. Что изменилось, то и выгрузит, хрен ли там отслеживать. До кого выгрузка дошла, а до кого нет, накатал отчетег который mlg парсит, в кармане ща валяется на флешке, могу подарить если надо, а чисто за урибом проверять смысла не вижу, это тупо чтобы проверить нажали на кнопку в филиале или нет.
38 AlexNew
 
01.04.10
00:41
Да он то хотел выгрузить то, что "изменилось" по его условиям. Т.е. если данные у накладной не изменились, а ее записали, она попасть не должна.
39 AlexWolf
 
01.04.10
00:42
http://www.softpoint.ru/article_id50.htm
"Ведение лога изменений в документах"

http://www.softpoint.ru/article_id141.htm
"FAQ по распределенными базами данных программы 1С: Предприятие 7.7"
40 Дядя Васька
 
01.04.10
00:43
(38) Да не, там скорее надо выгрузить что изменил обормоткой надо. Тупо Записать() и уйдет.
41 AlexWolf
 
01.04.10
00:45
+(39) есть еще ToySpy, но оно уже за деньги
42 Дядя Васька
 
01.04.10
00:45
+(40) Там еще какая-то хрень есть типа РегистрацияИзменений() или вроде того, но не юзал, не буду врать.
43 AlexWolf
 
01.04.10
00:47
(42) это применительно ко всему объекту, при записи или проведении, закинуть его в обмен или нет
44 AlexNew
 
01.04.10
00:50
(39) Разговор был про хеш, т.е. чтобы компактно сложить и вытащить только  то, что нужно. С минимальными затратами время и места.
45 AlexNew
 
01.04.10
00:51
В смысле по хешу определить, что передавать надо.
46 Холст
 
01.04.10
01:08
типа контрольная  сумма всех реквизитов дока ?
47 Aleksey_3
 
01.04.10
01:32
В простом случае Id док + VerStamp
48 Злопчинский
 
01.04.10
02:19
(47) О!!!!! вот тут вот как раз м может быть то что надо!
VerStamp - когда меняется?
49 Aleksey_3
 
01.04.10
03:12
(48) При каждой записи документа/справочника (без разнице как была инициализирована записать)
50 Злопчинский
 
01.04.10
04:38
(49) верстамп меняется в любом случае, даже если документ не изменялся? (я таки полагаю = да)
51 Злопчинский
 
01.04.10
04:38
так, и как теперь этот VerStamp вытянуть программно? - только прямым запросом?
52 КонецЦикла
 
01.04.10
05:11
Подсказка: служебная база УРБД только получатель
Работает не первый год для "нетипового" засасывания данных
53 Злопчинский
 
01.04.10
05:15
(52) спсб, выше уже озвучивали. это у меня будет вторым вариантом. думаю верстампа - хватит
54 КонецЦикла
 
01.04.10
05:31
Неудобно однако
Тут же все готовое лежит, тем более фактически обмена не будет, только накопление и очистка списка объектов :)
55 Злопчинский
 
01.04.10
05:37
можно и это подумать...
только вот вопрос: в комплексную поставку 7.7 УРБД - входит?
56 Злопчинский
 
01.04.10
05:40
(54) хм.. а вот при выгрузке инфы из базы в файл обмена - каким образом "потереть" инфу в урбд о выгруженных объектах...? само же - не потрется - придется извращаться?
57 vde69
 
01.04.10
08:41
запостил на всякий случай http://infostart.ru/public/68432/
58 Mikeware
 
01.04.10
08:43
(56) Выложу в понедельник на инфостарт.
59 Ёпрст
 
гуру
01.04.10
08:45
МОД-ом можно еще всё делать сразу.. и регистрировать изменения и обмен с бухией..
60 Ёпрст
 
гуру
01.04.10
08:46
(56) делете в табличке и  всё..
61 Mikeware
 
01.04.10
08:46
(59) кстати, да...
62 Ёпрст
 
гуру
01.04.10
08:47
+59 кого не устраивает МОД-овская регистрация изменений, лепят гибрид - регистрируют урибом, выгружают МОД-ом..
63 Ёпрст
 
гуру
01.04.10
08:52
Блин.. на кубани ветку почитал..
Чебур решил всех достать сегодня :)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.