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

    −122

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    ВЫБРАТЬ
    	ПродажиОбороты.Номенклатура КАК Номенклатура,
    	ВЫРАЗИТЬ(ПродажиОбороты.СтоимостьОборот / ВложенныйЗапрос.Курс КАК ЧИСЛО(15, 2)) КАК Сумма,
    	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель, &ПустаяНоменклатура) КАК Родитель1,
    	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель.Родитель, &ПустаяНоменклатура) КАК Родитель2,
    	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель, &ПустаяНоменклатура) КАК Родитель3,
    	ЕСТЬNULL(ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель, &ПустаяНоменклатура) КАК Родитель4,
    	Контрагенты.Контрагент.Ссылка КАК Контрагент,
    	Контрагенты.Контрагент._г_Код1С КАК КодПартнера,
    1 КАК Колво
    ИЗ
    	(ВЫБРАТЬ
    		СРЕДНЕЕ(КурсыВалют.Курс) КАК Курс
    	ИЗ
    		РегистрСведений.КурсыВалют КАК КурсыВалют
    	ГДЕ
    		КурсыВалют.Период МЕЖДУ &НачалоПериода И &КонецПериода
    		И КурсыВалют.Валюта = ЗНАЧЕНИЕ(Справочник.Валюты._г_Валюта_Доллар)) КАК ВложенныйЗапрос,
    	(ВЫБРАТЬ
    		Контрагенты.Ссылка КАК Контрагент
    	ИЗ             
    		Справочник.Контрагенты КАК Контрагенты
    	ГДЕ
    		Контрагенты.Ссылка В(&СписокКонтрагентов)) КАК Контрагенты
    		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(
    				&НачалоПериода,
    				&КонецПериода,
    				Регистратор,
    				Номенклатура В ИЕРАРХИИ (&ГруппыНоменклатуры)
    					И ДоговорКонтрагента.Владелец В (&СписокКонтрагентов)) КАК ПродажиОбороты 
    		ПО Контрагенты.Контрагент = ПродажиОбороты.ДоговорКонтрагента.Владелец
    ИТОГИ
    	СУММА(Сумма),
    	СУММА(Колво)
    ПО
    	Контрагент,
    	Номенклатура,
    	ЗаказПокупателя

    Вот я даже ХЗ, что они пытались сделать.

    Запостил: kovyl2404, 03 Сентября 2012

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

    • .Родитель.Родитель.Родитель.Родитель
      Ответить
      • Это я только потом глянул код, который обрабатывает выборку из этого запроса. Вот там уж натуральное говно.
        Ответить
    • Номенклатура КАК Номенклатура, что докопались ;)
      Ответить
    • >ЕСТЬNULL
      на NULL рука не поднялась
      Ответить
    • Кхм, не силен в гов^Wэтом диалекте SQL, но

      > ПО
      > Контрагент,
      > Номенклатура,
      > ЗаказПокупателя

      разве поле ЗаказПокупателя не должно быть в выборке? Я его вообще не нахожу.
      Ответить
      • Да я ХЗ. Даже не проверял это говно на работоспособность. Проще было с нуля написать все, что надо.
        Ответить
      • Построитель запроса схавал - после обработки выдал: ПродажиОбороты.ЗаказПокупателя.
        Ответить
    • когда я читаю сорцы на 1С, я думаю, что я уже попал в ад.
      Ответить
      • Конечно! Сорцы на Delphi / C++ куда понятнее, епт...
        Ответить
    • Что пытаются сделать:
      Обороты суммы по продажам за период делятся на средний курс доллара за этот же период... Изврат, в общем... Считать будет шустро, но не факт что корректно.
      К чему тут вложенный запрос по контрагентам - непонятно, можно же использовать владельца договора из регистра продажи.
      Ответить
    • Контрагенты.Контрагент._г_Код1С КАК КодПартнера

      честно же указано, что 1С код это Г
      Ответить

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