1. 1C / Говнокод #12252

    −118

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Если (ЕстьНомен.НайтиЗначение(Док.Номенклатура) > 0)
    	ИЛИ (ЕстьНомен.НайтиЗначение(Док.Номенклатура.Родитель) > 0) 
    	ИЛИ (ЕстьНомен.НайтиЗначение(Док.Номенклатура.Родитель.Родитель) > 0) 
    	ИЛИ (ЕстьНомен.НайтиЗначение(Док.Номенклатура.Родитель.Родитель.Родитель) > 0) 
    	ИЛИ (ЕстьНомен.НайтиЗначение(Док.Номенклатура.Родитель.Родитель.Родитель.Родитель) > 0) 
    	ИЛИ (ЕстьНомен.НайтиЗначение(Док.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель) > 0) Тогда
    		ИтогоРМ = ИтогоРМ+Док.Сумма;
    КонецЕсли;

    ЕстьНомен - это элемент формы Список, т.е. код можно упростить до:

    Если ЕстьНомен.Принадлежит(Док.Номенклатура) =1 Тогда
    ИтогоРМ = ИтогоРМ+Док.Сумма;
    КонецЕсли;

    взято из конфигурации одного автодилера.

    Запостил: VladC, 06 Декабря 2012

    Комментарии (6) RSS

    • Док.Номенклатура.ПраПраПраПраПраДед
      Ответить
    • А чем такую фигню в запросе заменить?
      Ответить
      • текст запроса покажите
        Ответить
      • Условием "В Иерархии", например.
        Ответить
        • Не "В Иерархии", а "Только В Иерархии"
          Ответить
          • Позвольте поинтересоваться, а когда в языке запросов появилась конструкция "Только В Иерархии"? Существует условие "В Иерархии" и существует тип итогов "Только Иерархия".
            Ответить

    Добавить комментарий