|
Проблема при синхронизации баз |
☑ |
0
happysan
02.08.11
✎
12:12
|
Идёт регулярный обмен двух базах по документу одного вида по правилам обмена он-лайн по плану обмена. Но вот возникла проблема следующего характера: В базе источнике проставлен начальный статус дока, этот статус попадает в приёмник, потом после оплаты статус в приёмнике меняется на "Оплачен" к примеру, но эти изменения ещё не попали в базу источник, как бывает так , что источник по новой затирает статус в приёмнике на исходный. как лучше выйти из такой ситуации?
|
|
1
happysan
02.08.11
✎
12:17
|
просьба подкинуть идею...очень надо
|
|
2
borik
02.08.11
✎
12:22
|
Как вариант на период пока док-т рассматривается в базе получателе - блокировать изменения в базе источнике.
|
|
3
Kreont
02.08.11
✎
12:26
|
Логика подсказывает что такая ситуация не должна быть, или проверь после выгрузки док.из источника, случаем никто тот док в источнике не пере-сохранял/проводил?
|
|
4
happysan
02.08.11
✎
12:42
|
Решил поправить правила обмена ПослеЗагрузки, буду проверять на связь с документом платёжки, если есть платёжка статус не перезатирать:
Если ОбъектНайден Тогда
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ПлатежноеПоручение.Ссылка
|ИЗ
| Документ.ПлатежноеПоручение КАК ПлатежноеПоручение
|ГДЕ
| ПлатежноеПоручение.ЗаявкаРДС = &ТекЗаявка";
Запрос.УстановитьПараметр("ТекЗаявка", Ссылка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Количество() > 0 Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
|
|
5
happysan
02.08.11
✎
12:47
|
а вообще мысль такая закрадывается, после выгрузки регистрация изменений по узлу удаляется и док грузится с новым статусом в другую базу, там в свою очередь док перезаписывается и автоматом регистрируются изменения и так по цепочке, получается если в коде это не пресечь, то так и буде кругворот постоянный этого дока?
|
|