Я постоянно имею дело с чужим кодом. В среднем раз в месяц ко мне приходит новый клиент со старой информационной системой, в которой поработали программисты 1С самых разных мастей, возрастов, квалификации, отношения к делу, чувства юмора и т.д. Ещё я постоянно работаю с молодыми программистами 1С - они учатся с нуля в моём отделе.

К чему я это... Будь я журналистом, сказал бы "у меня много источников". Как учёный - "нет недостатка в объектах исследования". Но я - лишь программист, поэтому повторю первое предложение этой статьи - я постоянно имею дело с чужим кодом.

Много лет назад, когда во мне горел юношеский абсолютизм, я реагировал на "плохой код" резко и негативно. Всё какие-то стандарты изучал и пропагандировал. В нашей среде стандартом код разработчиков из самой 1С обычно считается. А одна из высших оценок качества кода - если он не отличим от написанного вендором. Ну вот и я такой был.

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

Да, что ещё совершенно точно: при сильно изменившихся стандартах не сильно изменился результат, т.е. продукт :)

Так, отвлёкся... Переболел я "правильными стандартами", надеюсь больше мне это не грозит, пусть молодёжь тешится. И отношение моё к чужому коду сразу изменилось - он стал мне интересен. Как диалекты одного и того же языка, фольклор народов мира и, в конце концов, жизненные истории (да, в небольшом куске кода иногда целую историю увидеть можно).

Ну и коллекционировать эти куски кода начал. Чтобы не потерять - канал в телеге создал. Иногда там и мой код бывает, за который мне стыдно (порой).

Подумал, вдруг вам тоже будет интересно, и решил оформить в виде статьи самые интересные (на мой взгляд) примеры.

Человек решает задачу "Найти всех пользователей с определённым перечнем ролей". Зацените сбор результата в строку.
Человек решает задачу "Найти всех пользователей с определённым перечнем ролей".
Зацените сбор результата в строку.
Код из типовой ERP. Процедура вычитает одну таблицу из другой. Попробуйте по именам аргументов понять, кто откуда будет вычтен. Ну и насладитесь именами переменных внутри.
Код из типовой ERP. Процедура вычитает одну таблицу из другой. Попробуйте по именам аргументов понять, кто откуда будет вычтен.
Ну и насладитесь именами переменных внутри.
Стажёр решает задачу "посчитать количество цифр и английских букв в строке"
Стажёр решает задачу "посчитать количество цифр и английских букв в строке"
Тут прекрасно всё
Тут прекрасно всё
Первые доработки начинающих программистов почти неотличимы от сделанных на скорую руку
Первые доработки начинающих программистов почти неотличимы от сделанных на скорую руку
А это - топорное версионирование кода. Каждая следующая процедура - копия предыдущей, но с небольшими изменениями
А это - топорное версионирование кода. Каждая следующая процедура - копия предыдущей, но с небольшими изменениями
Не просто так, объяснение есть, но... Всё равно ведь забавно?
Не просто так, объяснение есть, но... Всё равно ведь забавно?
А тут видна история - условие дополнялось не сразу, и в результате через ИЛИ перечислено почти всё
А тут видна история - условие дополнялось не сразу, и в результате через ИЛИ перечислено почти всё
Прислал один из читателей канала
Прислал один из читателей канала
По легенде, этот код заменяет в заказах одну номенклатуру на другую
По легенде, этот код заменяет в заказах одну номенклатуру на другую
Тоже читатель прислал. Мораль: тут не всё понятно :)
Тоже читатель прислал. Мораль: тут не всё понятно :)
Видна история, судьбы? Я прям вижу - программисты сидят, ночь, оно не считается, НАДО ХОТЬ ЧТО-ТО СДЕЛАТЬ
Видна история, судьбы? Я прям вижу - программисты сидят, ночь, оно не считается, НАДО ХОТЬ ЧТО-ТО СДЕЛАТЬ
Гуманитарии в нашей профессии тоже встречаются. Я - один из них
Гуманитарии в нашей профессии тоже встречаются. Я - один из них
Это типовая отраслевая конфигурация. Запись документа внутри обработки проведения.Ну а кто без греха?
Это типовая отраслевая конфигурация. Запись документа внутри обработки проведения.
Ну а кто без греха?
Строка - надёжная, строка не подведёт
Строка - надёжная, строка не подведёт
Кому-то нравится справа налево писать. Отраслевая конфигурация
Кому-то нравится справа налево писать. Отраслевая конфигурация
Тут тоже не весь код понятен :)
Тут тоже не весь код понятен :)
Эффектно завёрнутый в универсальную функцию поиск по коду
Эффектно завёрнутый в универсальную функцию поиск по коду

Комментарии (175)


  1. Sadok
    08.01.2025 19:04

    ЕслиКонецЕсли.... гореть а аду создателям


    1. Squoworode
      08.01.2025 19:04

      А ведь для англоязычных программистов весь код так выглядит...


      1. Vsevo10d
        08.01.2025 19:04

        Кстати, всегда мучил вопрос, почему что-то (почти все) написанное на английском нормально воспринимается, а на русском это обычно кринж? Тексты песен, названия магазинов, модели машин и вооружений.

        Помню, еще подростком в каком-то фильме видел, как у персонажа на постельном белье были комиксные принты с молниями и написано "Thunder". Я тогда подумал, почему на английском это не выглядит глупо, ну ок, это глупо - но скорее даже по-детски, а вот одеяло с надписью ГРОЗА на русском выглядело бы не по-детски, а просто странно.


        1. CBET_TbMbI
          08.01.2025 19:04

          По-моему, это уже какие-то комплексы.

          И песни нормально воспринимаются, если они с нормальным текстом, а не набором случайных слов. На иностранном языке просто этот бред меньше заметен.

          И разные Искандеры, Торнадо и Мста воспринимаются не хуже Абрамсов.

          Москвич и Ока, может, воспринимается хуже Мерседеса и Тойоты, но тут уже виновато не название.

          А с тех пор, как я немного выучил английский, я не могу серьёзно воспринимать тупые названия типа "Head&Shoulders". Они хуже любой нашей Ромашки.


          1. ManulVRN
            08.01.2025 19:04

            Даже если хорошо, а не немного, знаешь английский, названия (компаний, брендов) все равно воспринимаются в первую очередь по благозвучности, а смысл остается где-то на заднем плане. А так-то, в книгах 1930-50-х годов названия иностранных компаний нередко переводили и выглядело довольно кринжово, типа "Всеобщая Электрическая" (General Electric, на всякий случай) или ''Международные бизнес-машины" (или, апофеоз, "Международные деловые машины").


            1. AlexMih
              08.01.2025 19:04

              HP Production - Лошадиная Сила Изделия.


              1. hard_sign
                08.01.2025 19:04

                Программа совместима с компьютерами, выпущенными Солнцем, Лошадиной силой и в декабре ©


                1. aldekotan
                  08.01.2025 19:04

                  Что-то не могу разгадать последнее... Sun, HP и..?


                  1. hard_sign
                    08.01.2025 19:04

                    Эх, молодёжь :)))

                    Digital Equipment Corporation, сокращённо DEC. Скорее всего, в документе идёт речь о линейке серверов Alpha.


                  1. Flying
                    08.01.2025 19:04

                    Вероятно DEC, создатели линейки PDP и VAX


                    1. hard_sign
                      08.01.2025 19:04

                      Вряд ли речь о PDP или VAX. Если программа совместима со всем этим богатством, то скорее всего, речь про Unix/RISC, т. е. применительно к Digital — Tru64/Alpha.


                      1. Flying
                        08.01.2025 19:04

                        Без сомнения вы правы, просто оригинальный вопрос был только про название, а не про продукцию DEC.