|
Не передавать данные из центральной базы РИБ | ☑ | ||
---|---|---|---|---|
0
factorasia
31.08.12
✎
13:21
|
Есть РИБ. В ней непериодический, независимый регистр сведений. Как сделать так, чтобы данные из распределенных баз все попадали в центр, а из центра не попадали в распределенные базы?
|
|||
1
Fish
31.08.12
✎
13:25
|
(0) В модуле плана обмена надо прописать в Процедуре ПриОтправкеДанныхПодчиненному пару строк.
|
|||
2
factorasia
31.08.12
✎
13:27
|
Каких?
|
|||
3
Fish
31.08.12
✎
13:29
|
(2) Например такую: ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
И почитай СП по этому поводу. |
|||
4
factorasia
31.08.12
✎
13:39
|
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
Сделал. Все равно уходят изменения ( |
|||
5
Fish
31.08.12
✎
13:44
|
(4) Тогда попробуй в процедуре ПриПолученииДанныхОтГлавного прописать
ПолучениеЭлемента = ПолучениеЭлементаДанных.Игнорировать; В общем экспериментируй, должно сработать. |
|||
6
Обработка
31.08.12
✎
13:50
|
Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента)
.... ИначеЕсли ИмяБазовогоТипа = "РегистрыСведений" Тогда далее определяем какой вид регистра если тот котрый нам нужен то ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; .... |
|||
7
Fish
31.08.12
✎
13:53
|
(6) Да, точно, невнимательно прочитал (0). Надо ещё тип проверять, если нужно чтобы какие-то данные уходили.
|
|||
8
Kashemir
31.08.12
✎
14:02
|
ПриОтправкеДанныхПодчиненному можно блокировать отправку. Но по хорошему надо изначально не регистрировать
|
|||
9
factorasia
03.09.12
✎
04:40
|
Делаю так:
Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза) Если ТипЗнч(ЭлементДанных) = Тип("РегистрСведенийНаборЗаписей.ИмяМоегоРегистраСведений") Тогда ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; КонецЕсли; КонецПроцедуры Данные все равно уходят. Делал еще так. Тот же результат (модуль набора записей регистра): Процедура ПередЗаписью(Отказ, Замещение) ЭтоЦентральныйУзел = (ПланыОбмена.ГлавныйУзел() = Неопределено); Если ЭтоЦентральныйУзел Тогда ОбменДанными.Получатели.АвтоЗаполнение = Ложь; ОбменДанными.Получатели.Очистить(); КонецЕсли; КонецПроцедуры |
|||
10
factorasia
03.09.12
✎
04:53
|
Только что попробовал отключить фильтр в процедуре
Процедура ПриОтправкеДанныхПодчиненному(ЭлементДанных, ОтправкаЭлемента, СозданиеНачальногоОбраза) ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; КонецПроцедуры Т.е., по идее, запретил вообще всю отправку. И, что вы думаете, данные по регистру все равно выгружаются. Регистр заговоренный какой-то... |
|||
11
dmpl
03.09.12
✎
08:24
|
(8) А что лучше - влезть в типовую для запрета регистрации кучи объектов или влезть в один модуль плана обмена, где игнорировать ненужные объекты (причем, возможно, по хитрым условиям решать, выгружать или нет)? А если надо еще и настройки на лету менять?
(10) Может план обмена не тот? При выгрузке до этих строк дело вообще доходит? |
|||
12
factorasia
03.09.12
✎
09:04
|
(11)Конечно.
ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; Сюда заходит. |
|||
13
dmpl
03.09.12
✎
09:26
|
(12) Что за конфигурация? Если посмотреть сформированное сообщение, то внутри объекты есть или нет?
|
|||
14
sergei123654
03.09.12
✎
09:31
|
При записи регистра сведений
Процедура РегистрацияИзменийРегистровДляПланаОбмена(ТекОбъект) ГлавныйУзел = ПланыОбмена.ГлавныйУзел(); Если ГлавныйУзел = Неопределено Тогда //Это главная база ПланОбмена = ПланыОбмена.ОбменСУдаленнымОфисом.Выбрать(); Пока ПланОбмена.Следующий() Цикл //В сам себя не отправляем Если ПланОбмена.Ссылка = ПланыОбмена.ОбменСУдаленнымОфисом.ЭтотУзел() тогда Продолжить; КонецЕсли; //Определяем соответсвует ли текущая организация объекта организации Плана обмена ОрганизацияОбъекта = ТекОбъект.Отбор.Регистратор.Значение.Организация; УзелПринимаетДанныеОбмена = ПланОбмена.ОрганизацииОбмена.Найти(ОрганизацияОбъекта, "Организация") <> Неопределено; //Если в текущий узел необходимо выгружать документы, то добавляем этот узел в ПОЛУЧАТЕЛЯ данных Если УзелПринимаетДанныеОбмена Тогда ТекОбъект.ОбменДанными.Получатели.Добавить(ПланОбмена.Ссылка); //Сообщить(" + " + ПланОбмена.Ссылка + " * " + ТекОбъект); КонецЕсли; //Сообщить("---" + ПланОбмена.Ссылка + " * " + ТекОбъект); //Если в текущий узел необходимо выгружать документы, то АвтоЗаполнение выставляем в истина ТекОбъект.ОбменДанными.Получатели.АвтоЗаполнение = УзелПринимаетДанныеОбмена; КонецЦикла; Иначе // Если подчиненная база(из подчиненной базы выгружаются все данные в Главный узел) Попытка ТекОбъект.ОбменДанными.Получатели.Добавить(ГлавныйУзел); Исключение КонецПопытки; КонецЕсли; КонецПроцедуры Процедура ПриЗаписиРегистровДляПлановОбменаПриЗаписи(Источник, Отказ, Замещение) Экспорт Если Источник.ОбменДанными.Получатели.АвтоЗаполнение И Не Источник.ОбменДанными.Загрузка Тогда РегистрацияИзменийРегистровДляПланаОбмена(Источник); КонецЕсли; КонецПроцедуры я так по организциям обмениваюсь... вроде все работает, куда надо туда и отправляется |
|||
15
Serg_1960
03.09.12
✎
09:57
|
"Регистр заговоренный какой-то" :) Имхо: укажите конфигурацию и релиз. Скорее всего обмен реализован "программно" в конфигурации и то, что вы пишите в событиях объекта - игнорируется обработкой обмена.
|
|||
16
Serg_1960
03.09.12
✎
10:16
|
(10) Перед проверкой "заговорённости" регистра (офф: прикольный термин :), надеюсь, вы не забыли удалить "предыдущую" регистрацию изменений? А то как то не ловко получается: процедура работает, новая регистрация - игнорируется, а в плане обмена - уже ранее зарегистрированое изменение :)
|
|||
17
dmpl
03.09.12
✎
10:19
|
(16) В ПриОтправкеДанныхПодчиненному() существующая регистрация до лампочки. Если безусловно стоит Игнорировать, то в сообщение для периферийной базы ничего не должно попасть.
|
|||
18
factorasia
03.09.12
✎
12:54
|
(13)УТ 10.3 (8.2) Регистр который не должен уходить в подчиненные узлы самописный. Объекты есть.
(14) Сделал как во фрагменте кода. Тот же результат. (15)(16)Сделал. Не помогло. |
|||
19
Skylark
03.09.12
✎
12:59
|
У объекта отменяем автоматическую регистрацию. Делаем подписку на событие при изменении объекта, в котором сами регистрируем изменения в плане обмена в нужном случае. Вот так будет православно, все остальное от лукавого.
|
|||
20
Шапокляк
03.09.12
✎
13:00
|
(12) ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать;
Возврат; // добавь попробуй А то есть подозрение, что после ОтправкаЭлемента = ОтправкаЭлементаДанных.Игнорировать; программа еще что-то проверяет и устанавливает ОтправкаЭлемента = ОтправкаЭлементаДанных.Авто; |
|||
21
sergei123654
03.09.12
✎
13:43
|
(18) Авторегистрация для данного регистра сведений Запретить поставили?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |