Имя: Пароль:
1C
1С v8
Проблема при синхронизации баз
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
а вообще мысль такая закрадывается, после выгрузки регистрация изменений по узлу удаляется и док грузится с новым статусом в другую базу, там в свою очередь док перезаписывается и автоматом регистрируются изменения и так по цепочке, получается если в коде это не пресечь, то так и буде кругворот постоянный этого дока?