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

    −88

    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
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    // готовим выборку
    	ВыборкаПоСчетам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Счет" + ЧастьБаланса);
    	Пока ВыборкаПоСчетам.Следующий() Цикл
    		ВыборкаСбк1 = ВыборкаПоСчетам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "1");
    		Пока ВыборкаСбк1.Следующий() Цикл
    			ВыборкаСбк2 = ВыборкаСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "2");
    			Пока ВыборкаСбк2.Следующий() Цикл
    				ВыборкаСбк3 = ВыборкаСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + ЧастьБаланса + "3");
    				Пока ВыборкаСбк3.Следующий() Цикл
    					ВыборкаПоКоррСчетам = ВыборкаСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Счет" + КоррЧастьБаланса);
    					Пока ВыборкаПоКоррСчетам.Следующий() Цикл
    						ВыборкаКоррСбк1 = ВыборкаПоКоррСчетам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "1");
    						Пока ВыборкаКоррСбк1.Следующий() Цикл
    							ВыборкаКоррСбк2 = ВыборкаКоррСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "2");
    							Пока ВыборкаКоррСбк2.Следующий() Цикл
    								ВыборкаКоррСбк3 = ВыборкаКоррСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто" + КоррЧастьБаланса + "3");
    								Пока ВыборкаКоррСбк3.Следующий() Цикл
    									ВыборкаНалСчет = ВыборкаКоррСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "СчетКорректировок");
    									Пока ВыборкаНалСчет.Следующий() Цикл
    										ВыборкаНалСбк1 = ВыборкаНалСчет.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто1Корректировок");
    										Пока ВыборкаНалСбк1.Следующий() Цикл
    											ВыборкаНалСбк2 = ВыборкаНалСбк1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто2Корректировок");
    											Пока ВыборкаНалСбк2.Следующий() Цикл
    												ВыборкаНалСбк3 = ВыборкаНалСбк2.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Субконто3Корректировок");
    												Пока ВыборкаНалСбк3.Следующий() Цикл
    													ВыборкаСделок = ВыборкаНалСбк3.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сделка");
    													Пока ВыборкаСделок.Следующий() Цикл
    														ВыборкаДанных = ВыборкаСделок.Выбрать();
    														Если ВыборкаДанных.Следующий() Тогда
    															// Пара строк кода
    															Для Сч = 1 По 3 Цикл
    																Если ТипЗнч(ВыборкаДанных["Субконто" + ЧастьБаланса + Сч]) = Тип("СправочникСсылка.СтатьиЗатрат") Тогда
    																	// И тут еще пара строк кода
    																КонецЕсли;
    															КонецЦикла;
    														КонецЕсли;
    													КонецЦикла; // по сделкам
    												КонецЦикла; // по субконто3 корректировок
    											КонецЦикла; // по субконто2 корректировок
    										КонецЦикла; // по субконто1 корректировок
    									КонецЦикла; // по счетам корректировок
    								КонецЦикла; // по  корр субконто3
    							КонецЦикла; // по  корр субконто2
    						КонецЦикла; // по корр субконто1
    					КонецЦикла; // по корр счетам
    				КонецЦикла; // по субконто3
    			КонецЦикла; // по субконто2
    		КонецЦикла; // по субконто1
    	КонецЦикла; // по счетам

    Готовим выборку!

    Запостил: grandatlant, 27 Января 2016

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

    • // Почему бы и нет?
      FOR i=0 TO CommentsLimit STEP 1
      Ответить
    • NEXT i
      Ответить
    • а чё в 1с нет join'ов?
      Ответить
      • В 1C есть даже ком объект ODBC, не считая JOIN-ов.
        Но даже без них, там есть замечательная функция fetch, который позволит всё это в одну строчку записать.
        Ответить
        • >> а чё в 1с нет join'ов?
          > В 1C есть даже ком объект ODBC, не считая JOIN-ов.

          это было шутко.

          похожо я лопато написато забыло.
          Ответить
        • fetch - это по-русски как? не пойму что-то, о чём вы
          Ответить
    • зато комменты человек пишет
      Ответить
      • коменты добавил я когда пришлось разбираться и править ЭТО.
        А переписывать стремно было, ибо там какой-то стремный запрос перебирается, в котором происходит неведомая магия
        Ответить
    • Готовили выборку, а получилось дерьмо. Бывает.
      Ответить
    • Ахахахах! Блин) я ещё столько не видел никогда
      Ответить

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