Имя: Пароль:
1C
1С v8
Изменение всех подгрупп справочника при изменении реквизита группы
0 Double_Medved
 
22.01.13
21:39
Подскажите пожалуйста, вот такое дело: 1с8.2 УТ11, в форму группы справочника Номенклатура был добавлен реквизит "МаксимальнаяСкидка" - исходя из него потом рассчитываются всякие скидки - при пробитии например Крема Эйвон если у его группы, то есть Эйвон, МаксимальнаяСкидка такая-то, то то-то... Проблема в том, что у большинства групп куча подгрупп и т.д. Нужно при записи группы назначить МаксимальнуюСкидку и на все подгруппы и их подгруппы... Написал вот код, но он выбирает только подгруппы, а подгруппы подгрупп уже нет, подскажите пожалуйста:

Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
   Выборка = Справочники.Номенклатура.Выбрать(ТекущийОбъект.Ссылка,,,);
   Пока Выборка.Следующий() Цикл
       Если Выборка.ЭтоГруппа = 1 Тогда
           Об = Выборка.ПолучитьОбъект();
           Об.МаксимальнаяСкидка = ТекущийОбъект.МаксимальнаяСкидка;
           Об.Записать();
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры
1 Нуф-Нуф
 
22.01.13
21:44
гы. на собеседовании в связном была такая задача. только решение не через установку скидки вниз по иерархии.
2 Нуф-Нуф
 
22.01.13
21:46
Выборка.ЭтоГруппа = 1??? С 7ки только пришел чтоли?
3 DrShad
 
22.01.13
21:48
да и не нужно всем устанавливать - в запросе юзай в иерархии и будет тебе счастие
4 Double_Medved
 
22.01.13
21:57
Да не, надо его записать все-таки - у разных подгрупп одной группы могут быть разные МаксимальныеСкидки и т.д, и клиенты хотят видеть все... А насчет В ИЕРАРХИИ - это он выберет подгруппы подгрупп и т.д.? А как примерно тогда будет выглядеть запрос всех подгрупп которые в иерархии - с выбором только групп, элементы не нужны..
5 DrShad
 
22.01.13
21:59
(4) открою тебе тайну, только никому
есть такая штука как МАКСИМУМ() в запросах
6 Double_Medved
 
22.01.13
22:00
ВЫБРАТЬ
   Номенклатура.Код,
   Номенклатура.Наименование КАК Наименование,
   Номенклатура.ЗакупочнаяЦена
ИЗ
   Справочник.Номенклатура КАК Номенклатура

ГДЕ
   Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)

Как-то так? А как указать чтобы только группы выбирал?
7 DrShad
 
22.01.13
22:00
+(5) извини но запросы вместо ТС пишут тут другие люди и только за деньги
8 DrShad
 
22.01.13
22:01
ГДЕ
   Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
   И Номенклатура.ЭтоГруппа
9 Double_Medved
 
22.01.13
22:02
Пардон а что такое ТС?
10 Double_Medved
 
22.01.13
22:02
DrShad, спасибо за подсказку
11 DrShad
 
22.01.13
22:06
ТС - топик стартер, т.е. тот кто создал ветку - ты
12 Double_Medved
 
22.01.13
22:07
А ну спасибо за подсказку, но это же весьма простой запрос, за такое брать деньги.. Вообщем благодарю за помощь
13 НафНаф
 
22.01.13
22:10
маня в данном подходе всегда смущала одна вещь:
1. меняем данные у группы
2. меняем у подгруппы (или эелемента)
3. меняем снова у первой группы

каков е долен быть результат?
14 Double_Medved
 
22.01.13
22:26
Нуф-Нуф, в смысле мы меняем снова у первой группы? В идеале надо рекурсивно войти в подгруппы каждой группы и записать там МаксимальнуюСкидку. Я хотел просто подправить процедуру ПриЗаписи - там мы ставим МаксимальнуюСкидку и делаем Записать() - по идее тут снова вызовется ПриЗаписи() но уже у подгруппы.. Но что-то не прокатило, только у подгрупп заданной группы просавилось, у подгруп подгрупп - нет..
Основная теорема систематики: Новые системы плодят новые проблемы.