Как стать автором
Обновить

Чем на самом деле занимается разработчик 1С

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров27K
Всего голосов 9: ↑8 и ↓1+9
Комментарии32

Комментарии 32

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

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

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

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

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

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

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

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

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

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

Зачем для разработки учетной системы нужны замыкания?
Там главное правильно архитектуру БД (метаданные) спроектировать и логику продумать.

Интерфейсы и классы в 1С есть, хотя и в специфическом виде.

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

Чтобы внедрение/обновление БСП (вероятно в своей самописке или вусмерть переписанной древней типовой) не было болью - обычно пишут модули прокладки (нечто вроде промежуточного интерфейса), которые уже не меняются.

В EDT трехстороннее сравнение вполне неплохо для сравнения/объединения (мердж фактически), перед помещением в git.

Ну вот из-за подобного отношения и непонимания коллег зачем нужны фичи из нормальных языков я из сферы 1с в свое время и свалил, да. Архитектура бд и метаданных лишь процентов 5-10 работы. Если не меньше. Остальное тонны лапшекода который не разбить нормально по структуре проекта, не ограничить своими интерфейсами и контрактами. Не сократить в разы его объемы через использование ооп паттернов и тех же замыканий.

Факт заключается в том, что 1С со своей инфраструктурой большинство задач бизнеса решает в разы быстрее, а главное дешевле.
Именно этим и обусловлены его доминирующие позиции на рынке автоматизации в РФ.
Мы можем сколько угодно рассказывать владельцам заводов, колхозов и корпораций про красивый код и правильную архитектуру, но автоматизацию своей компании они доверят 1С-никам.
Я сам очень большой поклонник open-source решений и даже пробовал автоматизировать что то на Odoo, но для удачной истории такого внедрения нужна сильная команда, а это как вы уже догадались в разы дороже, чем взять готовую типовую конфигурацию от 1с и сделать все на ней.
И это не говоря уже об относительно бесплатных обновлениях которые сама фирма 1С и клепает.
Недостатки же архитектуры, просто перекрываются горизонтальным масштабированием железа.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Управляемые формы, автоматически генерируемый REST интерфейс, механизм расширений и еще много чего появилось и сильно упростило жизнь разработчиков.

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

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

Меня самого после visual code тошнит открывать конфигуратор, но увы пока приходится.

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

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

Тут я с вами согласен, лучше сразу изучить какой нибудь популярный язык Python/Js/Go и писать до конца на нем.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замучился отлаживать. Всё, вроде, правильно, но нет, не работает. Позвал местного гуру 1с. Он посмотрел и сказал, что код верный, надо просто на русском языке писать. Переписал, заработало.

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

P.S. и своими временными таблицами по полтерабайта эта 1с уже порядком достала...

По статье - качество ниже плинтуса. Непонятно о чем, непонятно кому. По сути - реклама курса, причем не особо умелая... =/

Я упорно не понимаю почему фреймворк со специфическим dsl пытаются сравнивать с языком общего назначения? Ну почему никто не задает вопроса почему у Navision/Axapta/SAP нельзя сделать интерфейс со свистоперделками со своим стилем кнопочек? А к 1с - есть :/

P.S. я не фанат 1С, там дофига где сделано... не оптимально и странно, но мне это напоминает историю с каспером, которые один раз облажались и потом все вешают на него ярлык

Про тестирование прикололо, а откуда же в 1ц столько багов?

Как бывший 1Сник всегда заглядываю в подобные статьи, чтобы почитать комментарии :)

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

По сути в 1С вроде бы есть ООП но без расширяемости. То есть документ из общего базового класса Документы я могу создать, а вот сделать дочерний документ от существующего и переопределить там пару методов я не могу. Ну и нах такой чемодан без ручки.

Про EDT, им пользуется до сих пор малая толика разработчиков, ибо под капотом эта хрень все равно вызывает конфигуратор, что забавно. Если бы конфигурация хранилась в виде файлов, то можно было бы вообще сделать плагин к VS Code, но это не 1С way. А рад пользуется малая часть, то и git знают совсем немного человек.

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

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

Про высоконагруженные проекты - смешно, нет прямого доступа к persistence слою, все через куцую встроенную ORM. А лезть прямо в СУБД 1С не разрешает. А все для того чтобы поддерживать из коробки MS SQL, PostgreSQL, IBM DB/2 и ещё что-то. Единственное до чего додумались для ускорения своих тормознутых решений - вынести в память часть данных и назвать это чудо Дата-акселератор и доступен он не всем, а только с лицензией КОРП.

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

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

Очень жалею, что не ушел раньше. И очень забавляют ещё влажные мечты 1Сников на условном инфостарте, с кучей умных слов про ООП, модульность. На деле, через 20 лет просьб, 1С таки добавляет в язык запросов к БД (который является переведенным на русский SQL без DDL) функции перевода строк в число, ну или квадратный корень (очень нужные функции), и регулярные выражения, только не класс и функции в нем, а 3 функции в которых регулярка компилируется при каждом вызове, причем ещё неясно какая спецификация регулярных выражений используется. Не тратьте вашу молодость на этот кусок УГ.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий