Корректировка типового плана обмена РИБ #574315


#0 by Loummax
Подскажите начинающему, можно ли в типовой план обмена "по организации" воткнуть отбор по периоду, обойдясь малой кровью (в конфигурировании не сильно разбираюсь)? Играюсь на конфигурации "Бухгалтерия 8.2" Изначально задача была выгружать в такую же конфигурацию данные только по одной организации. А теперь оказалось, что надо еще "не выгружать документы, которые уже выгружены", даже если в них в главном узле внесли изменения.
#1 by Kreont
Можно, вроде в 2-3 строки кода можно вложиться, через подписки ...ДляОбменаПоОрганизации Только смысл от такой репликации никак не пойму :(
#2 by Kreont
И да кстати удобно смотреть что выгружается и попадает в обмен через: Операции - Планы обмена - ПО Организации и потом вверху "мониторчик" -> Зарегистрированные изменения
#3 by Loummax
Kreont, спасибо! Буду попробовать. смысл - получить чистую базу без лишней информации. Ну, там бухгалтер что-то удаляет, что-то изменяет. Я, честно говоря, не вникал во все тонкости ее задумки.
#4 by Фрэнки
Если изменения в документы уже вносят в главном узле, то задачу надо ставить несколько иначе - документы, существующие в главном узле должны защищаться от записи при получении данных от подчиненного, даже если в подчиненных узлах вносились какие-то изменения. Если задачу ставить в таком ключе, то в модуль объекта план обмена ПоОрганизации нужно дописывать предопределенную процедуру ПриПолученииДанныхОтПодчиненного. Шаблон требуемой в этом случае писанины можно увидеть в том же модуле - там есть процедуры ПриОтправкеДанныхПодчиненному, ПриОтправкеДанныхГлавному... Может быть и при отправке данных главному можно выявить, что период данных надо отсекать. Текст модулей достаточной прозрачный на мой взгляд.
#5 by Loummax
Френки, из подчиненного узла данные не переносятся вообще (односторонний обмен). Переносятся только квитанции (по-моему это так называется). Изменения вносятся в обоих узлах. Задача состоит в том, чтобы объекты, один раз выгруженные из главного узла, больше не выгружались. Быть может задача решается не отбором по периоду документа, а еще проще?
#6 by Loummax
*ФрЭнки, сорри.
#7 by Фрэнки
Да все норм :) Сейчас посмотрю еще разок на план обмена мож какая дельная мысль появится
#8 by Kreont
В обмен/выгрузку надо тогда фильтровать только новые созданные документы
#9 by Фрэнки
так... если смотреть именно по документам, то у них у всех авторегистрация выключена и регистрация в обмен происходит конкретно по подписке на события. Вот тут бы отслеживать является документ новым или нет. И тогда, если документ попал регистрацию только когда он новый, то даже при дополнительной перезаписи ДО обмена - регистрация не слетает и он будет выгружен. Вроде бы так можно. А с другой стороны, не факт, что каждая отправка пакета подчиненному узлу будет выполнена на стороне подчиненного узла и там никто не сбросит состояние в ноль по всем этим объектам, выполнив восстановление базы из архивной копии... Т.е. придется искать выход из ситуаций с полным отсутствием объектов в подчиненной базе при наличии отметок в главном узле, что инфа уже когда-то была передана. Не знаю насколько убедительна вся эта моя писанина, но смысл надеюсь понятен, что риски такого подхода есть. Оптимальный выход вижу в добавлении предопределенной процедуры в модуль плана обмена ПриПолученииДанныхОтГлавного При этом не использовать транзакции и проверять объекты - когда объект уже существует, то при попытке обработке данных об этом объекте выставлять "Игнорировать"
#10 by Loummax
Спасибо! попробую и по результатам отпишусь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям