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

    −134

    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
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    	
    ТекКвота = ДанныеСтроки.Ссылка;
    мЗапросДок = Новый Запрос;
    мЗапросДок.Текст = 
    "ВЫБРАТЬ
    |	ЕСТЬNULL(СУММА(СДотчетТовары.Количество), 0) КАК Количество
    |ИЗ
    |	Документ.СДотчет.Товары КАК СДотчетТовары
    |ГДЕ
    |	СДотчетТовары.Ссылка.Проведен = ИСТИНА
    |	И СДотчетТовары.КвотаОтчета = &Квота";			
    мЗапросДок.УстановитьПараметр("Квота",ТекКвота);
    			
    Выборка = мЗапросДок.Выполнить().Выбрать();
    Выборка.Следующий();
    ВДоке = Выборка.Количество;
    ОформлениеСтроки.Ячейки.СогласноСД.Значение = ?(ВДоке=0,"",ВДоке);
    мЗапросПОС = Новый Запрос;
    мЗапросПОС.Текст = 
    "ВЫБРАТЬ
    |	ЕСТЬNULL(СписаноПоПОСОбороты.КоличествоОборот, 0) КАК Количество
    |ИЗ
    |	РегистрНакопления.СписаноПоПОС.Обороты(, , , Квота = &Квота) КАК СписаноПоПОСОбороты";
    
    мЗапросПОС.УстановитьПараметр("Квота",ТекКвота);
    Выборка = мЗапросПОС.Выполнить().Выбрать();
    Выборка.Следующий();
    ВПОС = Выборка.Количество;
    ОформлениеСтроки.Ячейки.СогласноПОС.Значение = ?(ВПОС=0,"",ВПОС);
    			
    мЗапросРег = Новый Запрос;
    
    мЗапросРег.Текст = 
    "ВЫБРАТЬ
    |	ЕСТЬNULL(Квоты.КолВЗаказахПокупателя, 0) КАК КолВЗаказахПокупателя,
    |	ЕСТЬNULL(ЗаказПоставщику.КолВЗаказахПоставщику, 0) КАК КолВЗаказахПоставщику
    |ИЗ
    |	(ВЫБРАТЬ
    |		СУММА(ЕСТЬNULL(ЗаказПоставщикуТовары.Количество, 0)) КАК КолВЗаказахПоставщику
    |	ИЗ
    |		Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
    |	ГДЕ
    |		ЗаказПоставщикуТовары.КвотаЗаказа = &Квота) КАК ЗаказПоставщику,
    |	(ВЫБРАТЬ
    |		СУММА(ЕСТЬNULL(КвотыЗаказовПокупателейОстаткиИОбороты.КоличествоПриход, 0)) КАК КолВЗаказахПокупателя
    |	ИЗ
    |		РегистрНакопления.КвотыЗаказовПокупателей.ОстаткиИОбороты(
    |				,
    |				,
    |				,
    |				,
    |				Квота = &Квота
    |					И ВидКвоты = ЗНАЧЕНИЕ(Перечисление.ВидыКвот.ОтчетнаяКвота)) КАК КвотыЗаказовПокупателейОстаткиИОбороты) КАК Квоты";
    
    			
    мЗапросРег.УстановитьПараметр("Квота",ТекКвота);
    Выборка = мЗапросРег.Выполнить().Выбрать();
    ЕстьВыборка = Выборка.Следующий();
    КолВЗаказахПокупателя = ?(не ЕстьВыборка,0,Выборка.КолВЗаказахПокупателя);
    КолВЗаказахПоставщику = ?(не ЕстьВыборка,0,Выборка.КолВЗаказахПоставщику);
    
    ОформлениеСтроки.Ячейки.ВЗаказахПокупателя.Значение = КолВЗаказахПокупателя;
    ОформлениеСтроки.Ячейки.ВЗаказахПоставщику.Значение = КолВЗаказахПоставщику;
    
    КонецПроцедуры

    Чудный справочник, очень быстро открывается и прокручивается. Приходится ждать по 20 секунд)))

    Запостил: KingOfShit, 14 Января 2010

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

    • заебал свой проект кусками выкладывать, убейся, 1с вегда говно.
      Ответить
    • Мне 1С всегда поднимает настроение. Никакого желания разбирать код, просто весело читать этот русский =)

      Интересно, программерам на 1С удобно переключать язык для набора NULL и &?
      Ответить
      • Крайне неудобно.
        Помимо этого неудобство доставляет набор символа | при печати многострочных запросов.
        Ответить
        • Можно кнопочку в конфигураторе на панель модуля вывести. По умолчанию скрыта
          Ответить
      • Установите раскладку клавиатуры для 1Сника, на сайте Чистова есть.
        Ответить
      • +1 :p
        Ответить
      • & вводится альт-последовательностью Alt + Num 3 8
        Апостроф - альт 3 9
        А вот налл вводить - реально харит
        Ответить
    • меня просто бесит когда я вижу эту один-эсную охинею. подскажите, а чем обусловлено то что в 1С используется русский? типа тетки бугалтерши будут там что то кодить? для кого он вообще создан? я не про 1С, а про этот язык идиотский! несколько раз заставлял себя разобраться в написенном, срывался на третьей минуте.
      Ответить
      • Ну, в общем-то это с большего обусловленно ебанутостью рпоизводителя.
        Кстати, можно-то ведь и на рассово-верном английском писать.
        Ответить
        • тогда почему не пишут?
          Ответить
          • Заподло!!!. Им как индусам платят за кол. кода) а не качество.
            Ответить
            • Выбор языка при кодировании на языке 1С слабо влияет на количество кода: англоязычные конструкции такие же громоздкие как и русскоязычные.
              Ответить
            • Заебешся раскладку переключать с русскими названиями метаданных, которые легче хаваются хомячками-юзерами
              Ответить
          • Потому что раса не совпадает :-)
            Ответить
      • Использование русского языка обусловлено тем, что его используют. Язык 1С поддерживает двуязычное написание кода. То что кто-то пишет на русском - проблема пользователя, а не системы.

        Да, многие вещи в языке неудобны, но это не делает его идиотским. Свое предназначение он исполняет. Говнокод создают люди, а не язык. Если 95% программистов 1С пишут крайне плохой код, это значит что плох программист, а не язык. Мне приходилось встречать весьма хорошо спроектированный код на языке 1С.

        А то что вы из-за не можете разобраться в коде - очень жаль, что ваши эмоции перечеркивают ваши профессиональные навыки.
        Ответить
        • И да, поскольку предназначен для русского рынка, то в коде будет много русских слов - хоть бы литералов. А переключаться все время между русским и английским задалбывает.
          Может, поэтому?
          Ответить
    • показать все, что скрытоненавижу всех 1с-ников, они все быдлокодеры и мудаки НЕНАВИСТЬ!!!!111
      Ответить
    • показать все, что скрытоЗАЕБАЛИ СРАТЬ МНЕ В РИДЕР!
      Еще блять кто нить выложит такую хуйню отпишусь от гк нахуй
      Ответить
    • Да вы просто говноплёты. Не кодили на 1С ни разу и серите её. Для тех кто говном покрывается при переключении между раскладками создана специальная приблудина, которая встраивается в русскую раскладку и пресловутый символ | можно написать всего-лишь при помощи нажатия Alt+\ и ВСЁ!!!11 Это просто и привыкаешь к этому моментально. И читается язык очень просто! В чём разница при чтении кода на русском и английском? Да хоть на иврите! Если ты вкуриваешь синтаксис, то для тебя это не проблема.
      Ответить
    • Где здесь С++?
      Ответить
    • Прикольный код. Пробежаться по справочнику можно со скоростью 6 строк в минуту :-)
      За такое надо на доску позора вешать.
      Ответить
    • Говно лишь потому что на русском. Писать нужно на межнациональном - английском. 1С не единственный язык который может работать с русскими названиями переменных и функций. Но только на этом ебанутом языке пишут на русском все)
      Ответить
    • Вы все гандоны и мудаки, а 1С форева. :D
      Ответить
    • 1c говно
      Ответить
    • Ваoot все кто писал про 1с-педоразы
      Ответить
    • Ну хуле, ПриВыводеСтроки.... Классическая тупая ошибка. Она во всех языках присутствует.
      Ответить

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