Здесь я переработаю свой опыт взаимодействия с системами, включая 1С. Кроме того, я поделюсь своим личным опытом, который, хотя и необъективный, частично искаженный, но все же основан на 20-летнем опыте программирования. Я надеюсь, что мой опыт поможет кому-то получить новые идеи или просто будет интересен для чтения.

Как я начинал

Где-то лет в 19 после первого курса университета, зависая в онлайн-игрушке я осознал, что не хочу больше ходить на пары, ведь преподаватели дают скучную математику, а можно писать зоны для муда, я забил на обучение и с головой погрузился в мир онлайн игр. Очнулся я когда моя девушка забеременела и нужно было резко решать, где я буду зарабатывать деньги на жизнь 3х человек в съёмной квартире, единственным вариантом было, найти сложную стрессовую работу за много денег в моем городе, и после большого количества попыток и неудач, я попал на выигранный местным интегратором тендер, как стажер, я катался по всей республике в рейсовом автобусе, обучал людей пользоваться новой для меня программой, видел как действительно 1с помогает работать ускоряет процессы и с головой лет на 10 погрузился, в мир внедрения доработок, типовых конфигураций внешних печатных форм. запросов высоконагруженных баз данных, на десятках разных проектов частично совершенно не связанных с 1с, ну в общем путь многих людей, которые вкатились в айти со стороны 1с.

Попытки осознать окружающее.

Спустя 10 лет я впервые познакомился с альтернативным миром. Он существовал параллельно и почти не взаимодействовал с 1С. Там писали на иностранных языках программирования и создавали приложения для телефонов. Мир интернета был целиком связан с этим всем. Но для меня это выглядело, как мир мусульман для истинного православного. Но любопытство зрело и несколько спустя я как любопытный человек, написал пару веб-сервисов на PHP, которые что-то отдавали, хранили и аккумулировали для 1С. Я понял, что ничего невозможного нет. Но денег и потребности их зарабатывать никуда не делась, поэтому я все еще был обоими ногами в мире 1С.

Импульс к изменению и само изменение

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

И вот в какой-то момент я взял и ушел в самостоятельное плавание, уже не работая на какую-то одну компанию, а просто создав свою собственную галерку (наверное, даже плоскодонку) с несколькими джунами, но все еще в том же стеке.

Я добился уровня доходов, максимально возможного на текущем стеке, и понял, что чтобы дальше расти, мне надо уходить целиком в менеджмент. А менеджмент был не интересен мне на тот момент, ну или я не умел его правильно готовить.

Поэтому интерес к 1С сильно угас, и я записался на курсы JS, попросил друга научить меня JavaScript, он затащил меня на Upwork и дал первый толчок. Я работал с настоящим клиентом и делал настоящий продукт для человека, который не говорит на русском языке.

Конечно, это было говно, но это говно работало не тормозило и было сделано мной. Я ощутил тот же драйв, что и в самом начале карьеры, когда катался по республике, но теперь мой мир резко из кириллицы расширился многогранно.

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

Дорос там до синьора подвыгорел может даже пару раз, поработал с машинным обучением, осознав все принципы SOLID, выяснив, что темная тема — это удобство, созданное для разработчиков даже если она бесполезна, она сама по себе является фактом уважения.

Но я все еще получаю какую-то часть денег со своих 1С-ных клиентов, самых лояльных и самых сложных. И я живу в двух мирах, все еще добровольно.

Теперь перейдем к сути статьи, которая касается того, почему 1С не является лучшим выбором для разработчика, и почему компания не проявляет достаточного уважения к своим разработчикам.

Если мой предыдущий текст не был понятен, я постараюсь объяснить более ясно.

Спагетти код (я не буду приводить примеры)

Ну, для начала возьмем тот уровень говнокода, который поставляется "as is" и который постоянно ломает совместимость, вынуждая тратить на доработку и поддержку своих же доработок дополнительные ресурсы. Вместо легковесного кода мы видим нагромождение кода, понятного только самим разработчикам 1С, и с каждым годом конфигурации становятся все сложнее для поддержки. Я начинал с 7.7 версии и закончил на уровне УНФ (лучшее, что сделала 1С со времени УТ 10.3) + 1С Drive. Я внедрял зарубежную конфигурацию 1С Drive, и концепция того, что мы пишем код, который с каждым годом все сложнее поддерживать, не меняется. Мне достаточно легко работать, потому что обладаю бэкграундом, но чтобы вписать своих джунов на уровень понимания кода в типовых, с каждым годом тратится все больше и больше времени. Механизмы, созданные компанией 1С для облегчения труда разработчиков, требуют все более мощное аппаратное обеспечение. Все хвалившие БСП за ее универсальность, идите глубже и дальше, посмотрите уровень разработки и скорость работы программ, разработанных без нее, например, "Камин Зарплата", и насколько она быстрее и легковеснее и да, ее намного легче отлаживать, хотя потребность возникает крайне редко. Тот же 1С Drive, откуда выпилено все ненужное, весит в 10 раз меньше (да я знаю, что из-за драйверов, но сама цифра).

я есть и будет так”

Аз есмь царь, да будет так

1С придумала базовые классы и сказала сюда ходи сюда не ходи. И все, никакой возможности расширить, совместить, скомбинировать. Постоянно упираешься в то, что 100 кб хватит для всех и никаких изменений в лучшую сторону. Это было нормально для 7.7. Там была даже своя система ускорения самой 7.7: управляемые блокировки, 1С++ и Toysql, и другие отличные вещи, которые драйвили. Ты не был заперт платформой. Но с каждой новой версией платформы, как-то расширить функционал с помощью внешних компонент становилось все сложнее, а иногда и незаконно.

Конечно, платформа развивается, инструментов становится больше, и отличных таких, как СКД, расширений, мобильных клиентов итд, итп. Но это скорее попытка догнать убегающий поезд человеку на костылях, чем реальная попытка двигать отрасль вперед. Я не умаляю величия заложенного в логику УПП 1.2, УТ 10, Бух 2, 1С Drive, Рарус и во всех тех отличных конфигурациях, но все они сделаны на не уважающей их платформе. Если бы они были сделаны в виде веб-сервиса, мультиязычными и содержащими ту же логику, они бы действительно могли встать вровень с Яндексом. Сейчас я вижу только Контур, который пошел по этому пути, и они мне кажутся намного более перспективны, чем сама 1С.

Третий тезис, который частично перекликается с предыдущим, “закрытая система”

Мы живем в мире, и хотя этот мир открыл для нас все возможные границы, мир программирования продолжает развиваться. Но компания 1с упорством дебила решает продолжать поддерживать свои собственные системы хранения версий изменений вместо использования гита, например. Это только один пример. Если такое решение лучше и быстрее существующего, то, конечно, можно использовать его. Однако это не так.

Давайте напишем интерпретатор запросов SQL на русском языке вместо использования встроенного языка. И не делать его открытым скрывать всю логику сборки подзапросов, логику создания таблиц, логику построения индексов…

Давайте не будем добавлять возможность использовать внешние IDE (например, Vim) и говорят, что такой возможности нет. Однако можно было написать плагин вместо того, чтобы пытаться написать какое-то тормознутое говно на Eclipse. открыв структуру cf файла, выпустить девятую платформу наконец.

Вроде бы ничего такого, но с каждым обновлением конфигурации становится все толще и толще, компьютеры нужны все мощнее и мощнее, чтобы не беситься от тормозов управляемых приложений

Типовые конфигурации никто уже не пытается рефакторить, модули нагромождаются и нагромождаются, башня все выше и выше и уже не видно неба. (Единственные удачные попытки с унф и драйв).

Это как пытаться запустить кризис на Эльбрусе. Но в отличие от Эльбруса, вас же никто не запирает в мире программирования, а вот вы запираете все больше и больше людей на знание своей экосистемы и только ее. Человек становится однобоко профессионален и одновременно беззащитно предан вам.

И вот исходя из написанного сумбурного перечисления фактов выше, родилась идея ответить. Для этого мне даже не нужно писать ничего положительного о стандартном мире и 1С. Нужно просто провести параллель между миром 1С и миром обычного программирования, где ты можешь подключить любую библиотеку, написать любой базовый класс, унаследовать любой объект, запилить систему не хуже 1С, и она будет однозначно быстрее, чем любая типовая. Да это требует повышенной квалификации и открывает простор, как для говнокода, так и для развития.

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

Четвертый и последний: 1сники умные, но живут в золотой клетке. Обращение к коллегам.

Средний уровень программиста 1с не уступает, а во многом и превосходит уровень среднего веб разработчика всязи с тем, что 1сник рожден фулстаком проджектом и qa одновременно. И при переключении прошивки в нем уже есть все знания необходимые для того, чтобы птисать хороший код, подчеркну, что я описываю условного васю с 5 лет работы 1с.

Но уровень зарплат и продаж абсолютно разные. За ту же работу 1с программист создающий дашбоард руководителя, которым пользуются 2 пользователя получит 2 условных рубля, а программист создавший такой же дашбоард для 2000 пользователей получит 20 условных рублей и общественное признание.

Потому что решения реализуются быстро, вы просто используете готовые конструкции и получаете результат, но он тормозит, и им пользуются не 2000 человек, а 2. И вы быстро переходите к следующей задаче, не обрабатывая и не переваривая бэклог внутри себя, не воспитывая качество, а получая просто деньги. Да, со временем количество переходит в качество, но у меня ушло 10 лет. В обычной же разработке это происходит быстрее, потому что ты наглядно видишь, как влияет качество твоего кода на скорость работы пользователей. В 1С качество твоего кода сложно заметить на фоне типовых тормозов.

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

Критикуешь предлагай, Обращение к 1с

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

Тогда у вас есть шанс не превратиться в "галактику".

Открывать конфигуратор, вырезать все ненужное и наконец переписывать, переписывать и делать систему легковесной, такой, которая и привела вас к успеху,

Делать систему международной, изначально отказавшись от идеи, что каждый бухгалтер сможет зайти в конфигуратор и написать свою бухгалтерию..

Быть, наконец, инновационной компанией, тогда люди будут гордиться тем, что они 1Сники, а не чувствовать, что их считают программистами второго сорта. (очень не обосновано)

Делать открытые API, чтобы любой разработчик мог быстренько запилить сервис или виджет для взаимодействия с 1С, познакомится восхитится тому уважению, которое появится (моя вера) в их продуктах, и захочет еще по взаимодействовать.

В заключение: отпишу, что я глубоко благодарен компании 1с за то, что она воспитала во мне программиста и человека то, что я пишу эту статью это акт уважения к компании 1с.

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


  1. qrasik
    00.00.0000 00:00
    +1

    Ещё один оптимист средь нас :-)

    Если честно, не вижу смысла для 1С делать хоть что-то из того что вы тут описали. Можно ли всё это сделать лучше? Естественно. Но "какой именно" в этом экономический смысл?

    1С-ка удачно создала локальную монополию, платформу если угодно. То что куча кодеров залипла в этой их платформе, так для компании это плюс. Это для программистов это минус, но программисты как и любые другие пролетарии пролетают, когда перестают быть нужными.

    P.S. Кстати, а в чем проблема запустить "Кризис" на Эльбрусе? Эмулятор, вроде бы, допилен, игрушки запускаются. Ну разве что PCI-E там какой-то грустный, но так и игра не новая.


    1. shamash Автор
      00.00.0000 00:00

      ключевой довод, что оптимист не совсем верен, оптимизма у меня уже нет.

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

      Монополия не панацея, отток программистов из стека( а он продолжается) увеличение стоимости обслуживания приведет, к тому что разработка аналогичных продуктов не таких универсальных но разных зоопарковых станет выгодным делом.

      В этом и смысл статьи, объяснить, что если двигать в том направлении куда идет компания 1с, то приведет это к печальному концу.

      Ах ну и я не предвещаю конец света, я обозначаю риски


  1. stungnthumz
    00.00.0000 00:00

    А "караван" из заголовка - это про что?


    1. shamash Автор
      00.00.0000 00:00

      караван - в моей голове это образное представление компании 1с, с ее платформой и конфигурациями

       


  1. darkmon
    00.00.0000 00:00
    +5

    Как 1Сник со стажем в 20+ лет, скажу — всё так, спасибо за статью и ощущение, что я не одинок. В 1С есть масса преимуществ. В 7.7 они превалировали. Но сейчас недостатки перевешивают драматически:


    1. Клетка, отдельный мир. Весь ваш опыт будет нерелевантным, чтобы уйти в другие технологии хотя бы на уровне мидла.
    2. Собственные велосипеды. Причем они всегда хуже, чем общепринятые технологии.
    3. "Новая" IDE на базе уже мертвой Eclipse. Она ужасна. А старый конфигуратор просто бросили и не развивают. Мы сидим с плохим тулингом для разработки. Никаких VSCode или чего-то подобного.
    4. Внедрили асинхронные колбеки, когда весь мир уже перешел на async/await. В формах лапша из безумного количества колбеков с похожими названиями, разобраться в которых решительно невозможно. На них же построена БСП, которую ни понять (overengineering), ни отладить (из-за разрыва контекста нет пошаговой отладки).
    5. Сделали скриптовый язык со статической (!!!) типизацией, а платформа с тысячами модулей и зависимостями — остается с динамической. Смешно? Плакать хочется.
    6. Непрерывное внедрение фич, которые зачастую — костыли на уровне платформы. Что характерно — багов добавляется больше. О стабильности работы хотя бы на уровне 10-летней давности я уже забыл — падает регулярно и клиент и сервер.
    7. Обещали Community-версию платформы год назад. Выпустили тестовую версию. Она увешана кучей ограничений и при этом еженедельной отсылкой неких данных в 1С, на основании которых сама 1С может эту лицензию отозвать. Четких правил отзыва нет, всё зависит от "доброй воли" самой 1С. Вы понимаете всю пропасть между 1С и любой другой технологией?

    Доверие к адекватности вендора подорвано окончательно. Когда выяснилось, что из себя представляет Community версия — для меня это стало последней каплей. Они не способны меняться. Они были, есть и будут закрытыми, устаревшими и некачественными. Они будут отставать от рынка всё сильнее и сильнее и похоронят в своей клетке всех разработчиков, кто делал на них ставку.
    Поэтому я принял решение уйти из 1С.


    1. bumzilla
      00.00.0000 00:00

      Согласен, со всем. По-моему все дело в отсутствии конкурентов.


      1. shamash Автор
        00.00.0000 00:00

        конкуренты потихоньку грызут с разных сторон, такие как "мой склад" или контур. ammo crm, retailCRM и другие Если мой склад 1с уже купила с битриксом, то контур пока остался независим


    1. Honomer
      00.00.0000 00:00

      Асинки в платформе давно появились.


      1. darkmon
        00.00.0000 00:00
        +1

        Асинхронность в виде колбеков пришла в 1С в 2013. Недостатки известны были всем, кроме фирмы 1С, видимо. Даже .Net уже перешел к тому времени на псевдосинхронность. Подзадержался только js.
        Недавно, в 2020, в 1С наконец-то добавили псевдосинхронность. Теперь подождем еще лет 10, пока лапша из колбеков в БСП и типовых конфигурациях будет переписана.
        Таким образом, временной лаг по сравнению с мэйнстримом составляет 5...15 лет.


      1. shamash Автор
        00.00.0000 00:00

        да?, можно запустить 17 процессов(хотя бы) 1с, которые будут делать 17 запросов, а потом собирать результат в один, и этот функционал был давно без костылей в виде сбора данных регламентными заданиям. И при это не вызвать взаимоблокировку?


    1. E_Pirozhkov
      00.00.0000 00:00

      А чем Communty то так расстроила? Все что нужно есть, даже сервер бесплатный. Для разработки и тестирования имеющегося функционала с головой


  1. ROM_NN
    00.00.0000 00:00
    +1

    Если бы они были сделаны в виде веб-сервиса, мультиязычными и содержащими ту же логику, они бы действительно могли встать вровень с Яндексом

    Штааа??? Если бы бабушка стала дедушкой? Какой-то странный поток сознания... Если бы SAP был Гуглом, то он бы не был SAP-ом...

    1С придумала базовые классы и сказала сюда ходи сюда не ходи. И все, никакой возможности расширить, совместить, скомбинировать

    Алилуйя! Спасибо 1С, что имеешь ограничения в базовых классах и не даёшь true-программистам из справочника делать документ, а заставляешь включить мозг и придерживаться заданной логики. Спасибо, что остаётся возможность развивать и поддерживать решения с 10 млн. строками кода (ERP+), не объявляя в федеральный розыск тех, кто по своей логике решил "расширить, совместить, скомбинировать".


    1. darkmon
      00.00.0000 00:00
      +1

      Ну, true-разработчикам ничего не мешает и при таких ограничениях делать из справочника регистр накопления (видел лично), а также из справочника — документ (внезапно, типовой 1С Документооборот: Справочник.ДокументыПредприятия).
      Мне кажется, автор имел в виду не просто необходимость как-то расширить базовый Справочник, скажем, а общую бедность языка и фреймворка.
      Нет никакого ООП, нет функционального программирования, нет хотя бы функций высшего порядка. Нет вообще ничего, у нас примитивнейший бэйсик!
      Приведу конкретный пример. Мы не можем создать некий общий виджет, скажем "Согласование документа" с кучей кнопочек/менюшек, отображением состояния и прочего, инакпсулировать в него все обработчики, а потом просто кидать его на формы нужного документа, как это было бы в нормальном языке на современном фреймворке.
      Вместо этого на формы нужных документов кидаем целую группу элементов копипастой, в коде формы делаем кучу отсылок и обработчиков всего этого опять таки копипастой, а в общих модулях делаем некий общий API. И такое дублирование — везде, не только в формах.
      Поэтому нам приходится поддерживать 10 млн строк кода в ERP вместо 1 млн.


  1. E_Pirozhkov
    00.00.0000 00:00

    Спасибо платформе за то, что она такая какая есть, и не развивается в сторону пожеланий всяких смузихлёбов. Этих смузихлёбов ничего не ограничивает в развитии куда угодно кроме 1С, успешно работая при этом с платформой. Меня больше даже забавляет, то что существует очень большой пласт разработчиков, которые хотят жениться раз и навсегда на какой-то конкретной технологии. А технология раз за разом дает им пинка под зад. Что еще более смешно, что так происходит с этими людьми при любом выбранном стеке в начале карьеры.


    1. shamash Автор
      00.00.0000 00:00

      давайте поменяем слово платформа и 1с на "делфи", в вашем комментарии