Обработка иерархии...

1. zxz79 02.10.17 13:43 Сейчас в теме
Здравствуйте.

Помогите пожалуйста с вопросом:
есть справочник номенклатура, в нем соответственно группы товаров в этих группах может быть множество подгрупп с номенклатурой. У группы или подгруппы можно задать %наценки по подразделению, но этот процент работает только на номенклатуру которая находится в этой группе, т.е. если у нас еще в этой группе есть несколько подгрупп то на наценка на эти подгруппы не распространяется хотя родитель та группа на которую я установил наценку.

Как сделать что бы наценка распространялось не только на номенклатуру в этой группе, но и + на все подгруппы с номенклатурой в этой группе? Понимаю что надо сделать выборку по иерархии, но как правильно сделать - не получается.
Благодарю за помощь!
Сам код обработки:

Процедура ЗагрузитьНаценки()   
   //Загрузка наценок
   Запрос=Новый Запрос("
   |ВЫБРАТЬ РАЗЛИЧНЫЕ
   |   Подразделения.Ссылка КАК Подразделение,
   |   Подразделения.Наименование КАК Наименование,
   |   Наценки.Статус,
        |   Наценки.НеПересчитыватьНаценку,
   |   Наценки.ПроцентНаценки КАК ПроцентНаценки,
   |   НаценкиГруппы.ПроцентНаценки КАК ПроцентНаценкиГруппы,
   |   Наценки.ДатаНачНепересчит
   |ИЗ
   |   Справочник.ПодразделенияКомпании КАК Подразделения
   |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаценкиПоПодразделениям КАК Наценки
   |   ПО Наценки.Номенклатура =&Номенклатура И Подразделения.Ссылка = Наценки.Подразделение 
   |     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаценкиПоПодразделениям КАК НаценкиГруппы
   |   ПО НаценкиГруппы.Номенклатура =&НоменклатураГруппа И Подразделения.Ссылка = НаценкиГруппы.Подразделение 
   |ГДЕ
   |   Подразделения.Ссылка<>&Основное
   |УПОРЯДОЧИТЬ ПО
   |   Наименование
   |");
   Запрос.УстановитьПараметр("Номенклатура",Ссылка);
   Запрос.УстановитьПараметр("НоменклатураГруппа",Ссылка.Родитель);
   Запрос.УстановитьПараметр("Основное",Справочники.ПодразделенияКомпании.ОсновноеПодразделение);
   Наценки=Запрос.Выполнить().Выгрузить();
КонецПроцедуры // ЗагрузитьНаценки()
Показать




Если ставлю так:

ПО НаценкиГруппы.Номенклатура В ИЕРАРХИИ (&НоменклатураГруппа) И Подразделения.Ссылка = НаценкиГруппы.Подразделение


То запрос срабатывает, но от обратного:
если я ставлю наценку на подгруппу то наценка проставляется вверх, т.е. на номенклатуру в этой подгруппе и на всю номенклатуру в группах родителей этой подгруппы, но вниз не идет, т.е. если у этой подгруппы есть еще под подгруппы то там наценка уже не ставится. Как сделать наоборот, что бы наценка проставлялась сверху вниз.
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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