Доброго времени суток. Есть БП3.0 распределенная информационная база.
Корень, от него подчиненный узел, от подчиненного узла свой подчиненный узел. Из последнего подчиненного данные обратно не идут(в правилах регистрации прописано отказ = истина перед выгрузкой).
В последний подчиненный узел тоже не все должны данные идти. Вопрос: как в обработчике условие прописать и что с чем сравнить? Попробовал так
Если Приемник.ПланыОбмена.Полный.НайтиПоНаименованию("Склад") Тогда
Отказ = Истина;
КонецЕсли;
Чушь, наверное. Подскажите пожалуйста, в каком направлении двигаться.
То, что было описано выше не работает. Но нашел все-таки как решить. Чтобы к примеру перенести только один документ "Поступление" в обработчике "После обработки" всех документов пишем:
Для Каждого Узел Из Получатели Цикл
Если Узел.Наименование = "ПодчиненныйУзел" Тогда
Если НЕ ТипЗнч(Объект.Ссылка) = ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()) Тогда
Массив = Новый Массив;
Массив.Добавить(Получатели[Получатели.Найти(ПланыОбмена.Полный.НайтиПоНаименованию("Корень"))]);
Получатели.Очистить();
Получатели.Добавить(Массив[0]);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Чтобы данные регистров шли только по этому документу, в обработчике "После обработки" регистров пишем:
Для Каждого Узел Из Получатели Цикл
Если Узел.Наименование = "ПодчиненныйУзел" Тогда
Если НЕ ТипЗнч(Объект.Отбор.Регистратор.Значение) = ТипЗнч(Документы.ПоступлениеТоваровУслуг.ПустаяСсылка()) Тогда
Массив = Новый Массив;
Массив.Добавить(Получатели[Получатели.Найти(ПланыОбмена.Полный.НайтиПоНаименованию("Корень"))]);
Получатели.Очистить();
Получатели.Добавить(Массив[0]);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Есть стандартные процедуры, которые можно вызывать из обработчиков правил регистрации такие как "Сократить получателей", "Добавить получателей". Но они не сработали(возможно созданы не для таких целей).
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.