Любой начинающий разработчик задаётся вопросом: с чего начать и какой язык выбрать, чтобы успешно стартовать в мире IT? Тут сложно что-то посоветовать, но, возможно, ваш вариант — 1С, популярный язык разработки в России, на котором работает огромное количество приложений, охватывающих почти все сферы бизнеса. В 1С всегда можно найти занятие по душе и доходу.
Меня зовут Пётр Ходжаев, я ведущий инженер-программист в компании «Мартика», 1С-разработчик с опытом более 10 лет, а также ревьюер на курсе «Разработчик 1С» в Яндекс Практикуме. В этой статье хочу обобщить свой накопленный опыт и помочь в становлении начинающему разработчику 1С. Мы пошагово разберём, с чего начать, и по шагам построим путь, который необходимо пройти, чтобы стать уверенным и сильным специалистом.
Что желательно уметь и знать на старте
На данном пункте не будем останавливаться подробно. И так понятно, что любому, кто решил освоить профессию, связанную с IT, просто необходимо владеть базовыми навыками работы с компьютером и ориентироваться в информатике.
Информатика — это не только компьютерная грамотность, это наука об информации, её сборе, хранении, передаче, обработке, шифровании и других операциях с данными. Знание информатики может помочь как в написании кода, так и в его оптимизации. Поэтому в неё нужно хотя бы немного погрузиться, а углубляться — только по желанию.
Также неплохо будет изучить в общих чертах работу операционных систем. Основной операционной системой, с которой работают большинство разработчиков 1С, остаётся Windows. Но для старта не лишним будет изучить работу какой-нибудь из систем на базе Linux, например, Ubuntu или Astra.
Желательно знать основы программирования: переменные, условия, циклы. Познакомиться с ними можно на бесплатном курсе «Основы программирования». Знать математику на уровне школы.
Также будущему разработчику 1С важно обладать усидчивостью и терпением, так как многие задачи не поддаются с первого раза. А ещё умением гуглить решения таких задач — это важнейший навык начинающего программиста.
Одно из своих первых собеседований я провалил, не сумев дать ответ на простой вопрос: «Представь, что ты один, и весь отдел заболел. У тебя возникла проблема, с решением которой ты не сталкивался. Что будешь делать?» Я давал разные ответы: посмотреть код, позвонить друзьям и подобные, но не понял, что интервьюер ждал от меня единственного верного ответа — просто погуглить!
Как правило, большинство вопросов, которые могут возникнуть в разработке, уже решены. Иногда решать задачи помогают даже фрагменты кода, написанные на другом языке программирования, поэтому для поиска можно использовать, например, Stack Overflow. Есть и специализированные ресурсы, которыми пользуюсь я, да и думаю, большинство разработчиков 1С. Например, «Информационная система 1С:ИТС» (официальный источник фирмы 1С) и «Инфостарт» (огромное сообщество 1С-разработчиков со своей базой разработок).
А ещё разработчику важно уметь работать в команде. Это скорее не про доброжелательность и умение поддерживать позитивную атмосферу (хотя и без них не обойтись), а про навык спокойно и аргументированно доносить своё мнение, воспринимать и давать обратную связь. В общем, про эффективную и здоровую коммуникацию.
Какие уровни есть в разработке 1С
Разработчики 1С, как и другие IT-специалисты, могут иметь разные уровни в зависимости от накопленного опыта и знаний. Начальный, средний и профессиональный уровень можно сравнить с классическими junior, middle и senior соответственно. Из этого разделения вытекает градация экзаменов и сертификатов, подтверждающих соответствующий грейд. Подробнее о видах, уровнях и прохождении сертификации можно прочитать в блоге Практикума.
«1С:Профессионал» (junior) — сертификат подтверждает, что его владелец знает возможности программного продукта или сервиса и может эффективно использовать их в своей работе. Для получения сертификата необходимо сдать экзамен на знание основных механизмов и возможностей платформы «1С:Предприятие 8», экзамен по «1С:Бухгалтерия 8» и другие — весь список можно посмотреть на сайте 1С. Сертификат «1С:Профессионал» обязателен для сдачи экзаменов на следующий уровень — «1С:Специалист».
«1С:Специалист» (middle, senior) — сертификат подтверждает наличие знаний и навыков, необходимых для проведения адаптации программных продуктов 1С к особенностям ведения учёта на конкретных предприятиях. Экзаменов множество в зависимости от направления, но основные, на мой взгляд, следующие: «”1С:Специалист” по платформе “1С:Предприятие 8.3”», «”1С:Специалист” по конфигурированию торговых решений в системе программ “1С:Предприятие 8”» и «"1С:Специалист" по конфигурированию и внедрению бухгалтерской подсистемы в прикладных решениях “1С:Предприятие 8”». Актуальные редакции экзаменов также доступны на сайте 1С.
Разработчик уровня senior может получить сертификаты «1С:Эксперт» и «1С:Эксплуататор», которые будут выгодно выделять его среди других кандидатов с сертификатом «1С:Специалист».
«1С:Эксперт» — подтверждает наличие у его владельца знаний и навыков, необходимых для успешного решения любых технологических вопросов крупного внедрения.
«1С:Эксплуататор» — подтверждает компетенции специалиста как квалифицированного инженера по эксплуатации крупных информационных систем на базе решений 1С с навыками оперативного реагирования на возникающие проблемы и наличием компетенций в смежных областях.
Junior: навыки и требования
У каждого работодателя свой подход, но главное требование для начинающего разработчика с грейдом junior — это знание структуры системы 1С: устройства конфигуратора, основных типовых объектов и методов работы с ними.
Хорошим подспорьем на этом этапе послужат книги М. Г. Радченко, такие как «1C:Предприятие 8.3. Практическое пособие разработчика» (если есть понимание основ программирования) или «1С:Программирование для начинающих» (если опыта нет совсем). Также полезно обращаться к основной документации по платформе 1С.
После освоения основ разработки развитие несколько замедлится. Начнётся накопление опыта и информации. Тут следует не отчаиваться и проявить усидчивость и терпение. А также:
изучить содержание справки 1С, которая находится в конфигураторе и доступна в меню «Справка»;
разобраться с объектной моделью, представленной в «Синтакс-помощнике» — подробной справке по всем типовым объектам и методам в платформе;
изучить язык запросов 1С — в этом хорошо поможет книга «Язык запросов “1С:Предприятия 8”» Е. Ю. Хрусталевой;
изучить принципы разработки управляемых интерфейсов в системе 1С — достаточно основ, которые описаны в книге «1C:Предприятие 8.3. Практическое пособие разработчика» М. Г. Радченко;
изучить интеграции HTTP- и веб-сервисов, план обмена, JSON;
изучить бизнес-процессы как прикладной объект системы на платформе 1С, погрузиться в логику работы бизнес-процесса как объекта и его взаимосвязь с задачами (объектами конфигурации);
изучить основы клиент-серверного программирования;
познакомиться с ролевой моделью 1С — узнать, как создать пользователей и настраивать права доступа.
Также, думаю, не будет лишним сказать о навыках, которые работодатель ожидает увидеть у джуна:
умение читать чужой код (подробнее об этом — в статье на «Инфостарте»);
умение вникать в суть задачи и специфику бизнеса. Например, если это торговля, то нужно будет разобраться с учётом в торговых организациях;
умение аргументированно доносить свою точку зрения.
Middle: навыки и требования
На прошлом уровне мы заложили достаточно прочный фундамент для дальнейшего развития и постепенно переходим к среднему уровню компетенций. Теперь можно уверенно определяться, в какой из областей учёта нам будет комфортнее работать, и начать изучать конфигурации, описывающие бизнес-модели работы предприятий в выбранной сфере. И постепенно готовиться к защите сертификата «1С:Специалист». Самыми распространёнными конфигурациями для углубления считаются «1С:Бухгалтерия 8», «1С:Управление торговлей 8» и «1С:Зарплата и управление персоналом 8».
Чем ещё стоит заняться на этом этапе:
изучить «Библиотеку стандартных подсистем» (БСП) — библиотеку, которая используется практически во всех типовых конфигурациях 1С и составляет основу программного и пользовательских интерфейсов этих конфигураций. Также можно посмотреть статьи о БСП на «Инфостарте»;
параллельно с изучением конфигурации начать изучать саму предметную область. Например, если это регламентированный учёт, освоить принципы ведения бухгалтерского и налогового учёта. А если производство, то свойственные ему типовые бизнес-процессы;
углубиться в принципы разработки управляемых интерфейсов в системе 1С — освоить работу с динамическими списками, добавление и изменение интерфейса с помощью кода поможет книга «Разработка интерфейса прикладных решений на платформе “1С:Предприятие 8”»;
изучить систему компоновки данных (СКД). На уровне базовых настроек и построения простых отчётов это полезно и для джуна, но погружаться в мощный и сложный механизм СКД важно на любом уровне. С помощью этого инструмента можно помочь пользователю настроить множество отчётов без изменения основной конфигурации. С глубоким изучением поможет книга «Разработка сложных отчётов в “1С:Предприятии 8”. Система компоновки данных»;
изучить основы реляционных баз данных — например, по учебнику «Основы технологий баз данных» Б. А. Новикова. Зная, как строятся базы данных, легко понять, как эти данные хранятся, как взаимосвязаны таблицы баз и объекты конфигурации;
углубиться в настройку ролей — например, научиться ограничивать доступ на уровне данных при необходимости;
изучить основы языка выражений — отдельного языка, который похож на язык запросов 1С и используется, например, в полях описания выражений в СКД.
Навыки, которые ожидает работодатель от мидла, будут примерно следующими:
умение уверенно работать с запросами;
умение настраивать права пользователей;
начальный навык администрирования баз 1С (базовые настройки, создание баз, создание резервных копий с помощью СУБД);
навык разработки сложных модулей и доработки существующих решений;
умение внедрять и интегрировать новые функциональные возможности;
готовность самостоятельно выполнять задачи.
Senior: навыки и требования
Senior — это специалист с большим опытом, который отлично разбирается в настройке серверов 1С и механизмах платформы «1С:Предприятие», а также ориентируется в одной или нескольких предметных областях. Иногда синьор не только занимается разработкой, но и руководит небольшой группой разработчиков.
Ключевыми требованиями к такому специалисту будут, на мой взгляд, знания, навыки и опыт в следующих областях:
архитектура: проектирование сложных и масштабируемых конфигураций, учёт требований к безопасности данных;
интеграция: глубокое интегрирование с другими системами;
оптимизация: оптимизация производительности и управление ресурсами сервера 1С;
сложные сценарии: работа с распределёнными системами, многопоточность, асинхронные операции;
консультирование: помощь менее опытным разработчикам.
От такого специалиста ожидают самостоятельности — он должен сам принимать ключевые технические решения, координировать работу команды разработчиков и (или) консультантов, формировать долгосрочную стратегию по развитию и оптимизации систем, а также нести ответственность за результат всего проекта.
Что дальше
Дальше можно развиваться в разных направлениях. Например, в направлении менеджмента. Менеджер может быть техническим (техлид), который руководит группой разработчиков, или проектным (проджект), который управляет проектом и организует работу команды разработки: аналитиков, разработчиков, тестировщиков и других специалистов. Ещё одно направление — разработка архитектуры приложений. Архитектор занимается проектированием структуры приложения и взаимосвязей объектов, продумывает сложные алгоритмы. Зачастую системы не справляются с большой нагрузкой — и тут помогут знания и навыки анализа систем на предмет узких мест (например, неверно составленных запросов или неоптимально написанного кода).
Несмотря на то, что в 1С достаточно просто «войти», это уже очень сложная система, для поддержания которой в разных организациях требуются специалисты разного уровня. Какое место вы в ней займёте, зависит от интереса и желания развиваться. Также после 1С можно изучить и переключиться на другие языки программирования — в таком случае 1С станет твёрдым фундаментом для первого шага. Например, в одно время 1С помог мне перейти на систему «Турбо Х», а сейчас знания 1С пригождаются мне в изучении Java.
Удачи!