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