|
Конвертация данных. Правила регистрации. | ☑ | ||
|---|---|---|---|---|
|
0
Oleg-and-reevich
19.08.15
✎
10:16
|
Доброго времени суток. Есть БП3.0 распределенная информационная база.
Корень, от него подчиненный узел, от подчиненного узла свой подчиненный узел. Из последнего подчиненного данные обратно не идут(в правилах регистрации прописано отказ = истина перед выгрузкой). В последний подчиненный узел тоже не все должны данные идти. Вопрос: как в обработчике условие прописать и что с чем сравнить? Попробовал так Если Приемник.ПланыОбмена.Полный.НайтиПоНаименованию("Склад") Тогда Отказ = Истина; КонецЕсли; Чушь, наверное. Подскажите пожалуйста, в каком направлении двигаться. |
|||
|
1
Oleg-and-reevich
20.08.15
✎
18:11
|
Если вдруг кому понадобится. В обработчике "После обработки" добавить следующий код, например:
Для Каждого Узел Из Получатели Цикл Если Узел.Наименование = "Склад" Тогда Отказ = Истина; КонецЕсли; КонецЦикла; Вообще здесь собственная невнимательность, плохо смотрел в информацию по обработчикам в конвертации данных. |
|||
|
2
Oleg-and-reevich
07.09.15
✎
09:17
|
То, что было описано выше не работает. Но нашел все-таки как решить. Чтобы к примеру перенести только один документ "Поступление" в обработчике "После обработки" всех документов пишем:
Для Каждого Узел Из Получатели Цикл Если Узел.Наименование = "ПодчиненныйУзел" Тогда Если НЕ ТипЗнч(Объект.Ссылка) = ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()) Тогда Массив = Новый Массив; Массив.Добавить(Получатели[Получатели.Найти(ПланыОбмена.Полный.НайтиПоНаименованию("Корень"))]); Получатели.Очистить(); Получатели.Добавить(Массив[0]); КонецЕсли; КонецЕсли; КонецЦикла; Чтобы данные регистров шли только по этому документу, в обработчике "После обработки" регистров пишем: Для Каждого Узел Из Получатели Цикл Если Узел.Наименование = "ПодчиненныйУзел" Тогда Если НЕ ТипЗнч(Объект.Отбор.Регистратор.Значение) = ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()) Тогда Массив = Новый Массив; Массив.Добавить(Получатели[Получатели.Найти(ПланыОбмена.Полный.НайтиПоНаименованию("Корень"))]); Получатели.Очистить(); Получатели.Добавить(Массив[0]); КонецЕсли; КонецЕсли; КонецЦикла; Есть стандартные процедуры, которые можно вызывать из обработчиков правил регистрации такие как "Сократить получателей", "Добавить получателей". Но они не сработали(возможно созданы не для таких целей). |
| Форум | Правила | Описание | Секции | Поиск |