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

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Если ПроверятьСкидкиРассчитаны И
            ИспользоватьАвтоматическиеСкидки И
            Не ДокументПродажи.СкидкиРассчитаны И
            ДокументПродажи.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда
        ПроверятьСкидкиРассчитаны = Истина;
    КонецЕсли;

    Управление торговлей (11-я редакция)

    Запостил: Argonavt, 04 Июня 2012

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

    • ЫЫЫЫ.... ЖЖошь!
      Ответить
    • Истина где-то рядом...
      Ответить
    • пиздец, уже от кириллического кода глаза слезятся
      Ответить
      • Поработайте часок в экселе. От всяких СЖПРОБЕЛЫ, ПСТР и ЛЕВСИМВ глаза истекают кровью гораздо быстрее...
        В 1с хотя бы слова не сокращают...
        Ответить
    • 1c - поставщик говнокода с 96-го года.
      Ответить
    • Я думаю, в 1С особой популярностью должны пользоваться имена переменных в которых латинские буквы выглядят как кирилличные, например ПpoвеpятьCкидкиPaccчитаны.
      Ответить
    • Всегда интересовал вопрос, насколько накладен вызов функции в 1с. Очень часто вместо использования функций пользуются китайским методом реиспользования кода через копи-пейст.
      Свежее. Надо было подсмотреть в одной конфигурации, как там выгрузка происходит. Конфигурация штриховская (от НТЦ "Штрих-М"), новая, как обещается.
      От увиденного кровавые слёзы.
      ЗначениеКода=Док.ПолучитьАтрибут(Атрибут).Код;
      Если (ВыбКонфигурации=1) и (Вид="Номенклатура") Тогда
      	Если СтрДлина(ЗначениеКода)=1 Тогда
      		ЗначениеКода="0000000000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=2 Тогда
      		ЗначениеКода="000000000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=3 Тогда
      		ЗначениеКода="00000000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=4 Тогда
      		ЗначениеКода="0000000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=5 Тогда	
      		ЗначениеКода="000000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=6 Тогда	
      		ЗначениеКода="00000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=7 Тогда	
      		ЗначениеКода="0000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=8 Тогда	
      		ЗначениеКода="000"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=9 Тогда	
      		ЗначениеКода="00"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=10 Тогда	
      		ЗначениеКода="0"+ЗначениеКода;
      	ИначеЕсли СтрДлина(ЗначениеКода)=11 Тогда	
      		ЗначениеКода=ЗначениеКода;
      	КонецЕсли; 
      КонецЕсли;
      Если (ВыбКонфигурации=1) и (Вид="Контрагенты") Тогда
      	Если СтрДлина(ЗначениеКода)=1 Тогда
      		ЗначениеКода="00000000"+ЗначениеКода;
      // ...

      И таких кусков - три-четыре. Пожалуй, на сегодня хватит копаться в этом дерьме.
      Ответить
      • весьма накладен, кстати. Как-то тестировал разные варианты получения названия месяца прописью из даты (кстати, Формат() - далеко не самый быстрый), так выяснилось, что вызов функции с 1 параметром, которая по Соответствию из 12 элементов вернет значение, занимает чуть ли не больше времени, чем собственно поиск по соответствию...
        Ответить
    • показать все, что скрытоВсем минусы! Всем добра!
      Ответить
    • поэзия....
      Ответить

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