|
Автоматическая регистрация для обмена | ☑ | ||
---|---|---|---|---|
0
Aleksei_Pro
17.10.12
✎
15:57
|
Настраиваю обмен между 2 базами по COM соединению (УРБД). Выгрузка по правилам и загрузка по правилам. Вопрос: как реализовать, чтобы при загрузке в базу приемник загруженные элементы автоматически регистрировались для обратного обмена в базу источник.?
|
|||
1
Stim
17.10.12
✎
15:57
|
зачем? оО
|
|||
2
Stim
17.10.12
✎
15:58
|
это же будет непрерывный снежный ком
|
|||
3
Maxus43
17.10.12
✎
15:58
|
зачем вам коллизии?
|
|||
4
Aleksei_Pro
17.10.12
✎
16:02
|
Надо мне, штатными не сделать ни как?
|
|||
5
Stim
17.10.12
✎
16:02
|
можно, почему нет..
|
|||
6
AaNnDdRrEeYy
17.10.12
✎
16:02
|
как то так, но потом пожалееш
ПриЗаписи() Если ОбменДанными ТОгда ПланыОбмена.ЗарегистрироватьИзменения(Ссылка); конецесли; |
|||
7
Stim
17.10.12
✎
16:03
|
модуль плана обмена, процедура
<ПриПолученииДанныхОтПодчиненного> |
|||
8
Aleksei_Pro
17.10.12
✎
16:05
|
Это уже надо писать в обмене в базе приемнике?
|
|||
9
AaNnDdRrEeYy
17.10.12
✎
16:06
|
луче как в (7) в одном месте можно все данные обработать
|
|||
10
Aleksei_Pro
17.10.12
✎
16:07
|
(9) это в базе источник прописывается , правильно я понял?
|
|||
11
Stim
17.10.12
✎
16:08
|
(10) да
|
|||
12
Aleksei_Pro
17.10.12
✎
16:09
|
Спасибо
|
|||
13
AaNnDdRrEeYy
17.10.12
✎
16:09
|
(10)>> (0)чтобы при загрузке в базу приемник загруженные элементы автоматически регистрировались...
Наверно всетаки в приемнике. |
|||
14
AaNnDdRrEeYy
17.10.12
✎
16:10
|
хотя если подчиненная база залочена то какая разница
|
|||
15
Aleksei_Pro
17.10.12
✎
16:15
|
(14) если я в источнике это пропишу то при загрузке в приемник он не регистрирует.
|
|||
16
Aleksei_Pro
17.10.12
✎
16:18
|
Вот что просал в источнике :
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных,ПолучениеЭлемента,ОтправкаНазад) экспорт ПланыОбмена.ЗарегистрироватьИзменения(ЭтотОбъект,ЭлементДанных); КонецПроцедуры Он даже не попадает при выгрузке сюда. |
|||
17
Aleksei_Pro
17.10.12
✎
16:20
|
Неправильно вопрос задал. Мне нужно чтобы при выгрузке из источника, выгруженные элементы в приемник автоматически регистрировались в приемнике.
|
|||
18
AaNnDdRrEeYy
17.10.12
✎
16:20
|
(17) потому что ПриПолученииДанных это загрузка
|
|||
19
AaNnDdRrEeYy
17.10.12
✎
16:21
|
и что значить
ПланыОбмена.ЗарегистрироватьИзменения(ЭтотОбъект,ЭлементДанных); наверно всетаки ПланыОбмена.ЗарегистрироватьИзменения(ЭлементДанных,ЭлементДанных); |
|||
20
AaNnDdRrEeYy
17.10.12
✎
16:22
|
(19) сори все правильно, параметры перепутал
|
|||
21
Aleksei_Pro
17.10.12
✎
16:22
|
а какая процедура будет?
|
|||
22
AaNnDdRrEeYy
17.10.12
✎
16:25
|
регистрация в базе снимается не при выгрузке а при загрузке, для всех регистраций - номер которых меньще или равен номеру в загружаемом файле.
при выгрузке бесполезно что то регистрировать т.к все равно записи и так все еще зарегистрированы |
|||
23
Aleksei_Pro
17.10.12
✎
16:27
|
ПриОтправкеДанныхПодчиненному
|
|||
24
Aleksei_Pro
17.10.12
✎
16:29
|
мне не надо снимать. Суть: есть база1 . Из нее по правилам выгружаю в базу2. Теперь мне нужно обратно в базу1 из базы2. Но обратно пойдет выгрузка если я зарегистрирую в базе2 элементы. А мне не надо руками их регистрировать, мне надо чтобы они при выгрузке из базы1 в базу2 автоматом регистрировались в базе2 ....
|
|||
25
Aleksei_Pro
17.10.12
✎
16:32
|
(24) а регистрировать в базе 2 надо те элементы, которые были выгружены из базы1.
|
|||
26
Aleksei_Pro
17.10.12
✎
16:39
|
Это реально реализовать при выгрузке? Да кстати обмены будут не только через COM но и через FTP. Я вижу пока тока 1 способ ( это в приемнике прописать в плане обмена)
|
|||
27
Aleksei_Pro
17.10.12
✎
17:53
|
В правилах у объекта написал в после загрузке:
Узел = ПланыОбмена.Полный.НайтиПоКоду("1"); ПланыОбмена.ЗарегистрироватьИзменения(Узел, Объект); в 1-ой базе узлы: код 1 - предопредеденный 2 - по которому выгружаю во 2-ой базе наборот Что то тоже не хочет. |
|||
28
Aleksei_Pro
18.10.12
✎
14:11
|
Что так не взлетит через правила?
|
|||
29
hhhh
18.10.12
✎
14:23
|
(25) а зачем регистрировать эти объекты? Они у вас пришли из базы 1. Зачем вы их обратно высылаете в базу 1, они же там есть?
|
|||
30
Aleksei_Pro
18.10.12
✎
14:25
|
Я обратно номер сформированного документа в базе 2 передаю в базу 1.
|
|||
31
hhhh
18.10.12
✎
14:28
|
(30) так сначала в базу 1 должно придти подтверждение, что все выгрузилось нормально. Пока это подтверждение не пришло, он ваши изменения не примет.
То есть вам нужно отправлять номер при следующем обмене. Про коллизии вам же уже сказали в (3) |
|||
32
Aleksei_Pro
18.10.12
✎
14:30
|
(31) Т.е никак вообще автоматом не сделать?
|
|||
33
Aleksei_Pro
18.10.12
✎
14:31
|
(31) Т.е правильно я понял даже если я напишу при загрузке данных в правилах, он не запишет изменения пока база 1 не получит ответ?
|
|||
34
hhhh
18.10.12
✎
14:33
|
(33) это я вам рассказал как в теории, а на практике, думаю вы всё проверите и нам выложите результат.
|
|||
35
Aleksei_Pro
18.10.12
✎
14:37
|
(34) ок
|
|||
36
AaNnDdRrEeYy
18.10.12
✎
14:44
|
(33)>>он не запишет изменения пока база 1 не получит ответ
интересно как база 2 узнает что база 1 получила ответ? правильно будет база 2 не очистит таблицу зарегистрированных изменений пока из базы 1 не придет ответ что она (база 1) получила эти изменения. почитай толстую книжку Радченко там все написано. |
|||
37
Aleksei_Pro
18.10.12
✎
15:07
|
(36) может объяснишь в 2 словах.
|
|||
38
AaNnDdRrEeYy
18.10.12
✎
15:10
|
(37)в двух словах
читай матчасть |
|||
39
Aleksei_Pro
18.10.12
✎
15:31
|
"база 2 не очистит таблицу зарегистрированных изменений пока из базы 1 не придет ответ что она (база 1) получила эти изменения." - это не понятно
|
|||
40
AaNnDdRrEeYy
18.10.12
✎
15:50
|
когда записываешь элемент справочника то в таблицу регистраций плана обмена добавляется строка
Узел СсылкаНаЭлементСпр NULL (Проверь зто консользю запросов) при выгрузке (ПланыОбменаНачатьЗапись()) эта строка модифицируется так Узел СсылкаНаЭлементСпр 10 (10 - это номер сообщения авто инкремент) при загрузке если в загружаемом файле номер сообщения 10 или больще то эта строка удаляется из таблицы цикл обмена закончен. |
|||
41
Aleksei_Pro
18.10.12
✎
16:12
|
Тогда не понятно как мне сделать это , как реализовать не знаю
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |