Всем привет! Недавно мы запустили новый курс — «Разработчик 1C». В процессе его подготовки мы изучили рынок и увидели, что зарплаты разработчиков 1C выросли почти в два раза за последний год. Эта статья будет интересна тем, кто хочет узнать больше про этот язык программирования, проследить путь специалиста, пришедшего в профессию, а заодно избавиться от стереотипа о том, что 1C — просто «программа для бухгалтеров».

Что такое 1С и чем он интересен 

С 1С работают большинство компаний в России, поэтому найти работу на свой вкус не составит труда. Несмотря на то что у многих 1С ассоциируется только с бухгалтерией, на деле это лишь распространенное заблуждение — можно годами работать с 1С и не пересекаться с этой профессией. К примеру, вы можете сконцентрироваться на написании мобильных приложений. Да, на 1С можно писать приложения — как мобильные, так и десктопные. Единственный минус «мобилок» на 1С — ограниченный интерфейс, но если наружная красота важна, то никто не мешает реализовать её с помощью HTML + JavaScript, а на бэке оставить всё на 1С. 

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

Некоторые называют 1С low-code платформойНаверное, в каком-то смысле они правы: здесь не всегда можно и не всегда нужно писать код, однако вся соль в том, что написание кода убрано там, где он действительно не нужен. К примеру, в других языках программирования вам придётся вручную описывать все атрибуты классов (то есть их поля), писать скрипты для создания таблиц в базе данных, а потом эту базу данных и обновлять (это называется миграцией). Всё это абсолютно рутинная работа, которая вряд ли принесёт большое удовольствие, а уж если что-то на этапе миграции пойдет не так, то разбираться с этим точно не особо приятно. От всего этого 1С вас избавит: здесь вы можете сконцентрироваться конкретно на реализации бизнес-логики и на построении необходимых для решения задач алгоритмов. И здесь кода будет уже много, хватит и вам, и вашим коллегам. А вся та рутина, от которой в недалеком будущем коллег других стеков избавит ChatGPT, в 1С убрана изначально.

Важный плюс: в 1С весь код пишется на русском. На самом деле это не обязательно, все операторы имеют двуязычный синтаксис. Международные конфигурации 1С (да, такие существуют) написаны полностью на английском языке, но в странах СНГ действительно используется в основном русскоязычный синтаксис. Если вы программируете на других языках, это может показаться непривычно: вместо «self» и «this» вы пишете «ЭтотОбъект» или «ЭтаФорма». Представьте, как ощущают себя англоязычные программисты — вероятно, написание кода на родном языке не слишком и смущает.

Но если кто-то стесняется программирования на русском языке, вот вам быстро написанный пример работы с многомерным массивом на «католической» латинице:

Базы 1С могут быть открыты прямо в браузере. Вот пример бесплатной облачной демонстрационной базы 1С:УправлениеТорговлей, которой могут воспользоваться все желающие: trade.demo.1c.ru/tradebasicedition/

Путь разработчика 1С: высоконагруженные системы или чаепития в бухгалтерии

Плюс 1С в том, что специалист всегда может выбрать себе работу по душе. Кому-то нравится регламентированный учёт; другого драйвит оптимизация высоконагруженных систем и работа с базами данных — и тут тоже огромный пласт работ для 1С разработчика, особенно сейчас, когда всё больше крупных компаний в качестве ERP-системы используют именно 1С. Вы можете разрабатывать системы WMS (управление складом), TMS (управление транспортом) или производства — везде пригодятся навыки специалиста 1С.

Важно понимать, что от вас самих зависит, где и как вы будете работать. Да, программист 1С может быть трудоустроен на заводе, работать с бухгалтером Галиной Павловной и помогать коллегам в освоении компьютера. Но абсолютно также может работать и любой другой IT-специалист. Для многих такой график будет привлекательным: работать неполный день и пить чай с коллегами за зарплату в 3—5 раз выше средней по стране, почему бы и нет?

Если же программист 1С хочет активнее развиваться, то у него есть все возможности для этого. Стек технологий, связанных с 1С, большой. Начиная с привычного всем разработчикам GIT и заканчивая брокерами сообщений и базами данных вроде ClickHouse. Кстати, одинэсники часто знают SQL лучше других, так как частью языка 1С являются запросы, которые представляют собой практически дословный перевод SQL на русский. 

Можно углубиться в статью про пути развития специалиста 1С от одного из авторов курса.

Как построен рабочий процесс

В целом работа программиста 1С в крупной компании будет примерно такой же, как у любого другого айтишника. 

  • Есть какой-либо трекер (например, Jira, Redmine или Yandex Tracker) для фиксации задач, которые оцениваются либо руководителем, либо самим программистом.

  • Объём взаимодействия с пользователем определяется обычно размером организации, в которой работает программист: в крупных компаниях с заказчиками общаются бизнес-аналитики или продакт-менеджеры, которые выясняют все потребности и впоследствии доносят их до разработчика 1С; в более скромных по размерам организациях программистам часто приходится самим выяснять конкретные вопросы по задаче.

  • Процесс постановки задач достаточно индивидуален для каждой компании: где-то используется скрам с грумингом бэклога, рефайментом и планированием, где-то оценка архитектора/тимлида. В маленьких компаниях, где 1—2 разработчика, задачу может приносить и сам пользователь, после чего специалист покорно идёт работать. Или пить чай, в зависимости от ограниченности времени на его текущие задачи.

  • Основная среда разработки в 1С называется «Конфигуратор». В этом плане платформа 1С аналогична западному аналогу, системе SAP: среды разработки, отладки и выполнения объединены и поставляются в рамках одной единой платформы. 

Сам интерфейс конфигуратора переведён на многие языки. Вот, к примеру, вариант конфигуратора на китайском:

Впрочем, развитие не стоит на месте: сейчас многие технологические компании ведут разработку в IDE под названием EDT — Enterprise Development Tools. Это современная среда разработки, созданная фирмой 1С на основе Eclipse, которая предоставляет многие полезные функции, такие, например, как работа с GIT и контроль качества кода прямо в IDE. 

Хороша ли EDT — вопрос спорный, однако сама фирма 1С действительно создаёт свои флагманские продукты в этой среде разработки, и будущее у неё точно есть. EDT выглядит так:

Помимо официальных сред разработки, в экосистеме 1С есть энтузиасты, которые создают замечательные opensource-проекты

Самый известный подобный проект — OneScript. Это скриптовый язык с синтаксисом 1С, но не привязанный к платформе. С его помощью можно писать код на языке 1С, даже не устанавливая платформу на компьютер: средой разработки в таком случае может выступать, например, всем известный Visual Studio Code или даже простой текстовый редактор. OneScript также используется для организации контуров CI/CD в компаниях, избавляя разработчиков от рутинной работы обновления тестовых баз или выкатки релизов.

Вот, к примеру, игра «Змейка», написанная на 1С в Visual Studio Code
Вот, к примеру, игра «Змейка», написанная на 1С в Visual Studio Code

Это, пожалуй, наиболее бесполезное применение OneScript, однако надо же чем-то себя занять, пока ваши релизы сами по себе выкатываются на прод по расписанию?

  • В 1С есть дымовые-, юнит-  и интеграционные тесты. Раньше всё это входило в компетенции программиста 1С, однако в последние годы в экосистеме 1С появилась и отдельная специальность тестировщика. Здесь так же, как и везде: есть мануальные тестировщики, есть автоматизаторы, которые пишут автотесты, проверяющие код перед релизом. Для тестирования в 1С используются такие фреймворки, как Vanessa Add и Vanessa Automation, а также не столь известные — например, «Сценарное тестирование» от фирмы 1С.

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

Вместо выводов

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

  • Как и в любом программировании, в 1С нужны усидчивость и трудолюбие — учиться придётся часто и много. И не только в начале: 1С не стоит на месте в плане технологий, постоянно появляются новые версии конфигураций и библиотек, и за этим желательно следить. 

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

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

Итак, каков ваш путь? Выберите сами и удачи!

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


  1. evskij
    28.08.2023 14:37
    +11

    Хорошая попытка, но нет!


    1. EvilBeaver
      28.08.2023 14:37

      А вы попробуйте! Первый раз бесплатно. А дальше, как хороший героин - затягивает!


      1. Neikist
        28.08.2023 14:37

        Не, нифига не затягивает. 4 года с копейками промучался (ну ладно, мучаться начал года через полтора-два, а не сразу) и свалил к счастью.


        1. EvilBeaver
          28.08.2023 14:37

          Говорят, бывших наркоманов не бывает ;)


          1. Neikist
            28.08.2023 14:37

            Ну у меня из симптомов — только вот в такие вот статейки заглядываю. Молодежь к осторожности призвать и пар спустить. Ну и бывает с коллегами с первой работы раз-два в год выберусь на шашлыки/в бар.


  1. moroz69off
    28.08.2023 14:37

    Есть какой-либо трекер (например, Jira, Redmine или Yandex Tracker)

    Почему же не средства платформы?


    1. ira-k Автор
      28.08.2023 14:37
      +1

      Конкретное решение для трекера задач также зависит от размера компании. В более-менее крупных компаниях 1С — это часть ИТ-архитектуры (обычно часть бэкенда), а таск-трекер един для всех, в том числе и не для ИТ-отделов. Поэтому обычно используют более распространенные специализированные решения.

      Если 1С единственный используемый язык в компании, то и таск-треккер, скорее всего, будет реализован на платформе 1С.


  1. Naf2000
    28.08.2023 14:37
    +1

    По мне язык программирования морально устарел. В результате пишется много непереиспользуемого кода


    1. Neikist
      28.08.2023 14:37

      Угу. Ни замыканий, ни интерфейсов, ни классов. Даже сборщик мусора не умеет циклические зависимости зачищать. Из плюсов только более менее неплохой фреймворк, заточенный под определенные задачи, правда, но язык все портит. По моему шутка про VB переведенный промптом не очень то шутка.
      Ну и с IDE печалька. Конфигуратор вспоминаю с ужасом, EDT хоть и получше — но до продуктов JetBrains и ему далеко.
      А, ну и отсутствие менеджера зависимостей забыл. Как вспомню эти времена когда внедрение/обновление бсп — это куча ручной работы по сравнению объединению. А уж если что с инфостарта взять надо — изволь ручками код копировать.


  1. Mariserko
    28.08.2023 14:37

    Гуманитариям будет сложнее?

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


    1. ira-k Автор
      28.08.2023 14:37

      Мы не утверждаем, что гуманитариям будет совсем сложно при изучении платформы 1С. Скорее, посыл противоположный: для выпускников технических вузов или людей с ИТ/математических бэкграундом стать программистом 1С (как и программистом на любом другом языке) будет немного проще. При этом мы сами видим много примеров наших выпускников, которые становились отличными разработчиками без какого-либо технического или математического бэкграунда


      1. VVizard
        28.08.2023 14:37
        +1

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

        Так как в 1с сложно быть чистым разработчиком, нужно вникать в предметную область. А из за отсутствия ООП и как следствие примитивной ide для работы в 1с требуется повышенное внимание, отличная память, развитое воображение, умение читать модули по 10-20 000 строк, держать в голове прочитанное так как логика начинается а форме, потом уходит в модуль с вызовом сервера, потом в модуль сервера, затем вызывает процедуры из модуля повт.исп которые в свою очередь вызывают функции ещё из нескольких модулей и все это для одной функции одной сущности.

        Это в java/c# ide подскажет тебе какие методы можно применять к данному типу, где он используется. Плюс сам подход ООП снизит сложность ограничив видимость кода и его количество.


        1. IvaYan
          28.08.2023 14:37

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

          Мне казалось, надо везде вникать в предметную область. Нужно же понимать, что делает код.

          А из за отсутствия ООП и как следствие примитивной ide для работы в 1с требуется повышенное внимание, отличная память, развитое воображение, умение читать модули по 10-20 000 строк, держать в голове прочитанное так как логика начинается а форме, потом уходит в модуль с вызовом сервера, потом в модуль сервера, затем вызывает процедуры из модуля повт.исп которые в свою очередь вызывают функции ещё из нескольких модулей и все это для одной функции одной сущности.

          Это в java/c# ide подскажет тебе какие методы можно применять к данному типу, где он используется. Плюс сам подход ООП снизит сложность ограничив видимость кода и его количество.

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


          1. Neikist
            28.08.2023 14:37

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


  1. EvilBeaver
    28.08.2023 14:37
    +1

    За упоминание 1Script отдельное спасибо от автора! Порадовали старика :-*


  1. Neikist
    28.08.2023 14:37

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


  1. 0m1Kr0N
    28.08.2023 14:37

    Это конечно всё весело, но не забываем про

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

    Платные форумы с интересующими фрагментами кода которые датируются 2009 годом

    Дебагер который при ошибке спамит адресами памяти и указывает на строчку в коде с погрешностью 3- 10 строк

    Часть функционала реализуется только при помощи устаревших интерфейсов и не полных их оберток

    и ещё несколько штук которые я видимо запихнул в угол своего сознания


    1. colontitul
      28.08.2023 14:37

      Дебагер с адресами памяти? Вы 1С с чем-то перепутали


  1. VVizard
    28.08.2023 14:37
    +1

    К примеру, в других языках программирования вам придётся вручную описывать все атрибуты классов (то есть их поля), писать скрипты для создания таблиц в базе данных, а потом эту базу данных и обновлять (это называется миграцией). Всё это абсолютно рутинная работа, которая вряд ли принесёт большое удовольствие

    Для всех enterprise языков есть фреймворки с ORM которые делают эту работу.

    От разработчика требуется только описать классы.

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

    Разработка/сопровождение крупной системы на языке без ООП в т.ч. 1С (особенно 1с с их подходом к общим модулям где нет иерархии) это как постройка дома из пеноплекса. (На Ютубе есть ребята которые это практикуют и других учат как правильно делать).