Бухгалтерия / Говнокод #11850 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 bytemdfab, (Updated )

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

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

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

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

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

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8