Имя: Пароль:
1C
1C 7.7
v7: Схема работы УРБД. Подтверждение загрузки
,
0 1Сергей
 
11.02.14
11:59
http://1c911.by/stati_1s/statya-struktura-tablic-urbd-urib-1s-77.htm

При изменении объекта данные записываются в таблицу 1SUPDTS. В таблице появляется только строк, сколько баз получит этот объект. До момента обмена идентификатор сессии не заполняется. В процессе обмена в таблице 1SUPDTS заполняется идентификатор сессии обмена (для каждой базы свой) и появляются соответствующие записи в таблице 1SDWNLDS о новых сессиях обмена (считывается максимальное значение поля DWNLDID). Далее система ожидает подтверждения о принятии пакета. При получении подтверждения об обработке пакета данные о текущей и предыдущих подтвежденных сессиях удаляются из таблиц 1SDWNLDS (входящие и исходящие пакеты с признаком подтверждения) и 1SUPDTS (записи с определенным идентификатором сессии). Обработанный входящий пакет записывается в таблицу 1SDWNLDS и ему назначается признак "A". Таким образом обеспечивается гарантированная передача объектов, т.к. в случае потери пакета объекты передаются повторно. Механизм хоть редко и дает сбои, но является очень надежным инструментом обмена.

Объясните, пожалуйста, насчет поля pendant combien de ACKNOWL таблицы 1SDWNLDS.
Написано, что оно заполняется когда приходит подтверждение о загрузке. И тут же, написано, оно удаляется. Эм... Это как? почему тогда у меня есть строки с заполненным этим полем?
1 1Сергей
 
11.02.14
12:00
"pendant combien de" - не читать, случайно скопипастилось :)
2 1Сергей
 
11.02.14
12:46
подскажите, знающие люди
3 1Сергей
 
11.02.14
15:03
немного прояснилось.

1. При изменении Объекта (Документ, Справочник, etc) добавляются записи в 1SUPDTS для каждой базы.
2. При выгрузке обновления в файл, в 1SDWNLDS делается запись о сессии выгрузки. во всех объектах готовых к выгрузке появится ИД сессии выгрузки в 1SUPDTS
3. При загрузке обновления из другой базы, в 1SUPDTS удаляются записи по текущей сессии. Записывается новая сессия со значением A в колонке ACKNOWL.

При следующей выгрузке (как мне кажется) отправляется информация о том, что высланный ранее пакет принят (Тот, что с признаком А в ACKNOWL), и только при принятии следующего обновления эта сессия удаляется. Кажись так
4 FN
 
11.02.14
15:08
вот и поговорил с умным человеком :-)
зачем изучаешь урбд?
5 1Сергей
 
11.02.14
15:10
(4) пишу средство для управления выгрузками, с возможностью убирать из выгрузки объекты вручную
6 FN
 
11.02.14
15:11
тогда лучше их сразу не добавлять в апдейтс
7 Ёпрст
 
11.02.14
15:13
+6 или тупа вырезай их оттуда, или.. сам добавляй нужное..
ежели скуль - триггер можно повешать на эту табличку.
8 1Сергей
 
11.02.14
15:14
(6) для этого, видимо, есть средства. Но, у меня аллергия на dll.

ЗЫ РегистрацияИзменения(0) я в курсе
9 Mikeware
 
11.02.14
15:14
(6) удалять проще.
10 Ёпрст
 
11.02.14
15:15
(8) гы.. ну через ado удаляй/инсёрти..
11 Ёпрст
 
11.02.14
15:15
или через xbase
12 Mikeware
 
11.02.14
15:15
(11) а индексы?
13 1Сергей
 
11.02.14
15:16
(10) так и делаю
14 Ёпрст
 
11.02.14
15:16
(12)ну, при удалении на них можно забить
:)
15 FN
 
11.02.14
15:17
я тригер на жорнал лепил на центральной базе, в базах миграция место+центр. могу поделиться
16 1Сергей
 
11.02.14
15:20
(15) та, не. не надо. Я универсальное средство делаю. Типа, перепровел по запарке документ 2000-древнего года. И думаешь "Мля, в регионах на серваках вторые пни стоят! Они итоги будут сутками пересчитывать!". Открываешь моё чудесное средство, находишь эти документы и удаляешь из выгрузки. непринуждённо
17 FN
 
11.02.14
15:29
(9) зависит от сценария. например 20 баз и нужно передать из базы 7 в базу 13 документ. тут проще добавить, чем удалять
18 Mikeware
 
11.02.14
15:30
(16) тогда тебе действительно "лучше добавлять"
19 Mikeware
 
11.02.14
15:30
(17) согласен.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.