Прошу совета по обмену между идентичными ИБ.

1. Andrew189100 19 11.05.24 18:21 Сейчас в теме
Подскажите, как лучше подступить. Т. к. сам я не очень во всех этих обменах на теоретическом уровне)
Ситуация.
Есть РИБ, БП 3.0. Главный узел 3 организации. Подчиненные узлы, в каждом отдельная организация. Все типовое.
Но, обмен односторонний. В подчиненных узлах в плане обмена "По организации" переопределена процедура ПриОтправкеДанныхГлавному.
Процедура bm61_ПриОтправкеДанныхГлавному(ЭлементДанных, ОтправкаЭлемента)
	// Вставить содержимое обработчика.
	ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
КонецПроцедуры



Теперь клиенты хотят при выгрузке указывать период. Точнее, выгружать с какой-то конкретной даты.
Я им объясняю, что РИБ, как бы не для этого. Но... Очень хотят.
Первое, что пришло в голову, заимствовать форму обмена в расширение, добавить нужные реквизиты. И в процедуре ПриОтправкеДанныхПодчиненному проверять дату объекта, если она есть. Документы и регистры(может, что-то еще?). Ну и выгружать только нужные данные.
Но. Насколько такая идея жизнеспособна, особенно в перспективе. Вопрос... Это же уже будет, как бы и не РИБ). Может есть, какой-то более правильный путь? Понятно, что можно в КД создать план обмена и т. д. Но, как-то это очень трудоемко получается....
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 13.05.24 09:12 Сейчас в теме
(1)
Это же уже будет, как бы и не РИБ). Может есть, какой-то более правильный путь?
Все верно. Или РИБ или не РИБ И если клиенты хотят не РИБ, а именно этого они и хотят(ну не хотят все показывать в центральном узле), то надо делать в КД план обмена или использовать обмен для одинаковых конфигураций без плана обмена.
5. Andrew189100 19 15.05.24 11:10 Сейчас в теме
(2)
Они хотят, что бы было, как раньше, только с датой выгрузки ))). Само собой РИБ там или нет, их не интересует. Там и слов таких не знают. Важен конечный результат....
В принципе, отвязать не долго и настроить обмен. Конфигурации идентичные КД писать не придется...
3. Oldsad 13.05.24 09:35 Сейчас в теме
(1) А реквизит ДатаНачалаВыгрузкиДокументов чем не устраивает? Вроде как подходит под ваши требования.

Если все же нет, то можно внести изменения в подписку на события "<ИмяПланаОбмена>РегистрацияДокумента":

Если ОбменДаннымиСервер.ЭтоПодчиненныйУзелРИБ() Тогда
	Если <ВашиУсловия> Тогда
		Возврат;//не регистрируем изменения
	КонецЕсли;
КонецЕсли;


П.С. Естественно авторегистрация должна быть установлена "Запретить"
4. Andrew189100 19 15.05.24 11:07 Сейчас в теме
(3)

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


С регистрами бухгалтерии и накопления аналогично.
Проблема с регистрами сведений, т. к. регистратора может не быть....
И тут вопрос. Можно ли не выгружать РС, где отсутствует регистратор. Т. к. если выгружать без отбора, появятся битые ссылки....
6. Oldsad 16.05.24 02:44 Сейчас в теме
(4)
В РИБ нет "дата начала выгрузки", т. к., это РИБ

У меня есть. Возможно у вас древняя БСП или так настроен РИБ(без БСП).

Если пользователи могут произвольно менять период выгрузки документов, то возможно стоит сделать для них обработку, которая будет регистрировать документы за выбранный период?

И на мой взгляд зря вы пытаетесь что-то сделать в процедуре ПриОтправкеДанныхГлавному. Гораздо логичнее определить правила что и когда регистрировать, чем регистрировать все подряд, а потом пытаться понять, нужно это отправлять или нет.
7. Andrew189100 19 16.05.24 20:57 Сейчас в теме
(6)
Конфа типовая. БП. На поддержке. Регулярно обновляется... Снятие с поддержки для данной задачи. Это крайний и очень нежелательный вариант... При создании РИБ, и, тем более, синхронизации, возможности указать дату нет. Это противоречит самой идеологии РИБ. ИБ после синхронизации должны быть одинаковыми. Если РИБ по организации, тогда одинаковые в разрезе организаций.
Касаемо логики. Она разная бывает. К сожалению, правятся документы за прошлые периоды. Это обычная практика. Привязаться к дате не получится. Я объяснил почему. Ну, а всякие костыльные обработки. Это не серьезно. Решение должно быть законченным и прозрачным для конечного пользователя. Квалификация которого, скажу политкорректно, часто недостаточна....
8. novohatko 17.05.24 04:14 Сейчас в теме
Я бы примерно сделал так, как идея. Отменил авторегистрацию в обмене, вывел нужным людям выбор периода, этим периодом регистрировал данные к обмену. Ну и какую-нибудь сообщалку, о том что прошлые периоды были не выгружены.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот