Всем привет!
Ситуация следующая:
есть база-источник и база-приемник, между ними сделан односторонний обмен данными по правилам обмена, сделанными в конфигурации КД.
В обоих базах есть регистр сведений, он также должен в одностороннем порядке уходить из источника в приемник, но в приемнике у этого регистра есть один дополнительный реквизит (не измерение, а именно реквизит), который должен заполняться в только приемнике. В источнике этого реквизита у регистра нет, и не нужен он там.
Можно ли это реализовать средствами обмена, может как-то правила обмена настроить? Чтобы изменения регистра в источнике уходили в приемник, и при этом не затирали введенный в приемнике дополнительный реквизит регистра. Или в любом случае при обмене регистром сведений он полностью очищается по совокупности измерений?
Если так, то видимо придется двусторонний обмен делать, включив дополнительный реквизит регистра в источник.
Либо в приемнике выносить дополнительный реквизит из регистра в какую-то другую структуру (другой регистр).
(1) А уверены, что для регистров сведений можно такой обработчик прописать? Что-то мне кажется, только для агрегатных объектов это работает. Информации правда мало очень по этой теме...
Процедура ПередЗаписьюРегистровСведений(Источник, Отказ, Замещение) Экспорт
Если Источник.ОбменДанными.Загрузка Тогда
// колдуем над набором
КонецЕсли;
КонецПроцедуры
(4) Имеешь ввиду сделать подписку на событие перед записью регистра сведений?
И внутри проверять старый набор. Если реквизит в нем был заполнен, то после записи нового набора надо его как-то оставить. В этом направлении?
(6) Точно, совсем забыл, что в модуле регистра также доступно "ОбменДанными.Загрузка"
При этом при записи по каждой строке нового набора проверяю, был ли заполнен дополнительный реквизит в старом наборе. И если был, то переношу в новый набор.
Спасибо!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший