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

    −123

    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
    Функция   СтрокаБезПробелов(sP,lenP= Неопределено) Экспорт
    	
    // убрать пробелы (на самом деле, символы 160) в строке sP
    // (после преобразования числа в cтроку)
    // если нужно - дописать пробелов спереди до длины lenP
    
     s_ = СтрЗаменить(Строка(sP),Символ(160),"");
     
     Если lenP>0 Тогда
          l_ = СтрДлина(s_);
    	  Если l_<lenP Тогда
    		   j = lenP-l_;
    		   Если j=1 Тогда
    			    s_ = " "+s_;
    		   Иначе	   
    		    Если j=2 Тогда
    			     s_ = "  "+s_;
    		    Иначе	   
    		     Если j=3 Тогда
    			      s_ = "   "+s_;
    		     Иначе	   
    		      Если j=4 Тогда
    			       s_ = "    "+s_;
    		      Иначе	   
    		       Если j=5 Тогда
    			        s_ = "     "+s_;
    		       Иначе	   
    		        Если j=6 Тогда
    			         s_ = "      "+s_;
    		        Иначе	   
    		         Если j=7 Тогда
    			          s_ = "       "+s_;
    		         Иначе	   
    		          Если j=8 Тогда
    			           s_ = "        "+s_;
    		          Иначе	   
                      КонецЕсли;
                     КонецЕсли;
                    КонецЕсли;
                   КонецЕсли;
                  КонецЕсли;
                 КонецЕсли;
                КонецЕсли;
               КонецЕсли;
          КонецЕсли;
     КонецЕсли;
      
     Возврат s_;
    КонецФункции

    Вот такая замена функции Формат нашлась в исходниках от одного из внедренцев.

    Запостил: bytemdfab, 01 Октября 2012

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

    • Много "Если - КонецЕсли" несколько усложняет чтение :-)
      Ответить
    • >s_
      >l_
      >j = lenP-l_;
      жуткое говно
      Ответить
      • И да, почему переменные не кириллицей? Неправославный код.
        Ответить
    • Ужасно, просто ужасно. Надеюсь, ведущие нули он тоже будет дописывать ручками. Для этого можно даже сделать ещё одну функцию.
      Ответить
      • Зачем ещё одну? В эту передавать, что делать - добавить пробелы или ведущие нули.
        Ответить
        • У него в этом же модуле 6 или 7 функций поиска в таблице значений. НайтиЗначение1(), НайтиЗначение2() и т.д. Отличаются только набором передаваемых параметров. Поверьте - для нулей у него тоже отдельная функция найдется.
          Ответить
          • а 1С ООП не может ? класс запилить и расширять его для пробелов для 0
            Ответить
            • > класс запилить и расширять его для пробелов для 0
              Да у вас же джава головного мозга.

              Функции с параметром символДляЗаполнения уже не достаточно?
              Ответить
              • Все гораздо проще. В 1с есть фукнция Формат(), которая среди прочего преобразовывает число в строку по заданному шаблону.
                Ответить
                • > В 1с есть фукнция Формат()
                  Так это мануал открывать ;)
                  Ответить
            • В семёрке для этого пилили костыли. В восьмёрке не видел.
              Там еле-еле добавили несколько более-менее нормальных коллекций, а тут - объекты.
              Ответить
    • В 1С так не хватает междометий и частиц :( вот на сколько богаче был бы язык, если бы в нем можно было бы просто по контексту добавлять нужные междометия, чуть по-больше синономов для ключевых слов, таких как Однако, АЕсли, НеИначе. Как замечательно выглядела бы конструкция:
      Если А Тогда Б
        Иначе, Если В Тогда Г,
        Не Иначе Д!
      Ответить
      • АЕсли = try?
        Ответить
        • ДаКакЖеТак = catch

          Вообще, как-то изобретатели языка совсем без огонька подошли к задаче. Например, вместо Возврат, гораздо лучше было бы писать Верни. И по смыслу ближе, и бухгалтерам веселее жить было бы.
          Ответить
          • >Верни
            Чтение этого кода начало бы их угнетать, особенно, если не они написали этот код.
            Ответить
            • Функция ДлинаСтроки(с)
                  Верни, верни СтрДлина(с), сука;
              КонецФункции;
              Ответить
              • я правильно понимаю, что здесь есть инструкция для выключения встроеного глюкогенератора и контроль исключений?
                Ответить
    • Блин, я думал такие конструкции только в сказках...

      Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
      | ХозрасчетныйОборотыДтКт.СчетДт,
      | ХозрасчетныйОборотыДтКт.СчетКт,
      | ВЫБОР
      | КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Код = ""69.01""
      | ТОГДА ""ФСС""
      | ИНАЧЕ ВЫБОР
      | КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Код = ""69.03.1""
      | ТОГДА ""ФФОМС""
      | ИНАЧЕ ВЫБОР
      | КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Код = ""69.03.2""
      | ТОГДА ""ТФОМС""
      | ИНАЧЕ ВЫБОР
      | КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Код = ""69.02.1""
      | ТОГДА ""ПФР""
      | ИНАЧЕ ВЫБОР
      | КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Код = ""69.02.2""
      | ТОГДА ""ПФРНакопительная""
      | ИНАЧЕ ВЫБОР
      | КОГДА ХозрасчетныйОборотыДтКт.СчетКт.Код = ""69.11""
      | ТОГДА ""ФСС_НС_ПЗ""
      | КОНЕЦ
      | КОНЕЦ
      | КОНЕЦ
      | КОНЕЦ
      | КОНЕЦ
      | КОНЕЦ КАК Налог,
      Ответить
    • vanished
      Ответить

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