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

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
Функция ЭтоБуква(Буква)
                Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm", Буква) > 0;
КонецФункции
 
Функция ЭтоЦифра(Буква)
 
                Возврат Найти("1234567890", Буква)>0;
 
КонецФункции // ЭтоЦифра()
 
Функция ЭтоБукваИлиЦифра(Символ)
 
                Возврат Найти("еоатинркулмДСвПдОсКцчыгзпбТНИьБФхВяРАЗЭйУЕГМЦжщЙШЩЫЛЯЧЬХЪЖЮЁёшъфэюQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890", Символ) > 0;
 
КонецФункции // ЭтоБукваИлиЦифра()

Из типовой конфигурации БГУ 2.0.
На первый взгляд реализация забавна :-) Но, в общем-то, это не является говнокодом: просмотрев в гугле различные "рейтинги букв", получил примерно то же самое.
Тем не менее, можно решить вопрос с помощью проверки кода символа.

Запостил: Voittamaton Voittamaton, (Updated )

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

  • 1C - полное говно; его разработчики в своё время скакали на моём баобабе, как кенгуру.
    Ответить
    • Судя по тому, сколько по количеству говнокода выкладывается на этом сайте, то 1С вовсе не говно.
      А если навскидку прикинуть, то гораздо больше выкладывается говнокода по С++, РНР, JAVA.

      И вообще, что за дибильная манера хаить тот или иной язык программирования? Или извилина настолько прямая, что не в силах понять, что каждый язык предназначет для своих целей. И нет такого универсального языка, который бы решал абсолютно все задачи.
      Ответить
      • Есть хуевый код и хуевые языки. И в любом языке есть свои недостатки. Почему бы их не обхаять?
        Ответить
        • То, что программисты бывають жопорукими, это я согласен, можно обхаять их код, чтобы другие не наступали на те же грабли.
          Но то что языки хуевые - абсолютно не согласен. Повторюсь, каждый язык решает определенные задачи. То что можно написать на 1С, никогда не напишешь, например, на PHP. И наоборот.
          Ответить
          • да нет, как раз есть именно хуевые языки
            - когда касается дело синтаксиса, выразительных средств, возможностей стандартной библиотеки, производительности
            Ответить
            • С библиотекой и возможностями - да, в одноэссе так всё и обстоит. Я лично знаю двух людей, которые на этом безобразии (даже на 7.7) писали "парсер" названий товаров с разными целями. Вот там творится такой угар содомии, что не будь я морально готов, мои глаза бы вытекли сразу.
              С математикой там тоже куча треша была. Вот, например, мой любимый баг в 7.7
              Если в запросе вызвать функцию, суммирующую значения, над вещественными числами (например, какие-то суммы), эта блядь приводит их к целочисленному. Помогает только магическое подёргивание в виде +1-1.
              Ответить
                  • Возможно, я ошибся, за давностью лет. Нашёл только один похожий баг по описанию. Там суть в том, что если в запросе участвуют ресурсы с разной точностью, точность автоматически усекается до меньшей. Но если явно в выражение ввести константу, то никаких манипуляций с точностью не будет. И, вроде как, плюс ноль не катит.
                    Ответить
                    • Это не баг, а кривизна рук программиста.
                      Нафига делать разные разряды? Если это цена, то например Сумма(15.2). Есть количество, то Сумма(15.3). И так применить ко всей логике.
                      Нужно понимать, что ты создаешь и как это будет работать.
                      Ответить
                      • Э, нет, батенька. Какое право эта тварь дрожащая смеет понижать точность там, где оную тварь не просят?
                        И, почему-то, висит в списке "топ десять известных багов".
                        Ответить
                        • > Какое право эта тварь дрожащая смеет понижать точность
                          Согласно правилам приближенных вычислений, или как они там правильно называются.

                          > И, почему-то, висит в списке "топ десять известных багов".
                          Потому что мозг народа еще со школы безнадежно проёбан калькуляторами и плавучкой, и почти никто уже не видит разницу между 1.00, 1.0 и просто 1.

                          P.S. Баг тут скорее в том, что прибавление единички какого-то хрена исправляет ситуацию.
                          Ответить
                          • Х.з., про это я не думал. По моим воззрениям, если у нас есть яблоко и половина яблока, у нас должно быть около полутора яблок, а не одно.
                            В любом случае, я готов допустить, что такая задумка вполне легальна. Но! Никаких предупреждений о таких граблях нет, ни в документации, нигде.
                            Ответить
                            • >есть яблоко и половина яблока, у нас должно быть около полутора яблок
                              Или хотя бы исключение/ворнинг о том что мы хотим сложить целое с дробным, а яблоки сплюсовать яблочным желе.

                              И чтобы годные целые яблоки не неявно не резались и не кастились в желе.
                              Ответить
                      • >Это не баг, а кривизна рук программиста.
                        Программиста, который делал 1С.
                        Неявные преобразования это всегда плохо (даже расширения иногда портят жизнь). И особенно понижение точности.

                        >Нафига делать разные разряды?
                        Могут совмещаться разные модули кода, а в них разная точность, мог быть рефакторинг и не везде поменяли. Примеров - миллион.
                        Ответить
    • Видимо, по той же причине, по которой идёт поиск по строке, а не по коду символа 🙂
      Ответить
    • потому, что два раза вызвать "Найти" дороже чем один.
      Ответить
    • Я поставил минус потому, что ткнул в пустое место в окне и оно оказалось минусом.
      Сайт только у меня глючит?
      Ответить

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

Где здесь C++, guest?!

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


    8