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

Как Программиста 1С видят окружающие 

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

  • внедрять и кастомизировать решения,

  • писать собственные решения,

  • администрировать системы на базе «1С».

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

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

Как Программисты 1С видят себя

Что программист 1С умеет?

Во-первых, он умеет алгоритмизировать, то есть детально по шагам описывать для системы последовательность действий. 

Во-вторых, программист умеет анализировать данные, которые требуются для выполнения алгоритма, разрабатывает структуру данных: объекты, их взаимодействие и соотношение друг с другом, реквизитный состав этих объектов. Определяет, откуда данные берутся, где, кем, когда и как они обрабатываются, кому, когда и в каком виде выдаются. 

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

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

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

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

В-седьмых, если выходит новая версия или редакция, программист позволяет системе поменять структуру данных и алгоритмы работы в соответствии с релизом, следя за тем, чтобы написанный им код оставался работоспособным, а данные не потерялись и продолжали работать в обновленной системе. Наш коллега метафорично сравнил этот процесс с протезированием живого растения: снимаешь мерку, делаешь к деревцу подпорку, а когда возвращаешься — оно выросло в размерах и дало новые побеги. 

В общем, помимо написания кода программист 1С занимается разработкой системы, механизмов интеграции и переноса данных между системами (некоторые из них могут быть не на платформе 1С),  разворачивает систему, настраивает операционную систему, СУБД, сервер web-приложений, подключение внешних устройств. В отдельных случаях — анализирует проектные решения и документацию, пишет технические задания, проводит тестирование. 

Что программист 1С знает? Спросите лучше, чего он не знает. 

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

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

В-третьих, программист понимает бизнес-процессы, которые автоматизирует. Особенно актуальным это становится в условиях крупного предприятия, где большое количество пользователей, где высоконагруженные системы, где особенно важным становится быстродействие. Код, который работает для одного-двух или даже десяти пользователей, и доработка обновляемой конфигурации для сотни и тысячи пользователей — это задачи разного уровня, что для программиста 1С означает совершенно иной подход к реализации функционала.

Как происходит специализация программистов 1С

В проектной деятельности мы наблюдаем все более глубокую специализацию программистов 1С. Растет количество и усложняется функционал прикладных решений на платформе 1С, а бизнес предъявляет к ним более сложные требования. В программном коде типовых конфигураций “зашиты” и сложные алгоритмы линейной алгебры, и алгоритмы искусственного интеллекта (машинного обучения). Как одному человеку освоить все и можно ли объять необъятное?

Чаще всего программисты 1С приобретают специализацию в процессе работы на проектах. Например, на одном проекте разработчик решает задачи, связанные с интеграциями, он погружается в эту тему, изучает методику, разбирается — логично, что на следующем проекте, где будут те же самые интеграции, привлекут программиста с релевантным бэкграундом в этом вопросе, чем специалиста, который начнет изучение задачи «с нуля». Так происходит специализация программиста на какие-то «локальные» участки проекта, в которых он дока, которые он знает лучших других, где его опыт и знания будут наиболее востребованы.

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

Куда расти программисту 1С

Что же дальше? Понятно, что нет предела совершенству, и можно долгие годы «шлифовать» свои навыки, а потом? 

Можно расти внутри профессии программиста 1С — проходить аттестации от фирмы “1С”, которым соответствуют сертификаты:

  • «1С: Профессионал» 

  • «1С: Специалист»

  • «1С: Эксплуататор» — это уровень специалиста-администратора систем «1С», который может успешно решать любые технологические вопросы крупного внедрения. 

  • «1С: Эксперт по технологическим вопросам» — это высший уровень аттестации 1С-разработчика. Эксперт досконально понимает работу платформы и СУБД, борется с неоптимальностями, при необходимости раскопает, что внутри огромной системы работает неправильно. Он замеряет метрики различных операций, проводит нагрузочное тестирование, выполняет отладку, анализирует код. 

А ещё куда можно

Программисты 1С — не угрюмые интроверты, которые целыми днями “пишут код”. Они ежедневно взаимодействуют с целой проектной командой, в которой:

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

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

  • Тестировщики, инженеры Q&A, которые найдут баг и вернут программисту сделанное, и так несколько раз.

  • Системные администраторы, которые настраивают базы данных.

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

  • А еще представители заказчика — это как технические специалисты, так и непосредственно пользователи, которые много раз расскажут, что нужно сделать. Каждый раз по-новому.

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

А одна наша коллега из программистов 1С с сертификатами по бухгалтерии и  управлению ушла во флористику. Как сказал классик: «Каждый выбирает для себя».

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


  1. iliabvf
    14.12.2022 13:03

    Путь 1С программиста такой же как и Java и другого:
    1.Стать высокооплачиваемым специалистом
    2.Стать архитектором / продукт менеджером / тим лидом
    3.Стать бизнесменом

    Нет ничего сверхестественного, 1С программисты такие же как и Java программисты, только ЯП хуже, платформа хуже, задачи проще.


    1. vis_inet
      14.12.2022 20:45
      +1

       только ЯП хуже, платформа хуже, задачи проще

      Достаточно спорное утверждение.


    1. DvoiNic
      15.12.2022 12:24

      задачи просто другие