Имя: Пароль:
1C
1С v8
1С 8.2 Планы обмена (регистрация изменений)
,
0 radiks
 
08.08.13
15:23
Есть ПланОбмена (РБД). Настроет так, чтобы изменения в справочнике, сделанные в периферийной базе, не принимались и периферийной базе отправлялись обратно текущие данные.

При изменении реквизитасправочника в периферийной базе вручную - все нормально отрабатывает (измененное значение не принимается и обратно отправляется текущее значение реквизита)

Но, если в распределенке реквизит изменили, например, документом, то данные в центре перезаписываются данными из распределенки.

Как это побороть???
1 Нууф-Нууф
 
08.08.13
15:28
потому что из ПБ приходит не только измененный элемент справочника, но и документ, который его изменил. и вполне возможно при записи этого документа в ЦБ - выполняются действия аналогично записи в ПБ - изменяется реквизит элемента справочника.
2 radiks
 
08.08.13
15:32
Наверное так оно и есть. Спасибо за наводку :)
3 radiks
 
08.08.13
15:37
А как тогда отловить, что проводящийся документ пришел из ПБ?
4 radiks
 
08.08.13
15:38
Обрабатывать ПриЗаписи() в модуле плана обмена?
5 Нууф-Нууф
 
08.08.13
15:40
просто тот кусок который изменяет справочник призаписи исключай таким кодом:
Если Источик.ОбменДанными.Загрузка Тогда
6 Нууф-Нууф
 
08.08.13
15:40
не в модуле плана обмена, а в модуле самого документа
7 radiks
 
08.08.13
15:49
В какой процедуре? Т.к. выдается ошибка "Переменная не определена - Источник".
8 radiks
 
08.08.13
15:55
Все работает. Нужно просто Если ОбменДанными.Загрузка Тогда
Спасибо!
9 Нууф-Нууф
 
08.08.13
15:55
в той где ты изменяешь справочник. Источник - это в случае если процедура вызывается через подписку. если процедура призаписи непосредствено в модуле документа, то "Источник." не нужен
10 radiks
 
08.08.13
15:58
Понятно. Спасибо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший