Всем привет. Я – бывший разработчик 1С. Я устал от 1С и его ограничений, свой "каминг-аут" я совершил в середине 2021 года.

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

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

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

Такие находки отрезвляют меня и возвращают к реальности.

Недавно я наткнулся на статью Андрея Овсянкина, где он вкратце сказал, что 1С-программисты – мушкетеры, а программисты из других стеков – слепые котята.

Я решил написать "ответочку", поскольку у меня есть обширный опыт в IT.

Я программирую уже более 20 лет, а самое главное – я видел программистов из обоих миров.

Про взаимоотношения бизнеса и IT-специалистов

В начале статьи Андрей представляет бизнесменов как недальновидных людей, которые ничего не хотят понимать, и им приходится "терпеть" чересчур заумных IT-шников. Почему именно программисты? То же самое можно сказать про отношение к любым высококвалифицированным специалистам. Обычно такое поведение присуще ларечникам, которым IT не нужен, или когда автоматизация делается ради галочки, без реальной необходимости.

Однако же в стране работают не только ларечники, а есть средний и крупный бизнес, который понимает ценность автоматизации процессов. В одной из таких компаний я сейчас работаю. У нас очень комфортный офис, есть закрепленный из кадров человек и даже штатный психолог. Кроме того, компания сознательно набирает Junior- и даже Trainee-специалистов, ссылаясь на то, что они создают молодых специалистов на рынке.
Да, бывает и такое.

Еще одна причина, по которой бизнес недолюбливает программистов – срыв планируемых сроков, недопонимание аналитиками требований и того, что напрограммировали в итоге.
В таких ситуациях виновата вся цепочка: руководители отделов – в том, что выстроили методологию разработки некорректно, например, спринты слишком длинные; бизнес-аналитики – в том, что некорректно поняли функциональные требования заказчика; программисты – в том, что бездумно кодили по ТЗ и не сообщили руководству о явных нестыковках.

Если же требования собраны корректно и на предприятии работают профессионалы, обычно сроки соблюдаются и пишется то, что ожидалось.

В статье Андрея однобокий взгляд на вещи, что-то из 90-х – вокруг ларечники, и программист всегда виноват.

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

Как я вкатился в 1С

Кратко расскажу про свой путь в 1С-болоте. В далеком 2009-м я вкатился в 1С, в провинции просто не было другого способа попасть в IT. Я решал типовые задачи на БП, УТ, ЗУП в местном франчайзи (самая натуральная 1С-галера, много заказчиков, нужно быстро решать задачи, прокачиваешься в скорости, но не в качестве кода). Через полтора года я ушел на фриланс. Проработал так около 8 лет. Дорабатывал, в основном, УТ 10.3 (решение 1С для управления оптовой торговлей), создал множество самописных конфигураций (то есть решений с нуля) на основе БСП (платформенный фреймворк от 1С).

Через пару лет, помимо фриланса, я взял на постоянную поддержку предприятие, где генеральный директор сходил на сеанс гипноза в местный франчайзи и ему там внушили, что срочно нужно переходить с УТ 10.3 на УТ 11 (которая внутри совершенно другая). Непонятно зачем, но надо.

Переубедить я его не смог, да и сам процесс был запущен, предыдущий программист как раз уходил оттуда. Видимо, по причине того, что не справлялся. Там я впервые столкнулся с кондовым отделом бухгалтерии, с тетеньками 50+, у которых программист всегда виноват и в апреле (время сдачи налоговой отчетности) всегда аврал.

Через год УТ 11 успешно была внедрена. На тот момент я решил, что хватит с меня типовых, от задач в УПП/ERP (самое главное решение от 1С) и ее компонентах (УТ, БП, ЗУП, КА) уже подташнивало.

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

Что можно, а что нельзя на 1С

Как мы знаем, язык 1С компилируется в байт-код подобно другим стековым виртуальным машинам вроде Java, .NET. Кстати, выражаю респект Андрею Овсянкину за его OneScript. Я бы такое не написал.

На 1С не сделать исполняемый файл без зависимостей от вендора. Если та же условная Java дает на выбор целую кучу реализаций JVM, даже GraalVM Native Image, то 1С не дает ничего. Никак не сделать что-то по-настоящему низкоуровневое. Не подключиться к системе, работающей на транспортном уровне TCP/IP без внешних компонент.

При этом писать мультиплатформенные внешние компоненты – дело неблагодарное. Куда чаще в коде конфигураций встречаются COM-объекты, что загоняет решение в определенные рамки одной ОС.

gRPC поддерживается уже в 1С? Что-то мне подсказывает, что нет.

Развернуть 1С в docker-контейнере? А что там с лицензиями? В 2018-м наблюдал, как пару дней коллега пытался завести 1С в docker. Больше всего проблем возникло именно с подключением лицензий из bash.

Как долго ждать нормальной асинхронности (то, что в go называется горутинами, green threads на Java, корутинами в C#) на клиенте?

С веб-сокетами из 1С уже можно работать без внешних компонент?

Как сильно кастомизировать внешний вид UI чисто на 1С? Если нужен свой веб-клиент, его придется писать на Javascript.

Парсер HTML с поддержкой динамических страниц? А как завести Chromedriver или Selenium из 1С?

Нейронные сети, ML и это вот все. PyTorch, Keras из коробки уже завезли?

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

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

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

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

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

Кстати о настройках – есть 3 варианта настроек: дефолтные, фиксированные и заданные пользователем. Иногда при пересечении фиксированных и сохраненных ранее пользователем настроек выдается сообщение об ошибке, что 1С не знает, что с этим делать. Для пользователя это совершенно не понятная информация, он пытается понять, что это за «фиксированные» настройки и что пошло не так, причем пользоваться отчетом при этом нельзя – нужно сбрасывать настройки на дефолтные.

Еще знатно приседать приходится, когда нужно отобразить не обычную таблицу, а «как в Excel документе». Такие таблички очень любят всякие эффективные менеджеры.

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

Что там с IDE?

В мире 1С существует 2 IDE. Первая – православный, непоколебимый конфигуратор. Тут все в духе 1С: возможности, как у IDE из 90-х, очень долгий поиск по модулям (сущности с кодом), нет поиска с учетом регулярных выражений. Вечно приходится ждать, теряя самый драгоценный ресурс в жизни человека, даже на небольших проектах. Заходишь в конфигуратор и ждешь, запускаешь режим 1С Предприятия (то есть режим, в котором виртуальная машина 1С исполняет написанный код) и ждешь. А иногда и не заходишь даже, получаешь какие-то непонятные ошибки, для исправления которых приходится лезть в ТЖ (технологический журнал – технический лог виртуальной машины 1С). Это нормально? Открываешь журнал регистрации (технический лог транзакций внутренней ORM 1С) и происходит что-то необычное? Да нет, все так же ждешь. Как я мог не вспомнить про этот шикарный поиск по журналу регистрации! За время ожидания можно сходить "туда и обратно". Прошу заметить, что на том же оборудовании VS Code и Golang летают.

А что насчет "обновлений нетиповой конфигурации" (то есть тиражного решения с доработками других программистов)? Поскольку в git коммит – это атомарная транзакция, а не целый текст модуля, это позволяет определить изменения точечно, а уж про cherry-picking не стоит говорить, в конфигураторе без костылей такое невозможно.

Может быть, я зря нагнетаю, но в каком-нибудь настоящем ЯП вы видели, чтобы костыли, которые улучшают IDE, продавали за деньги? Это я про Турбоконф и Снегопат (костыли для IDE от сторонних разработчиков). Причем Александр Орефков (автор Снегопата) рассказывал, что вендор предлагал ему работу. То есть 1С знает о происходящем, но ничего не меняет. Еще один плевок в лицо сторонников платформы 1С. Ничего, им не привыкать, они утрутся.

А что по совместной разработке? Думаете, они просто взяли и стали использовать git? Ахаха, как бы не так!

Очередная многоходовочка от разработчиков платформы – они создали собственную self-hosted VCS, которую назвали «хранилище конфигураций».

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

В апреле 2015 года 1С сама же уткнулась в устаревшую IDE и решила сделать все правильно. Они придумали новую IDE на основе Eclipse и назвали ее EDT. Сделано в лучших традициях вендора – все для богатых, высокие системные требования, но все равно довольно низкая скорость интерфейса.

Последний раз, когда я в ней работал, EDT из-под себя вызывала конфигуратор.
Разработка идет до сих пор. И да, там все-таки завезли git.

Эх, если бы дело было только в git’е.

Как ушел из 1С

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

С ребятами из других стеков мы делали решение для сбора и анализа данных на одном из перспективных рынков.

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

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

Я начал учить Java, написал на ней пару пет-проектов, а потом еще и на Golang, который мне очень понравился. После написания очередного пет-проекта я составил резюме на Golang, прошел собеседование и получил хороший оффер на позицию Middle Golang разработчика. Мне дали +25% к тому, что я уже зарабатывал на 1С.

По прошествии полутора лет могу перечислить, что же изменилось:

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

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

  • Мне не нужно знать 100500 противоречащих друг другу законов, которые успел напечатать бешеный принтер.

  • Мне не нужно знать, чего же там еще накрутили в платформе, почему я не могу обойти ее недоработки.

  • Мне не нужно очищать кэш пользователей или свой кэш, или еще какой-то кэш!

  • Мне не нужно перезапускать сервер предприятия 1С.

  • Рабочий день состоит на 30% из общения с PM'ами, 20% code review и 50% чистого программирования.

Если попробовать обобщить – это свобода от 1С, костылей, которыми она обросла, и "болота" типовых конфигураций.

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

К 1С-нику зачастую отношение как к обслуживающему персоналу, и не надо мне тут про "как себя поставишь". Даже если всех "приструнить", осадочек останется. Я знаю, я делал это.

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

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

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

Все это разнится с картиной мира Андрея, там у среднего программиста постоянная депрессия, он всегда уставший, злой и неудовлетворенный.

Кто тут самый умный

Умнее/глупее – примитивное сравнение. За неимением статистики попробую сравнить себя с коллегами.

Тимлид моей команды, как раз "настоящий backend программист", у которого 10+ лет опыта. Он знает пару ЯП для backend разработки, знает про шаблоны проектирования, разбирается в тонкостях работы различных СУБД (в том числе нереляционных), знает про балансировку нагрузок, умеет пользоваться bash, git, CI/CD, Kubernetes и может сделать что-то простенькое на JS, React или Vue. Кроме того, у такого специалиста может быть более разносторонний опыт в архитектурном плане, а не только написание CRUD приложений для бизнеса.

Все ли из вышеперечисленного умеет средний 1С-программист с опытом 10+ лет? Может, кто-то и может, я – нет.

Очень жаль своего времени, потраченного на vendor-lock'нутый CRUD-фреймворк, жутко разросшийся с годами.

"Настоящие программисты" заморачиваются с SOLID? Как написано в книжке "Совершенный код" Стива Макконнелла, "Самые дорогостоящие ошибки – это ошибки проектирования". Мой опыт в программировании подтверждает этот тезис. Если другой ЯП дает возможность грамотно спроектировать иерархию классов / структур / зависимостей, почему бы этого не сделать сразу, чтобы потом не было мучительно больно?

А что дает 1С для структуризации кода? Общие модули? Смешно, ей-богу. Это то, что в Java и Golang называется пакет, но код нужно держать в одном файле, т. е. очередная насмешка над 1С-программистами со стороны вендора.

"Настоящие программисты" заморачиваются со сложностью алгоритмов? И правильно делают. Сложность алгоритма явнее видна на больших объемах. Если не думать об алгоритмической сложности или подкапотной работе с типами, например, можно на конкатенации большого объема строк ждать 8 часов (вместо 20 минут после оптимизации). Однажды я словил такую неприятную особенность 1С на продуктиве. Это было больно.

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

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

Ограничения 1С работают во благо

"Настоящие программисты" много думают про техническую реализацию? Думаю, это потому, что их предыдущий опыт подсказывает, что и где может сломаться. Что плохого в том, чтобы проанализировать время добавления в список? Это влияет на UI и UX от конечного продукта.

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

Поэтому даже на SSD-дисках и многоядерных процессорах формы списков в типовых конфигурациях открываются по 5 секунд, и ничем это не исправить, так как у 1С-программиста таких средств просто нет, и жадный вендор не планирует менять положения вещей.

Легче ведь сказать, что "ограничения платформы во благо".

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

"Настоящие программисты реально не понимают, что нужны не код и не программа, а достижение цели"? Градус безумия повышается, сложно комментировать такие "заказные" суждения.

Могу рассказать, как разработка ведется на моей работе.

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

  • Почему я мог это без труда сделать, а "настоящий программист" не может?
    На основании первичных требований создаются "истории" в Jira. После изучения этих "историй" на коллективные встречи собираются аналитики, дизайнеры и руководители подгрупп разработки, обычно это ведущие программисты. Подгруппы формируются по какой-то доменной области в приложении.

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

  • На основании встреч аналитики пишут/дорабатывают спецификации. И так несколько итераций до достижения ясности того, как функционал должен работать и выглядеть.

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

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

Как можно автоматизировать то, чего до конца не понимаешь? Кто в понимании Андрея "настоящий программист"? Сферическая макака в вакууме?

Даже не знаю, чем провинились именно Java, .NET и PHP-программисты, что их выбрали в качестве козла отпущения в оригинальной статье.

Автор каким-то образом даже подсчитал, что именно 80% из них не думают, когда программируют. Наверное, у него есть какая-то статистика, которую он вручную собирал.

А чего тогда не сразу 140% всех программистов, кроме 1С-программистов? Если уж "топить", то до талого.

При запуске модули не стыкуются, пересылается не то, и в целом происходит караул? Так скорее пишутся типовые конфигурации, иначе как объяснить ошибку, которую я нашел в коде УТ 11 после очередного обновления от вендора.

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

А почему? Потому что строка в "Иначе" "уехала" за видимую область экрана в конфигураторе.

И это, на минуточку, в тиражном решении, купленном за деньги. Ленивые и жадные. Да, это про 1С.

В ЯП, которые компилируются в машинный код, такая ошибка просто не пережила бы сборку проекта.

В других "настоящих" ЯП для защиты от подобных ошибок есть модульные и интеграционные тесты, которые упадут в CI/CD pipeline при коммите.

Да, в 1С есть автоматизированное тестирование, Vanessa и другие инструменты. Но почему даже вендор не использует их? Почему тестирование остается уделом небольшой части энтузиастов?

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

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

Это не 1C way, 1С way – как у афроамериканских реперов – деньги превыше всего, даже здравого смысла. А иначе зачем 1С придумывать свою шину обмена сообщениями, свою in-memory БД + OLAP в виде Дата акселератора, свой Skype в виде "Системы взаимодействия". Что дальше? Социальная сеть 1С? Каждый раз удивляюсь находчивости вендора – а как это нельзя, если на самом деле можно?

Насколько убого сделано распараллеливание, даже говорить не стоит. Это оскорбление IT-инженеров, какой-то костыль в виде чтения сообщений из другого сеанса, порождающий решения в виде сбора сериализованных данных оттуда. Это еще ничего.
Самое смешное, что на каждый недопоток или "фоновое задание" требуется лицензия. Шах и мат, 1С-ники! Многие предприятия просто ставят взломанный сервер 1С предприятия, то есть фактически нарушают закон. Так вендор заботится о людях, которые покупают их продукты? Вкусно и точка! Кушайте, не обляпайтесь.

Если мне не изменяет память, при одновременной работе более 1000 фоновых заданий, метод "ПолучитьФоновыеЗадания" отдает только первые 1000 из них. А зачем вам больше? Вы что там, биткоины майните? Хотя что это я нагнетаю. Вон, в 22-м релизе 1С завезли community edition, а также функции замены строк и логарифмы в запросах. Так можно и с колен подняться. Остановитесь!

ORM в 1С – самый лучший

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

В одной из высоконагруженных самописных конфигураций, с которой я имел дело, один из разработчиков, работавший ранее в одном из операторов связи, пришел к прямому чтению данных 1С из MS SQL. И это работало быстрее, чем платформенный ORM. Представляете, что за безумие творится под капотом 1С? Ограничения во благо. Повторяем, даже если звучит убого.

Еще в 1С нет соблазна налепить интеграцию "прочитаем из базы соседей"? Где, а главное – в окружении кого работал Андрей? Если обратиться к замечательной книжке про переход от монолита к микросервисам, там на первых же страницах написано: "Не давайте прямого доступа к внутренностям вашего сервиса и проектируйте ваш API, исходя из потребностей пользователей, а не ваших догадок. Контракты API должны содержать только те данные, без которых не обойтись".

Этот подход позволяет избежать ситуаций, когда "другая команда удалила или переименовала какую-нибудь колонку в своей базе, и у вас все отвалилось".

Но, видимо, в мире, где "такие интеграции в порядке вещей", подобные и очевидные архитектурные приемы еще предстоит открыть. И, разумеется, "они не будут вас уведомлять об изменениях". Разумеется, вокруг враги, а еще все врут.

На моем предприятии ни у одного из более 2000 микросервисов нет прямого доступа к БД. Даже там, где нужно что-то прочитать из одной известной СУБД, сверху прикручен API, который ставит запросы в очередь. 

Так что ходить в базу другого сервиса – это норма жизни разве что для распределенного монолитного приложения, в микросервисной же архитектуре это жуткий антипаттерн. Этот тезис даже закреплен в общем положении по микросервисам для IT-подразделения о том, как делать "хорошо", чтобы не было "плохо".

Поговорим про ORM. По мнению Андрея, в 1С ORM работает близко к идеалу. Это не совсем так. Данные мы читаем через read-only SQL образца прошлого века, а пишем исключительно через методы-обертки. Кстати, надеюсь, 1С через пару десятков лет разрешит добавлять произвольный отбор в набор записей (таблица с данными для СУБД) регистра сведений (один из классов-оберток встроенной ORM) с несколькими измерениями (индексированные поля в этом классе). Было бы неплохо, имея разнородный набор данных, не прибегать к построчной записи через менеджер (в других ЯП это называется record, "upsert" размером с одну строку).

Судя по тому, что я видел в технологическом журнале – при сохранении набора записей сначала вызывается DELETE * FROM TABLE WHERE с условием отбора по измерениям. Потом делается INSERT в таблицу БД. 

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

В 1С ORM фреймворк самый лучший, потому что единственно доступный. Для той же условной Java есть Hibernate, MyBatis, Sql2o. В Golang есть Beego, GORM. Каждый фреймворк можно подобрать для конкретной задачи. Если очень надо, то можно отказаться от ORM или писать Native SQL-запросы в том же Hibernate. А в 1С можно написать SQL-запрос для создания или изменения сущности? Конечно, нельзя, иначе неопытные однорукие программисты 1С сломают гениальные абстракции над табличками в виде регистров накопления, бухгалтерии, расчетов.

В 1С все стабильно, розовые пони скачут по облакам 1C Fresh – "мы пользуемся объектной моделью и даже не задумываемся о том, как эти данные забираются из базы". Если никто не задумывается, то что же заставило в недрах БСП появиться функции "ОбщегоНазначения.ПолучитьЗначениеРеквизита"?

1С не пытается замести под ковер язык SQL? Из того, что я вижу на форумах, 1С-программисты пару десятков лет просят вендора добавить функциональности, которая давно существует в обычном SQL. Так что вендор, скорее, боится разработчиков 1С, поэтому осторожно разрешает read-only операции, а то вдруг эти люди поверят в себя и попросят еще больше. Согласен, не надо так.

С самых первых курсов, с младых ногтей всех 1С-ников натаскивают на производительность запросов и их оптимизацию? Именно поэтому, придя в одну из обслуживаемых мною далее фирм, я увидел SQL запрос с 60 временными таблицами, который написал уволившийся 1С-программист. Хранить вспомогательные данные не нужно. Это усложняет систему.

Разработчики ORM пытаются совсем спрятать от программиста язык SQL? Да, эти негодяи, придумавшие Hibernate, спрятали его аж в двух местах! Ясно же, решили запутать следы. Сначала сделали анотацию @NamedNativeQuery, а потом еще и в EntityManager сделали метод createNativeQuery. Я до сих пор не знаю, какой из способов использовать. Знаете ли, это работа для IT-специалистов уровня Senior.

Мало того, что спрятали SQL, так еще и "генерируют миллион запросов в цикле, о которых программист даже не подозревает". Да, но все-таки в Hibernate не до конца последовали зловещему плану, потому что забыли запретить настраивать уровень логирования запросов к БД. Ведь кто-то догадается и увидит запросы в логах. Но, как мы знаем, в описываемом Андреем мире у программиста прокачан навык телепатии, логи ему не нужны.

Для 1С наименование ссылки – это примитивная вещь? Да, поэтому в БСП ее достают через функцию с анализом метаданных, читай рефлексией, ненапряжно совсем. Все так делают.

Другие программисты не умеют строить модели данных и очень плохо проводят границы между доменами? Фи, а чего еще ожидать от 80% Java, .NET и PHP-программистов? Они без ТЗ, свитшота и смузи кринжуют, падают с моноколес, какое там IDE открыть. Остановите это безумие!

"Настоящие программисты" не умеют разделять бизнес-процессы на домены? Ладно, мы уже поняли, что 1С-ник – человек-швейцарский нож, а остальные – пыль. Мне понравился класс, приведенный Андреем на слайде:

// Заказчик
public class Customer
{
	// Ссылка
	int Id { get; set; }

	// Наименование
	int Name { get; set; }

	// ИНН, КПП, ОГРН и пр.
	// Встроить этот класс в ту же таблицу - геморрой.
	LegalAttributes LegalAttributes { get; set; }

	// Ссылка на банк (чтоб легло в базу)
	int BankId { get; set; }

	// Банк-объект со всеми реквизитами (чтобы в коде работать)
	Bank Bank { get; set; }

	// Все заказы клиента
	// да, прямо в клиенте, а чо, легко же сделать
	// да, будут считаны все сразу из базы, если не предпринимать действий.
	List<CustomerOrder> Orders { get; set; }
}

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

Идем дальше. А для какого уровня в приложении этот класс?

Если это транспортный уровень (transport в backend) или тот же слой представления (view во frontend), то зачем хранить BankId отдельно от сущности Bank?

Нужна ли информация о банке клиенту API или для отрисовки? Если в API или просто на frontend отдаются заказы, то почему нет атрибутов пагинации вроде ID последнего заказа из запроса и количества запрашиваемых заказов? Зачем в принципе отдавать заказы клиента вместе с информацией о нем?

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

Если это уровень сервиса, то зачем хранить заказы внутри сущности клиента? Если бы у меня стояла такая задача, я бы вытаскивал заказы клиента по кусочкам только тогда, когда они мне реально нужны. Ведь если вытащить сразу все, мне прилетит предупреждение о том, что я израсходовал 100500 GB памяти на сервере. В текущей компании сначала меня пожурят, а затем попросят поискать другое место работы.

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

Даже если мне внезапно захотелось вытащить все заказы клиента из базы, почему бы не попросить Hibernate делать это, когда есть обращение к getter'у поля Orders с помощью параметра анотации @ManyToOne(fetch = FetchType.LAZY)?

Если это уровень репозитория, то почему так много полей из разных таблиц БД в одном классе?

Ответ на мои вопросы кроется в оригинальной статье, в утверждении "Они не умеют проектировать модель данных". А, понял, все не умеют. Или все же "кто-то умеет, но в среднем – нет"? Да, но нет?

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

Про индексы и DBA

Клиент-серверное взаимодействие в 1С. Это мое любимое.

Еще в бытность 1С-ником я оптимизировал UI в рабочем месте сборщика заказов в УТ 11, потом в самописной конфигурации нужно было рисовать карты в поле HTML-документа. Мне пришлось погрузиться с головой в работу веб-клиента.

В статье или "оде" 1С – очередные жалобы на недокоммуникацию между frontend и backend разработчиками. Я уже сбился считать тревожные звоночки. Разработка представляется паноптикумом – backend'еры не умеют анализировать и общаться с БД и разделять бизнес-логику по доменам, PM'ы постоянно бегают под ногами со своими сроками, DBA молча добавляют индексы в БД, frontend'еры "просто хотят рисовать кнопочки", а сверху сидит ларечник, который никому не хочет платить.

Оказывается, чтобы добавить галочку в этой обстановке, "нужно будет составить ТЗ, проверить результаты работы фронтендеров, провести интеграционное тестирование". На текущем месте работы вот как мы это делаем. У нас еще хуже, чем frontend на Javascript. У нас мобильное приложение, которое так просто, как веб-страницу, не обновишь.

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

Я добавляю флажок в конечную точку API, если нужно, поднимаю версию этой конечной точки.

Мобильные разработчики рисуют галочку в очередном релизе. Дизайнер это утверждает, а QA-инженер тестирует. Ничего архисложного в этом нет, если процесс разработки адекватно поставлен.

И да, в 2022-м люди договариваются, а не сходу требуют ТЗ.

Андрей напишет сервис ради галочки? Стоп. А зачем столько приседаний ради галочки в договоре? Или команда пишет целый сервис для хранения данных договора? Если так, то почему такая непоследовательность? Значит, в сущность клиента/заказчика сразу выведены его 100500 заказов, а тут целый сервис ради галочки или договора.

Выставите и задокументируете API? Автогенерация спецификации swagger из аннотаций в коде, видимо, перестала работать в этом нашем настоящем программировании, да.
Фронтендерам надо рисовать кнопки и чтобы от них отстали? Да, совсем забыл про удивительных мир «настоящего программирования».

Неделя – на выключение поля при установленном флажке! Я не удивлен, учитывая качество человеческого материала, описанного в оригинальной статье. Мне было бы интересно познакомиться с HR, который подбирал такие замечательные кадры. Интересно, в мире HR существует аналог "Золотой малины"?

И да, мне как серверному программисту нужно десериализовать JSON. Опять этот ретроградный Меркурий все испортил и отменил в Spring Jackson ObjectMapper по умолчанию. Сижу и завидую 1С-программистам, им ведь в REST-сервисах не нужно десериализовывать тело запроса. Вернуться что ли обратно в 1С, как считаете?
Продолжаем страдать, дальше мне нужно превратить DTO в то, что ляжет в базу данных по одному полю. А что, переложить данные стало так сложно? При строгой типизации IDE знает о совпадающих полях и сама заполняет их, а я просто получаю удовольствие.
Как это нет функции "ЗаполнитьЗначенияСвойств"?! Хватит с меня этого вашего "настоящего программирования". Если говорить серьезно, то в Java, Golang и, скорее всего, в C# заполнение экземпляров типов с одинаковыми именами полей решается рефлексией. Но думаю, что это избыточная сложность – достаточно переложить одни поля в другие через горячую клавишу в IDE. Конечно, имеется в виду нормальная IDE, а не конфигуратор 1С.

Кстати, на github.com даже кто-то написал эту функцию https://github.com/jinzhu/copier.

Насчет "не забыть про логирование, про права доступа, технический журнал, телеметрию". Логирование в 1С делается очень легко? Решили мы как-то на высоконагруженной самописной конфигурации писать логи, как ребята из соседних команд, в специальный топик в Apache Kafka. Сначала взяли Confluence REST API, он работал нормально, а потом перестал, были фризы при записи на 30 секунд. Затем пробовали внешнюю компоненту от Серебрянной Пули, тоже на удивление медленно. Возможно наши Python-разработчики просто не умели готовить Apache Kafka. Но, в основном, все, что может 1С – это работать не ниже протоколов прикладного уровня, и чаще всего это HTTP-протокол.

Интересный факт – знакомый 1С-программист обнаружил, что полностью аналогичные некеширующиеся HTTP-запросы из 1C и Python к тому же ресурсу API на последнем выполняются в несколько раз быстрее. Почему? Как? Зачем? Это еще с учетом того, что Python имеет славу медленного ЯП.

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

Про права

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

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

Не могу не прокомментировать про слишком "много писать, получается спагетти-код, они не умеют пользоваться библиотеками". А кодогенерацию отменили уже? Судя по словам Андрея, в транспортный слой запихивается половина, т. е. 50% кода, который обрабатывает бизнес-логику. А как это пропустили на code review? Что-то не очень с компетенциями в команде мечты.

Да, писать кода приходится много, но зато поведение решения будет ожидаемым. Я могу посмотреть запросы в Chrome DevTools, могу их оптимизировать. Я занимался как-то самописной конфигурацией, в которой был красивый интерфейс – карты рисовались через Leaflet + OpenStreetMap в поле HTML документа (control для webview в 1С), по факту на 1С Webkit. UI часто падал в неожиданных местах, но хотя бы работал со сносной скоростью, я постарался минимизировать количество вызовов сервера. Анализ ошибок был делом мучительным и неопределенным.

Если с frontend на взрослых ЯП все довольно просто, то как разобраться в том обфусцированном ужасе на Javascript, который генерирует платформа для веб-клиента? А уж тем более что-то оптимизировать? Даже разработчики платформы не смогли этого. Я ловил ошибки Javascript в этом сгенерированном коде.

Могу ли я залезть под капот 1С? Нет, ограничения же во благо. Как я это исправлял? Чисто эвристическим методом находил забавные места, вроде установки "Неопределено" в поле на форме или дробных значений в конструкторе объекта Цвет. Нормально, да?
"Неблагодарный труд" - то, чем вынужден заниматься 1С-программист, попытайся он сделать что-то необычные на этом фреймворке.

Про права я уже сказал. Если в компании имеет место быть адекватная аналитика и процесс сбора и форматизации требований без многотомных ТЗ, которые никто не будет писать, то права обычно делаются в самом начале. Это позволяет на этапе проектирования решения обрезать часть функционала, который не требуется, и избежать ошибок проектирования. Код первых коммитов в одном из моих рабочих репозиториев учитывает эти ограничения.

Так что про то, что права не проектируют – Андрею просто не повезло с коллегами.

Про PDF в взрослом программировании

В настоящих ЯП нет бесплатной и хорошей библиотеки для конвертации PDF? Есть хорошие платные библиотеки, причем чем лучше библиотека, тем жаднее ее авторы. Думаю, что это Андрей про 1С пишет. По поводу бесплатных – для Java на первой же странице поисковой выдачи находятся OpenPDF и Apache PDFBox.

Я видел в исходниках одного государственного сервиса, что они используют OpenPDF для генерации отчетных документов. Для конвертации XLS в PDF есть Spire.XLS. Про конвертацию поговорили. Если стоит задача извлечь текст из PDF с сохранением его порядка, особенно если текст в таблице? Великая и неповторимая 1С не смогла. А в Java получилось с помощью все той же Apache PDFBox.

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

Настоящим программистам приходится плакать, колоться и запускать приложение html2pdf.exe. Хахаха, жалкие неудачники! Другое дело – в 1С: никаких приложений, COM-объектов, внешних компонентов запускать не приходится. Никогда. Вот как много значит безоговорочная вера в непогрешимость вендора.

1С-ники – очень хорошие аналитики

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

Если мне дали непонятные требования, мои действия следующие: я надеваю повязку на лоб, включаю эпичную музыку фоном и начинаю узнавать у всех причастных, чего же они действительно хотели от моего скромного сервиса. Зачем что-то кодить, если придется выбрасывать после уточнения требований?

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

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

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

Вот почему 1С-ники такие красавчики?

Может быть Agile?

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

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

Но даже с Agile нет гарантии, что не попадешь на некомпетентных руководителей.

Однажды на одном из бывших мест работы IT-директор добавил к нам, программистам, на созвон, PM'ов, они своего не упустили и через каждые 5 минут спрашивали про сроки. В общем, эмоций было немного, но они были яркими.

Стоит ли переходить из 1С на другие ЯП?

В оригинальной статье очень предвзятый и категоричный взгляд на вещи. Есть ощущение, что статья "заказная".

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

В жизни все происходит в свое время. Пока человеку комфортно в 1С, он найдет миллион отговорок про настоящие ЯП, что ничего не поменяется. Как только Вы реально устанете от бесконечных "да, но нет" платформы, решение и алгоритм действий появятся сами собой. У меня случилось именно так.

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

В токсичной экосистеме 1С Вы никогда не напишете что-либо выходящее за рамки СНГ. Вендор не хочет выходить на международные рынки, как Microsoft или Oracle. Представитель 1C International, который занимается распространением 1С за пределы родины, в 2020-м мне сказал, что это не 1C way. Они хотят найти разработчика, который уже живет в стране X, знает потребности местного рынка и уже пишет решение, которое как минимум поработит страну пребывания и решит все проблемы человечества разом.
Зачем 1С такому разработчику, когда он уже достиг успеха?

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

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

Рынок 1С – CRUD-приложения для мелкого и среднего бизнеса с визуализацией табличек и обслуживание бешеного принтера.

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

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

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

Вон Embarcadero тоже хочет 5000 USD за лицензию разработчика на Delphi. Только где теперь Delphi? Лично знаю двоих бывших delphi'стов, которые в конечном итоге переметнулись в Java.

По поводу отзывчивости сообщества – пойдите спросите что-нибудь на одном из первых форумов в поисковой выдаче про 1С. На какой странице будет робкая попытка помочь? На 2-й? Сравните с тем, как помогают на stackoverflow.com или forum.golangbridge.org. А эти всезнающие индусы и арабы с их мануалами на YouTube! Вы все сами прекрасно понимаете. Вернуться никогда не поздно.

А что там по деньгам?

"Я встречал Java-программистов, которые приходят на 100 тысяч рублей"? Насколько я знаю, это потолок для Junior-специалиста в Москве на середину прошлого года. Я также встречал 1С-программистов, которые приходят на 200 тысяч рублей, даже одного такого видел в зеркале. Разброс зарплат зависит от средней по рынку и стоимости специалиста. Поэтому готовьте классное резюме и меняйте стек.

Моему знакомому Middle Java разработчику предлагали на руки 270 тысяч рублей в июле прошлого года.

Многие толковые 1С-ники, которым уже за 30+, боятся уйти из 1С из-за проседания по доходам, у многих кредиты, семьи, да и время сейчас неспокойное. Думаю, что важно иметь хорошее резюме, побольше опыта, пусть даже и в GitHub – и все приложится.
У меня получилось не просесть по доходам, даже выторговать больше.

Могу как-нибудь написать мануал по свитчерству.

Заключение

Я постарался описать все утверждения, с которыми не согласен. Это моя первая статья, и надеюсь, что читателю удалось дотерпеть до конца. Прошу прощения за повторения, и если я кого-то задел своими словами. Ребята, вы – лучшие, я бы не осилил дочитать такую длинную статью.

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

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

Мое отношение к 1С-программистам положительное, как и раньше. Я им сочувствую, т. к. им приходится вести неблагодарную fullstack-разработку и решать задачи сразу нескольких "настоящих программистов". И все это при наплевательском отношении со стороны вендора.

Знакомый коллега наблюдал как fullstack-разработчика (Javascript + PHP) посадили писать на 1С. "Настоящий программист" не мог понять, почему столько ограничений, ведь "это легко делается на Javascript". После недели, потраченной на доработку подсистемы, он перестал посмеиваться над 1С-никами.

Те, кто попал в 1С в то же время, что и я, помните, как круто было вначале, когда такой коммерциализации сообщества 1С еще не было? Разработки были бесплатными, а ребята на вышеупомянутом форуме казались такими умными. Критикуемые мною решения в 1С – хороший отрицательный пример, и где-то я даже поучился у 1С, как лучше не делать.
Если резюмировать, я согласен с автором, что для быстрого прототипирования CRUD-приложений без высокой нагрузки лучше 1С нет. Задумка фреймворка 1С изначально была хорошая, но для своего времени, когда царили монолитные приложения. Проблемы 1С начинаются там, где требуется разработать что-то необычное и интересное. А этого по прошествии 10 лет на 1С очень хотелось.

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

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


  1. k12th
    27.10.2022 03:22
    +28

    Может быть, я зря нагнетаю, но в каком-нибудь настоящем ЯП вы видели, чтобы костыли, которые улучшают IDE, продавали за деньги?

    C# и ReSharper:)


    1. Honomer
      27.10.2022 09:05
      +9

      Visual Studio и Visual Assist!


      1. rabid_otter Автор
        27.10.2022 10:34
        +2

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


        1. mrsantak
          27.10.2022 23:04

          IntelliJ IDEA когда-то началась с платного плагина к eclipse, который позволял переименовывать классы/методы/переменные/etc вместе со всеми их вхождениями.


          1. koperagen
            28.10.2022 00:33
            +6

            IntelliJ IDEA появилась на 8 месяцев раньше eclipse =) а плагин был для JBuilder


            1. mrsantak
              29.10.2022 00:38

              Ух, попутал, правда ваша


      1. urvanov
        28.10.2022 12:05

        Eclipse и JRebel...


  1. Georgii_L
    27.10.2022 04:40
    +6

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

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

    И странности- например, меня как админа просит глав бух назначить права в переписанной ОПП. Профили не прописаны, она может сказать -что бы этот пункт меню работал и этот. Что бы разобраться какие роли дать мне приходилось открывать конфигуратор и смотреть там права.. Причём с первого раза не работало т к нужны ещё и права на связанные объекты. Или вот- обновление платформы. Разработчик 1С просит поставить -иначе релиз не обновить. 8.3 очередная. А конфигурация под 8.2 сделана и пользователи к его меню привыкли, а в новом формате многих пунктов, особенно "дописанных" нет. И я изгаляюсь в каком режиме и с какими параметрами заработает нормально (причём заработал только один из видов клиента- уже не помню тонкий или толстый).Ну или какой то косяк тех же бухов с занесением информации в систему, когда надо очищать регистр.

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


  1. Isiirk
    27.10.2022 05:01
    +7

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


    1. rabid_otter Автор
      27.10.2022 10:36
      +5

      а я и не сказал, что 1С - кусок какашки. я несколько раз подчеркнул ее достоинства.
      моя статья строится на сравнении идеальной 1С из статьи @EvilBeaverи того, что есть на самом деле.


      1. PuerteMuerte
        27.10.2022 22:29
        +8

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


        1. rabid_otter Автор
          27.10.2022 22:30
          +3

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

          в оригинальной статье используется тот же прием, так что чем я хуже :)


          1. Alkarasu
            28.10.2022 07:42
            +2

            А надо быть лучше! %)


  1. Alexrook
    27.10.2022 05:03
    +32

    Если бы имел возможность поставить плюс, то поставил бы.

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

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

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

    А когда ты предлагаешь что-то как-то усовершенствовать, например, тот же обмен. Чтобы он не осуществлялся через выгрузку и загрузку файла, что регулярно приводит к проблемам и сбоям, а внедрить брокер сообщений (RMQ). Тебе говорят - «Не, зачем это? И так нормуль. Мы не знаем, что это вообще такое. Некогда разбираться». Но вот выходит 1С:Шина и интерес сразу появляется… а давайте попробуем, это же круто. Ну и тут просто накатывает рукалицо. То есть когда ты предлагал внедрить RMQ, оно никому не нужно, а как 1С завернул это в свою обертку, это стало вдруг интересным. Такие люди в принципе не хотят сделать шаг в сторону, что-то попробовать, пока 1с это им сам не выкатит на блюдечке с голубой каёмочкой. Эти же люди до сих пор боятся JSONа, HTTP сервисов, использования JS внутри 1С и т.д. То есть сознательно отказываются даже от того, что 1С уже давно им предоставил с барского плеча.

    А еще меня поразило сообщество 1Сников. Это, наверное, самое недружелюбное сообщество из всех, какое я встречал. Какой бы вопрос человек не задал, ему обязательно сначала прочитают лекцию, какое он ничтожество, как посмел побеспокоить местных гуру своим глупым вопросом, потом посоветуют обратиться к профессионалам за денежку, и может после 20-30 сообщений с поучениями жизни найдется тот, кто ответит по делу. Иногда до этого не доходит. А часто вопросы вообще игнорируются. Я просто ненавидел искать решения вопроса на 1Совских форумах и вообще в скти, так как часто вопрос есть, а ответа на него нет, только пространные рассуждения, что надо сначала сдать на спеца, а уж потом в конфигуратор лезть. Если бы сдал на спеца, то и вопросов бы не задавал. Так что, наверное, впервые у меня не появилось желания регистрироваться ни на одном ресурсе, посвященном текущей специфике работы. Ну и сам ИТС - это что-то. Это не ресурс с документацией и FAQ, а какая-то помойка, где часто вместо ответа на свой вопрос видишь, сообщение, что по вашему плану данная информация недоступна (у нас самый дешевый план был куплен). Ну а встроенная справка по конфигурациям - это просто шедевр. Она настолько полезна и полна (нет), что надо вечно лезть в код, чтобы понять, как работает тот или иной функционал.

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


    1. rabid_otter Автор
      27.10.2022 10:36

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


    1. Isiirk
      27.10.2022 10:45
      +4

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


      1. rabid_otter Автор
        27.10.2022 11:33
        +3

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


      1. Zrobon
        27.10.2022 21:42
        +2

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

        1 С это никакая не ERP- cистема. В лучшем случае учетная бухгалтерия. Есть и функциональнее и производительнее.


        1. Honomer
          28.10.2022 09:33
          +1

          А вот про SAP интересно послушать. Расскажите нам, как устроен современный SAP, чтобы мы могли сравнить?


          1. EvilBeaver
            28.10.2022 09:42
            +2

            Везде где я видел сап и работал на интеграции с сапом САП был слабым зеном, тормозом проекта и говном. Основной аргумент, который говорят саперы, когда не хотят ничего делать: "САП это не умеет". Почему-то, в их среде это считается приличным аргументом. Сейчас мне расскажут, что современный сап не такой, а я видел какой-то несовременный, может быть. Но то, что ABAP-based - шлак. Даже если на него наклеить шильдик S/4 и громко обещать, что "ну теперь, все не так, теперь все-по новому".


            1. K0styan
              28.10.2022 10:21
              +2

              У нашей команды был стикерпак со внутренними мемами, так там одно из почётных мест занимала фраза "Так пришло из SAP"


              1. DvoiNic
                28.10.2022 12:37

                «Так пришло из SAP»

                «так истерически слежалось»©


            1. Zrobon
              28.10.2022 17:44

              А не кажется ли вам, что дело не в система, а во внедренцах с лучшими практиками. Вот только, скажи, почему у нас повально столько предприятий "имеет" SAP. Наверное остальные еще хуже. Как думаешь.

              Я не за САР. Я за отечественную, достойную систему, а не халявную. Монополизация приводит к деградации.


        1. EvilBeaver
          28.10.2022 09:40
          +2

          Да что вы, берите больше, это вообще никакая не система, это картинки просто, в которые можно мышкой тыкать :)))))


      1. Alexrook
        28.10.2022 16:28
        +4

        Кто вам сказал, что задачу бизнеса нельзя решить быстро другими инструментами? Ну ведь обычное приложение на 1С - это практически клон C# + WinForms. А обычные приложения до сих пор используются только в путь! Только приложение WinForms имеет куда более богатые возможности и не ограничивает тебя совершенно идиотскими рамками. У нас, например, было несколько решений на базе УПП, где по факту из самого УПП использовалось не так и много. Так вот, имея опыт программирования на C# + WinForms, я могу ответственно заявить, что куда приятнее кодить под древний WinForms, чем под обычное приложение 1С, даже на современных платформах.

        Могу согласиться, что создать управляемое приложение, возможно, несколько быстрее в плане интерфейса. Но не критично. Я могу накидать форму на том же React’е достаточно быстро, чтобы бизнес даже не заметил этой задержки. Ибо большая часть времени все-таки тратится на логику и взаимодействие в БД. Даже в рамках 1С я был всегда сторонником использования API, чтобы интерфейс был отвязан от логики! Только то, что 1С предлагает смешивать все в кучу и не предоставляет возможности разделения кода на модули (общие модули не в счет), уже это провоцирует отказаться от него навсегда.

        Кто будет писать COM компоненты? В моей компании никто не знал, как к ним вообще подступиться. Что в сети нашли, то и использовали. Если человек знает, как написать COM компоненту, он уже может претендовать на место работы в другом стеке ) Что видимо они и делают. Я был единственный человек, который готов был писать COM компоненты, но так как их надо регистрировать через админов, дело заглохло. Они просто не любят делать любых лишних телодвижений. Поэтому, часто ты работаешь не только с ограничениями 1С, но и с ограничениями по администрированию. Везет тем, где не разделяют 1Сников и админов в разные подразделения. Но у нас даже выйти за рамки 1С было не реально. Был вариант с Native компонентами, но мои познания в C++ крайне поверхностны для этого. Да и в общем, много знаете 1Сников, хорошо владеющих плюсами? Не сомневаюсь, таковые где-то есть, но на всю страну их единицы.

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

        «Немодульность» кода 1С - это тоже огромная проблема, которая потом жрет время при поддержке. Даже если вернуться к общим модулям, где ты сам определяешь, что и в каком модуле у тебя находится, то тут нет никакой иерархии. Приходится модули постоянно искать по наименованию, либо пролистывая длинный одноуровневый список. Ну а «быстрый» поиск в конфигураторе не такой и быстрый. Лично меня он сильно раздражает. И не только скорость, а принцип его работы, когда он ищет по всей конфигурации, когда мне нужны лишь общие модули. Не знаю, может такая возможность и есть, но она не очевидна. Если еще накидывать, то как вам отсутсвие нумерации строк в модулях? Ну мелочь же, а как неприятно. Скажете Ctrl + G? Но мне все равно удобно видеть номера строк, я к этому привык. И таких вроде мелочей можно наперечислять воз и маленькую тележку. Ну есть четкое ощущение, что 1С ненавидит разработчиков.

        Теперь о том, почему выбирают 1С. А только из-за бухгалтерии! Да, тут без альтернатив, сам ты навряд ли будешь поспевать за изменением законодательства, форм отчетности и т.д. Вот только потом по инерции абсолютно все системы продолжают строить на базе 1С. Вот в чем беда. Грубо говоря, ты когда-то пригласил 1С-ника, чтобы он тебе внедрил и сопровождал бухгалтерию, а он тебе выстроил всю корпоративную систему на этом 1С. Почему? Да потому, что он ничего другого не знает. У нас, например, начальник отдела был прожженным 1Сником (лет 15 в компании, начинал с рядового 1Сника). А это вообще неправильно. Начальник отдела должен быть Generalist. Он не должен быть адептом одной технологии. Таким образом 1С необходим, без него тяжко, но только в бухгалтерии! Никуда за пределы бухгалтерии его выпускать нельзя. Остальная корпоративная ИС должна взаимодействовать с этой бухгалтерской 1С, не более. Остальные потребности любой компании могут быть закрыты абсолютно любым другим фреймворком по вкусу, на котором тоже возможна быстрая разработка, а главное, не надо платить за каждое место. Вы не представляете, сколько денег компании тратят только на лицензирование рабочих мест. Отсюда процветает этот идиотизм с терминалами и подключениями по RDP, когда вроде более логично иметь web-клиент и обмениваться с сервером легкими JSONчиками, а не вот эти вот 50-70 сессий на сервере, когда все начинает дико тормозить. И все равно приходится создавать еще один терминальный сервер, а потом еще один и так далее. У нас таких серверов было 5 и то было мало.

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


        1. Isiirk
          28.10.2022 16:46
          -5

          У меня складывается впечатление, что вы 1С не видели совсем. Я не топлю за неё, но по скорости/качеству решения бизнесзадач, гибкости и удобству на сегодня удобнее продукта я не знаю, может я отстал где-то?.... Вроде 30 лет уж в ИТ...


    1. gybson_63
      28.10.2022 00:26
      +1

      Системы гарантированной доставки сообщений, то, что вы называете RMQ, не решают все проблемы. Во-первых, они не гарантируют отсутствие проблем и сбоев. Во-вторых, они не могут этого сделать. Любая внешняя система доставки сообщений действует вне транзакции записи объекта. Т.е. вы никогда не можете быть уверены в том, что объект отправится при успешном завершении транзакции или наоборот. Кроме того, никто вам не гарантирует, что объект будет получен и вы об этом узнаете. Очереди даже хуже почты и мессенджеров в этом плане.

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


      1. Neikist
        28.10.2022 12:28
        +2

        Эээ, давно уже есть системы с гарантиями доставки сообщений «at least once», кажется еще что то слышал про «only once» — но не уверен потому не гарантирую.


    1. caes
      29.10.2022 02:42

      Это вы ещё на LOR не заходили.


  1. onets
    27.10.2022 06:47
    +5

    Чем больше читал статью - тем интересней становилось, что же будет в коментах.

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

    Но, многие проблемы, которые вы описали применительно к 1с, существуют и в мире «взрослого» программирования.


    1. rabid_otter Автор
      27.10.2022 10:38

      я шел по пунктам из оригинальной статьи @EvilBeaver и несколько раз подчеркнул, что 1С как JavaFX+Hibernate очень хороша для автоматизации заполняемых табличек.


      1. onets
        27.10.2022 11:37
        +3

        Это, на мой взгляд, утонуло в общем настрое статьи, она больше воспринимается именно как "1с какашка". C#/Java/Go такая же какашка, просто там проблемы другие.


        1. mrkaban
          27.10.2022 12:04
          +1

          Дело в другом, что люди не прочитав изначальной статьи стали реагировать на ответную статью


          1. onets
            27.10.2022 13:32
            +1

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


  1. KirovA
    27.10.2022 07:17
    +2

    Лет десять-двенадцать назад меня многие уговаривали идти в одинЭс. Мол, голова на месте, без куска хлеба не останешься. Но я всеми фибрами души ненавижу бухгалтерию. Поэтому, сразу пошел в Java и пр. Какое счастье.

    Некоторое время я даже работал рядом с отделом одинЭсЭс'овцев - много общались, поэтому примерно понимаю, о чем говорит автор статьи.


    1. rabid_otter Автор
      27.10.2022 10:38
      -1

      я тоже устал от бухгалтерии :)


      1. DvoiNic
        27.10.2022 16:04
        +1

        я «устал от бухгалтерии», проработав несколько лет главбухом, и пережив выездные проверки всех предприятий нашего, с позволения, «мелкохолдинга»… а с бушками общаться — иногда даже прикольно. Хотя их косяки порой надоедают.


        1. rabid_otter Автор
          27.10.2022 16:08
          -1

          интересная у Вас жизнь, однако


          1. DvoiNic
            27.10.2022 17:23

            Не жалуюсь, однако…


    1. edo1h
      27.10.2022 18:29
      +2

      Но я всеми фибрами души ненавижу бухгалтерию

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


      1. Neikist
        28.10.2022 12:34
        +1

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


        1. DvoiNic
          28.10.2022 12:48

          я, несмотря на стаж главбуха и т.п. навыки — просто когда брал еще одного программиста в отдел — взял специально на финансовый контур. И несмотря на то, что отслеживал изменения в нормативке, и иногда советовал прогу и даже ГБ и ФД — за 10 лет практически не касался бухгалтерии, только оперативный контур… в предществуюшие 2 года (когда уже ушел из ГБ), и за последующие 8 лет в других конторах — наверное, не больше месяца-двух рабочего времени в сумме ушло на то, где требовалось знание/понимание плана счетов. из этого заковыристых задач, где требуется понимание не на уровне «дебет слева кредит справа» было всего пара-тройка.


  1. mrkaban
    27.10.2022 07:18
    +1

    Автор каким-то образом даже подсчитал, что именно 80% из них не думают, когда программируют. Наверное, у него есть какая-то статистика, которую он вручную собирал.

    Он видимо про копипаст кода из stackoverflow, но в упомянутых языках так не работает.


  1. EvilBeaver
    27.10.2022 07:30
    +11

    Ого, да тут целый дисс на меня и мое выступление в позапрошлом году! Придется ответ писать, что поделать...

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


    1. gabirx
      27.10.2022 08:13
      +3

      В споре рождается всеобщее заблуждение, как писал классик.


    1. shamash
      27.10.2022 08:36

      даже любопытно будет почитать


    1. rabid_otter Автор
      27.10.2022 10:42
      +1

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


    1. trdm
      28.10.2022 10:47
      +1

      В спорах пождается истина.

      истина существует независимо от нашего восприятия и наших знаний о ней :)


      1. Honomer
        28.10.2022 10:58
        +2

        Истина для индейца из лесов Амазонии и человека, который их вырубает, будет разная. Всё зависит от того места, где вы стоите и что делаете, всё-таки.


        1. s207883
          29.10.2022 17:15

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


  1. HemulGM
    27.10.2022 07:44
    +16

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


    1. garwall
      27.10.2022 09:22
      +6

      скорее все-таки domain-specific language - и из этого вытекает большинство вышеупомянутых плюсов и минусов


      1. Neikist
        28.10.2022 12:35

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


    1. rabid_otter Автор
      27.10.2022 10:44
      +1

      это раздутый ORM с визуализацией табличек, где классы ORM хорошо подходят под хранение периодических данных и всяких бухгалтерских расчетов.
      так что это скорее DSL.


    1. starik-2005
      27.10.2022 11:25

      А какие проблемы у 1С с парсингом сайтов, которых нет у других систем? Ну может либы получше, XPath2+ с регулярками, но это просто вариант использования технологий (типа я напишу этот код в три строки, а я - в пять). https://infostart.ru/1c/articles/1031620/


      1. rabid_otter Автор
        27.10.2022 11:37
        -1

        как отрендерить javascript код и достать текущее DOM-дерево только встроенными средствами платформы?


        1. starik-2005
          27.10.2022 12:33
          +2

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

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

          Задачи парсинга - это не отобразить у себя так, как где-то там. Если задача ставится именно так, то что-то тут не то.

          ЗЫ: и с чего ответ про 1С и нативные методы? Какой-то бред. Ну и расскажи, где там "нативными методами" это все делается. Ага...


          1. rabid_otter Автор
            27.10.2022 12:35
            -1

            то есть в 1С нативными методами, никак. понял, спасибо.


            1. aakolov
              27.10.2022 16:11
              +1

              Ни в одной известной мне корпоративной информационной системе (SAP, Axapta, Oracle ERP) я про такие нативные средства не слышал - вот чтобы пойти и распарсить DOM-дерево на каком-то произвольном сайте.


            1. DvoiNic
              27.10.2022 16:54
              +1

              а библиотека — это «нативный метод»? а библиотека, написанная не «вендором» — это «нативный метод»? А библиотека, написанная на другом языке? ну и т.п.


              1. rabid_otter Автор
                27.10.2022 17:10
                -1

                нативный метод - это когда в коде конфигурации написал на встроенном ЯП без внешних компонент.


                1. starik-2005
                  27.10.2022 18:23
                  +1

                  На встроенном языке 1С можно написать что угодно, даже RTX-рендер. Вы просто не видели код либ на JS для всех этих штукалясин, которые называете "нативными" - они там ну очень большие. Ну и не совсем ясно, можно ли считать "нативным" скомпилированный в Web-asm какой-нить PgSQL, который также можно скомпилить в 1С-асм.

                  Просто 1С-неги часто не пишут свою либу на своем языке, которая бы представляла из себя интерпретатор JS для того, чтобы на кой-то хрен (совершенно непонятный) отрендерить какую-то область, чтобы выдрать оттуда какой-нить innerHTML. Но если говорить о возможностях, то 1С это вполне способна сделать хотя бы через поле HTML-документа, при том 99,9999% всех тех либ, которые Вы по какой-то причине считаете нативными, делают это через очень далеко, т.к. вряд ли имеют либы интерпретатора JS (ну если это не аналог "Выполнить" в той самой JS). Но если имеют - да флаг им в руки, ибо высосанный из пальца пример нафиг не нужен в реальной разработке, и делать парсинг через какие-то клики - это попытка запилить что-то, совершенно не понимая, зачем это нужно и как это делать правильно.


                  1. rabid_otter Автор
                    27.10.2022 18:38
                    -1

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

                    я бы посмотрел на безумца, способного на это.

                    Вы просто не видели код либ на JS для всех этих штукалясин, которые называете "нативными" - они там ну очень большие.

                    я не претендую на бесконечную мудрость. я много еще чего не видел.

                    можно ли считать "нативным" скомпилированный в Web-asm какой-нить PgSQL, который также можно скомпилить в 1С-асм.

                    скорее всего нет, тут надо определиться, а что для Вас - нативный.

                    Просто 1С-неги часто не пишут свою либу на своем языке.

                    я думаю он просто дожил до окончания разработки.

                    интерпретатор JS для того, чтобы на кой-то хрен (совершенно непонятный) отрендерить какую-то область, чтобы выдрать оттуда какой-нить innerHTML.

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

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

                    естественно, JavaScript на сайтах не нужен, ведь они не защищаются от парсинга.


                    1. starik-2005
                      27.10.2022 20:13
                      +2

                      я бы посмотрел на безумца, способного на это.

                      https://infostart.ru/1c/articles/1096524/ - вот тут на "Перфоленте", языке, основанном на синтаксисе 1С. Есть и на самой 1С - погуглите.

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

                      https://habr.com/ru/post/656575/ - ну как бы, это. Надеюсь сумеете понять, почему статье влепили столько минусов. Думаю, что если бы Ваш друг со сбера что-то такое написал бы на хабре, то тоже бы огреб.

                      естественно, JavaScript на сайтах не нужен, ведь они не защищаются от парсинга

                      Сайты сами где-то эти данные берут. Вот я привел ссылку на статью по парсингу "защищенного от парсинга" сайта. Да, там клиентский рендеринг, который получает фактически данные в HTML с сервера в виде JSON-контейнера, и это, в общем-то, легко парсится. И есть целые конторы, которые только и занимаются, что парсят сайты. И реальная защита - это вообще генерация картинки, которую ты с джавой не спарсишь, а у всяких там OCR просто не хватит разрешения, чтобы прилично это распознать. Остальное - это игры сервера и клиента. Но сейчас многое вообще уходит на site-side-рендеринг, т.к. клиент не хочет ждать, в итоге он получает готовый фрейм, а не оболочку для одностраничника, динамически подгружающего данные.

                      В общем в части парсинга в 99% случаев не нужен этот вот клиентский кликер в виртуальном контейнере ДОМ-а, в остальном 1% случаев уже готовых решений овер дофига и изобретать велосипед нафиг не надо. И с 1С тут никаких проблем - она может дернуть локальный сервис, написанный на чем угодно, чтобы получить требуемое. И если проще написать это на питоне, то зачем это делать на 1С при разворачивании того же питона одной кнопкой на каком-нить аналоге хироку...


                      1. rabid_otter Автор
                        27.10.2022 21:52
                        -1

                        https://infostart.ru/1c/articles/1096524/ - вот тут на "Перфоленте", языке, основанном на синтаксисе 1С. Есть и на самой 1С - погуглите.

                        сдуру можно и металлические шарики разбить, последний комментарий - 2019, ну что ж актуальненько.

                        https://habr.com/ru/post/656575/ - ну как бы, это. Надеюсь сумеете понять, почему статье влепили столько минусов. Думаю, что если бы Ваш друг со сбера что-то такое написал бы на хабре, то тоже бы огреб.

                        это не парсер, это что-то вроде читалки XML

                        Сайты сами где-то эти данные берут. Вот я привел ссылку на статью по парсингу "защищенного от парсинга" сайта. Да, там клиентский рендеринг, который получает фактически данные в HTML с сервера в виде JSON-контейнера, и это, в общем-то, легко парсится. И есть целые конторы, которые только и занимаются, что парсят сайты. И реальная защита - это вообще генерация картинки, которую ты с джавой не спарсишь, а у всяких там OCR просто не хватит разрешения, чтобы прилично это распознать

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

                        В общем в части парсинга в 99% случаев не нужен этот вот клиентский кликер в виртуальном контейнере ДОМ-а, в остальном 1% случаев уже готовых решений овер дофига и изобретать велосипед нафиг не надо.

                        как я и сказал, средствами платформы без внешних компонент никак.


                      1. starik-2005
                        28.10.2022 00:08
                        +1

                        средствами платформы без внешних компонент никак

                        Даже RTX средствами платформы как, так что не о том речь. Вряд ли кто на чистом питоне будет писать ML, т.к. есть написанные на С/С++ либы типа pyTorch, Numpy, Pandas, e.t.c... И никому не придет в голову говорить, что на питоне вот нифига нельзя "без внешних компонент".


                      1. starik-2005
                        28.10.2022 18:14

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

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


                      1. IvaYan
                        28.10.2022 20:15
                        +3

                        полиморфизм - это отсутствие строгой типизации

                        В случае ООП, полиморфизм это другое


                      1. starik-2005
                        29.10.2022 21:38

                        Да, и что же это?

                        Параметрический полиморфизм является истинным, т.к. подразумевает исполнение одного и того же кода для всех допустимых типов аргументов, а ad-hoc-полиморфизм — мнимым, т.к. представляет собой обеспечение косметической однородности потенциально разного исполнимого кода для каждого конкретного типа аргумента

                        Пример: если в 1С добавить в массив сто разных документов, то для каждого из них вообще не парясь можно вызвать Записать(). А что Вы понимаете под словом "полиморфизм"?


                      1. IvaYan
                        29.10.2022 22:00

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

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

                        template<class A>
                        A add(A a, A b) {
                            return a + b;
                        }

                        является его примером? Он скомпилируется и выполнится для любого типа, который определяет оператор +. Но дело тут не в ООП.

                        Полиморфизм в ООП это про то что у вас при сохранении сигнатуры метода возможно его разное поведение. Это обычно достигается за счёт наследования, а именно того что наследник переопределяет методы родителя. И что, вероятно, важнее -- это то что класс-родитель может обращаться к этим методам и менять свое поведение.

                        И кстати, наследование почти всегда можно заменить композицией. Заменить нельзя как раз когда нам нужен полиморфизм.


                      1. starik-2005
                        29.10.2022 23:35

                        Ну а что классически было полиморфизмом? Вот у вас есть базовый класс, вот у него есть виртуальный метод, вот у наследников этот виртуальный метод переопределен, вот у нас переменная базового класса, вот мы кладем в нее адрес производного класса, вызываем виртуальный метод и видим поведение производного класса, а не базового. Или что конкретно Вы понимаете под полиморфизмом? Для языков без строгой типизации это вообще бессмысленно, т.к. вызывая метод класса (записи документа с проведением) мы получаем именно проведение того объекта, для которого вызван этот метод. Никаких приведений типов...


                  1. kuza2000
                    28.10.2022 16:02

                    На встроенном языке 1С можно написать что угодно

                    Увы, нельзя. Сам язык не так уж плох, там есть все необходимое. Но:

                    1. Он безумно медленный.

                    2. Нет ООП.

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


                    1. IvaYan
                      28.10.2022 16:06
                      +2

                      Ни медленность ни отсутствие ООП не являются причинами по которым на языке нельзя что-то написать. Это вопрос удобства/не удобства написания и выполнения, а не тьюринг-полноты.

                      задача может решаться очень долго, но если она в итоге была решена, то это значит что на языке её можно решить.


                      1. kuza2000
                        28.10.2022 16:44

                        Сам язык не так плох. В нем, например, сильная типизация, в отличие, скажем, от PHP. Писать на нем вполне можно.

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


                      1. IvaYan
                        28.10.2022 20:17

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

                        Это другой вопрос. Вы говорите, что из-за того что там нет ООП и он медленный, на нём нельзя написать что-то. Теперь вы говорите, что написать можно, но применять написанное для серьезных задач будет нельзя. Как вы понимаете, это разные вещи.


                      1. kuza2000
                        28.10.2022 20:36

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

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

                        Хорошо ли это, плохо ли - можно спорить, но подход сейчас именно такой.


                      1. kuza2000
                        28.10.2022 20:46

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

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


                      1. Naf2000
                        29.10.2022 21:53

                        В 1с сильная типизация? Даже не смешно


                      1. kuza2000
                        29.10.2022 22:05

                        Да, во встроенном языке 1С сильная типизация. Там почти нет неявных преобразований типов. И это хорошо.
                        Если не совсем понимаете, о чем речь, то информацию можно найти и на хабре: https://habr.com/ru/post/161205/


            1. HemulGM
              28.10.2022 09:15
              +2

              Нативным методом ни кто не может. Питон использует стороннюю библиотеку, ещё и написанную не на питоне. Так же и с другими языками. Я не знаю такого языка, где из коробки есть парсинг сайтов и тем более с выполнением js кода перед парсингом.


        1. Alexufo
          29.10.2022 03:41

          Зачем его рендерить? ВСкройте его апи и получайте даж структурированные данные.


  1. idelgujin
    27.10.2022 08:21
    +3

    ИМХО 1С - это среда разработки с ориентированием на работу с сущностями в разрезах периодов. Идеально для бухгалтерии, отчетности и т. п. То есть этот функционал уже готов и его не надо пилить отдельно. Ну и плюсом типовые конфы обновляются в соответствии с ветренным законодательством РФ. Всё остальное - жуткие минусы. От негибкости языка, до платности всего и вся. Шаг в сторону - только на костылях. Ну и сколько щас пустая конфа весит? Гигабайт?


    1. timka05
      27.10.2022 08:45
      +10

      Лет 10 назад, когда пустая конфа УТ весила около 600 метров, я решил поставить SAP, чтобы посмотреть, что это за зверь такой. Что конкретно ставил уже не помню, что-то типа CRM/HR, помню только, что ставилось около 9 часов и пустая "конфа" весила 32 Гб.

      1С УТ на том же железа ставилась мин 4-6, весила пустая конфа около 600 метров. Ну так, для сравнения.


      1. rabid_otter Автор
        27.10.2022 10:45
        -1

        дело не в весе конфы, а в одних и тех же технологиях и 5 конфигурациях, в рамках которых живет среднестатистический 1С-программист.


        1. aakolov
          27.10.2022 10:54
          +1

          Все же интересно было бы увидеть такой же разбор по SAP. Я участвовал в нескольких проектах (со стороны заказчика), там некоторые разработчики тоже очень похожие вещи рассказывали про архитектуру:

          - много оберток
          - разные модули писали в разное время разные команды, иногда даже названия одних и тех же сущностей в UI/UX не совпадают
          - есть отдельная каста "писателей на ABAP" - специальном языке для SAP


          1. Germanjon
            27.10.2022 13:01

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


            1. Honomer
              27.10.2022 13:34
              +5

              Ну да, без крупных конкурентов... Это вы пошутили. САП, Аксапта, Навик, Галактика, Парус.. имя им было легион.


              1. Tippy-Tip
                28.10.2022 01:49
                +3

                Вы забыли, что раньше была четкая сегментация: «Парус» работал в бюджетном секторе, «Галактика» специализировалась в среднем и крупном бизнесе, а «1С» – «Доступно и всерьез» (читай «ларечники» из статьи). За счет грамотного маркетинга «1С» перераспределила рынок, заняв на нем монопольное положение. Заняв монопольное положение, тут же начала поднимать цены (пресловутые ПРОФ и КОРП лицензии) – по текущему прайс-листу цены на лицензии и на поддержку «1С: ERP» практически равны ценам той же «Галактики». Но техническая часть осталась на прежнем уровне. Намедни тут пробегала статья, что «Московский метрополитен» и «Мосгортранс» переходят с SAP на «1С: ERP»… Хотел бы я увидеть тот «колхоз», который там нагородят, лишь бы обойти ограничение на 99999 строк табличных объектов. Да-да. Вы все правильно поняли – в КОРП-функционале это ограничение не снято.


                1. Honomer
                  28.10.2022 09:42
                  +1

                  Кажется, вы сами себе немного противоречите. Раз вы сами пишете, что 1С перераспределил рынок и выдавил из него остальных, значит он с ними конкурировал и смог подвинуть. Насчёт монопольного, кажется вы преувеличиваете. Маркет-шейр 1С всё это время не переваливал за 40% (максимум), если верить отчётам уважаемых фирм.

                  А что плохого в сегменитировании? Для "ларёчников" как было, так и осталось - 3000₽ за бухгалтерию. Вы считаете, что функционал для корпораций уровня "Газпрома" должен стоить копейку? а почему САП тогда такой дорогой?


                  1. Tippy-Tip
                    28.10.2022 22:25

                    Вы немножко неправильно поняли мою фразу: я имел в виду что 1С сначала выдавил конкурентов, а потом занялся перераспределением. Если мы ссылаемся на один и тот же источник отчетов, то лет 10 назад доля 1С доходила до 90% (максимум). Сейчас, да, цифра колеблется в районе 40%.
                    Я ничего не имею против сегментирования. Более того, я категорически против автоматизации учета "Сушевни на раёне" при помощи условного SAP HANA, а ПАО "НЛМК" (спасибо им за интереснейшие статьи!) – при помощи "Бухгалтерия Предприятия. Базовая версия". Главный аргумент 1Сников в борьбе с конкурентами был "Посмотрите сколько стоят лицензии и поддержка SAP ("Галактики") и сравните с нами". А вот после выдавливания конкурентов, ценник от 1С пошел вверх. Причем в разы. Повторюсь еще раз: на текущий момент стоимость лицензий и поддержки решений 1С для крупного бизнеса сейчас сравнялась с ценами на ту же "Галактику ERP". Только вот технологический базис (читай платформа) остался на прежнем уровне.


                    1. Honomer
                      29.10.2022 08:19

                      Я имел в виду отчёты IDC.

                      Не, вы не правы. С тех пор платформа шагнула далеко вперед. И развиваться не перестаёт.

                      Я думаю для роста цен есть причины.

                      Да и конкуренты, кстати, с тех пор тоже подросли ????


                1. kuza2000
                  28.10.2022 16:57
                  +1

                  Наверное, вы имеете ввиду ограничение 99999 строк в табличной части объекта. А что плохого в этом ограничении? Вы когда-нибудь видели, скажем, товарную накладную, где бы потребовалось больше строк?

                  На количество данных в самих таблицах никаких ограничений нет.

                  Понимаю, тут принято ругать 1С. Но я все же за объективность.


                  1. Tippy-Tip
                    28.10.2022 23:03

                    А что плохого в этом ограничении?

                    На количество данных в самих таблицах никаких ограничений нет.

                    Кажется что Вы противоречите сами себе. Вообще-то "Количество данных" = "Количество строк". И да. Ограничение касается не только табличных частей объектов, таблиц значений, массивов и т.п., но и таблиц движений регистров, т.е. один документ не сможет сделать более 99999 записей в учетный регистр.

                    У упомянутых выше организаций количество основных средств может превысить сотню тысяч. Теперь представьте себе во что выливается регламентная операция расчета бухгалтерской и налоговой амортизации?
                    Или еще пример с "Инфостарта" как на одном заводе уперлись в это ограничение при расчете зарплаты. Разделение расчета по подразделениям не спасало ситуацию. На этом заводе работает 1500-2000 сотрудников. В "Мосгортрансе" – около 30000. И меня терзают смутные сомнения, что в "Мосгортрансе" оплата труда сводится только к "Оплата по окладу" и "Премия" (уверен что там у сотрудника не менее десятка начислений в месяц).

                    Вы когда-нибудь видели, скажем, товарную накладную, где бы потребовалось больше строк?

                    Накладную не видел. А вот прайс-лист на 120000 позиций – да. Впрочем такую накладную я могу представить: коносамент с сопроводительной ведомостью морского контейнеровоза.


                    1. kuza2000
                      29.10.2022 09:27

                      Ну да, с накладной я погорячился. Ситуаций, когда возникает желание запихнуть в документ более 100К строк может быть много.

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

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

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

                      То есть, проблема в том, что типовые объекты не подходят для таких ситуаций. И решения хорошего нет, приходятся извращаться. Может, со временем что-то придумают, сделают новые объекты для таких ситуаций. Может, нет. Но ограничение это точно не уберут. Могут лишь немного увеличить с ростом ресурсов компьютеров. Хотя я бы не стал.


                  1. Serg79
                    29.10.2022 13:00
                    +2

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

                    Ограничение в 99 999 строк удивило и я не понял, для чего это сделали. Проблему решил тем, что отказался от использования встроенной табличной части в некоторых документах в 1С. Данные хранятся в отдельной табличке (в терминах 1С это регистр сведений) Задача не тривиальная и не 2 часа работы. Однако решение позволило не только обойти это ограничение но и значительно повысило скорость открытия формы.


    1. DMGarikk
      27.10.2022 08:46
      +3

      Типовые конфы это и есть источник основного ужаса, они написаны зачастую без соблюдения правил самой 1с… А если взять ЗУП… это вообще нечто


      1. rabid_otter Автор
        27.10.2022 10:45

        согласен, ЗУП с ее функциями для склейки запросов - нечто.
        слава Богу, что я этот кошмар больше не увижу.


  1. onets
    27.10.2022 08:30
    +14

    Теперь подробней:

    Обычно такое поведение присуще ларечникам, которым IT не нужен, или когда автоматизация делается ради галочки, без реальной необходимости. Однако же в стране работают не только ларечники, а есть средний и крупный бизнес, который понимает ценность автоматизации процессов. Там я впервые столкнулся с кондовым отделом бухгалтерии, с тетеньками 50+, у которых программист всегда виноват и в апреле (время сдачи налоговой отчетности) всегда аврал. Соглашусь с Андреем, что дело не в 1С, а в людях, которые работают в типовых конфигурациях. Но почему-то именно в 1С таких заказчиков очень много. 1С – это CRUD для малого и среднего бизнеса, где обычно много табличек. И что бы мне ни говорили 1С-программисты, большая часть их задач лежит в этом заколдованном круге кусочков большой конфигурации. Это либо отчеты, призванные показать руководителю все в одном месте, либо обработки, призванные упростить какую-то хозяйственную операцию, либо отдельная подсистема, чтобы автоматизировать "уникальный бизнес-процесс", либо просто корректировка бизнес-процессов предприятия так, чтобы они ложились в типовую конфигурацию.

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

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

    Это действительно так. Дело не в 1С. C#/Java/1C - это инструменты. Но те же самые "ларечиники" без понимания айти и процессов могут выбрать Java.

    Что там с IDE?

    Мне тоже приходится перезапускать IDE, порой ее глючит, она подвисает и жрет память даже больше чем Chrome.

    По прошествии полутора лет могу перечислить, что же изменилось:

    Мне показалось, что вас посадили в какую-то ограниченную песочницу. Я когда-то работал в системном интеграторе, с настроенными процессами. Было примерно так же. Сидишь ждешь описание от аналитика, кодишь, тестируешь, исправляешь, комитишь. Когда же я стал вести проекты - все поменялось. Мне и с заказчиком/клиентом надо пообщаться. И саппорт тикет разрулить на третьем уровне поддержки "почему у них там очередная цифра не так считается". И понимать "законы и предметную область", чтобы не натворить дел. Да и кэш приходится порой чистить, да и RESET нажимать. И соглашусь, что многое зависит от работодателя. Я сейчас работаю в небольшой компании, у нас тут нет полтыщи аналитиков/программистов/девопсов. Но знаете... как-то интересней... Свой проект, свое детище.

    ORM в 1С – самый лучший. Один из разработчиков пришел к прямому чтению данных 1С из MS SQL. И это работало быстрее, чем платформенный ORM.

    Слушайте, но причем тут 1С? Любая ORM работает медленней, чем нативные прямые запросы к БД. И многие программисты, с каким бы инструментом они не работали - приходят к нативным прямым запросам к БД для оптимизации производительности.

    Мне понравился класс, приведенный Андреем на слайде. А для какого уровня в приложении этот класс?

    Это сущность, отражает структуру таблицы в БД. Поэтому там BankId и Orders. Это для монолитов и маппинга ORM на БД. Да, возможно там не очень хорошо это спроектировано. В микросервисах ордера могут быть отдельно, клиенты отдельно. Но не суть. Технические претензии мне кажутся не обоснованными. Никто не обязывает отдавать заказы вместе с клиентом. Решается на уровне ORM (Fetch/Include) при построении запроса. А fetch = FetchType.LAZY - эта штука имеет неприятные побочные эффекты, начиная с N+1 и заканчивая ошибкой "транзакция/подключение к БД уже закрыто" на момент срабатывания Lazy, а так же проблемами при параллельной обработке/вычислениях.

    По итогу - мне показалось у вас стадия гнева и отторжения 1С. В C#/Java/Go тоже много проблем. Видимо вы с ними просто еще не столкнулись.


    1. rabid_otter Автор
      27.10.2022 11:44

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

      согласен, поэтому и ушел туда, где есть потребность в автоматизации и понимание ее ценности.


    1. rabid_otter Автор
      27.10.2022 11:45
      +1

      Это действительно так. Дело не в 1С. C#/Java/1C - это инструменты. Но те же самые "ларечиники" без понимания айти и процессов могут выбрать Java.

      да, но как я сказал ларечников в "большом IT" почему-то меньше.
      и да, дело в работодателе, надо просто уметь выбирать.


    1. rabid_otter Автор
      27.10.2022 11:48

      Слушайте, но причем тут 1С? Любая ORM работает медленней, чем нативные прямые запросы к БД. И многие программисты, с каким бы инструментом они не работали - приходят к нативным прямым запросам к БД для оптимизации производительности.

      при том, что в оригинальной статье утверждается, что ORM в 1С - лучшая.
      моя статья построена на сравнении с оригинальной статьей @EvilBeaver
      предлагаю Вам с ней ознакомиться.


      1. vkni
        29.10.2022 11:22
        -1

        Реляционные базы данных имеют свой язык запросов, декларативный, построенный на реляционной алгебре — SQL, они заточены под этот язык, язык заточен под структуру этих баз данных. Поэтому естественным образом, если мы используем ORM, который являет собой довольно убогий язык, не позволяющий реализовать всю мощь SQL, мы получаем просадки производительности.

        Представьте, что мы используем C без интринсиков на современном микропроцессоре. Естественно, что мы не сможем и близко подступиться к возможностям этого ЦП. И придётся делать ассемблерные вставки.


    1. rabid_otter Автор
      27.10.2022 11:49

      Это сущность, отражает структуру таблицы в БД. Поэтому там BankId и Orders. Это для монолитов и маппинга ORM на БД. Да, возможно там не очень хорошо это спроектировано. В микросервисах ордера могут быть отдельно, клиенты отдельно. Но не суть. Технические претензии мне кажутся не обоснованными. Никто не обязывает отдавать заказы вместе с клиентом. Решается на уровне ORM (Fetch/Include) при построении запроса. А fetch = FetchType.LAZY - эта штука имеет неприятные побочные эффекты, начиная с N+1 и заканчивая ошибкой "транзакция/подключение к БД уже закрыто" на момент срабатывания Lazy, а так же проблемами при параллельной обработке/вычислениях.

      согласен, не учел.


    1. rabid_otter Автор
      27.10.2022 11:50
      -2

      По итогу - мне показалось у вас стадия гнева и отторжения 1С. В C#/Java/Go тоже много проблем. Видимо вы с ними просто еще не столкнулись.

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


      1. vkni
        29.10.2022 11:26
        +2

        У меня возникло ощущение, что вы сравниваете довольно обособленную нишу 1С со всей остальной экосистемой.

        То есть, разрешая "настоящим программистам в настоящем мире" писать компиляторы на Haskell, низкоуровневый код на C, бизнес код на Java, расчётный на Fortran, а детский — на Scratch. Естественно, 1C с остальным миром конкурировать не может, и выглядит бледно.

        Хотя если мы попробуем писать компиляторы на С, низкоуровневый low-latency код на Java, компиляторы на Scratch, а детей заставим учиться на FORTRAN 66, тоже ничего хорошего не выйдет.


        1. F0iL
          29.10.2022 17:20

          Хотя если мы попробуем писать компиляторы на С

          GCC вам передает привет.


          1. vkni
            29.10.2022 19:56

            Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.


        1. rabid_otter Автор
          29.10.2022 22:54

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


  1. onets
    27.10.2022 08:41

    И еще немного из опыта. Была задача автоматизировать процессы в малом бизнесе - компания выращивала и продавала растения для ландшафтов (ну там в частном доме посадить цветочки, деревья, чтобы красиво было).

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

    Так и какое решение? Писать с нуля аналог 1С? Чтобы вести склад, приход, выдачу, оплату с банковских карт, да? И сколько бы лет и денег на это ушло?

    В итоге сайт, бэк-енд и мобилку написали на C# / Flutter. А вот для учета внедрили одну из стандартных 1С конфигураций. Плюс отдельно реализовали синхронизацию каталога товаров из 1С в бэк-енд для мобилки.


    1. rabid_otter Автор
      27.10.2022 11:40
      +1

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


    1. Neikist
      28.10.2022 12:42
      +1

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


  1. qrdl
    27.10.2022 09:12

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

    Я не в теме про 1С, но зачем нужен класс, если можно обойтись тремя функциями? Например, в POSIX regex их четыре, но вполне можно было прожить и без regerror(), и возвращать ошибку сразу. И ведь отлично все работает.

    Я просто к тому, что это так себе аргумент.


    1. rabid_otter Автор
      27.10.2022 10:47

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


  1. timka05
    27.10.2022 09:15
    +6

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


    1. rabid_otter Автор
      27.10.2022 10:46
      +1

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


    1. CTDEVIce
      27.10.2022 10:49
      +7

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


    1. Neikist
      28.10.2022 12:44
      +1

      Вопрос зачем себя мучать ужасными IDE и языком в 1с, зачем себя мучать всяким трэшем и нервотрепкой творящимся в айти отделе на производстве или в типичном франче когда можно выбрать комфортные условия работы?


      1. timka05
        28.10.2022 13:23

        Ну если вы (или кто там) мучаетесь - то конечно надо что-то менять. Работы в ИТ много, надо выбрать такую, чтобы приносила удовольствие (ну или хотя бы не мучила так сильно)


        1. Neikist
          28.10.2022 13:42

          А я так в общем то и сделал. После 4.5 лет в 1с свалил на разработку под андроид и вот уже 4 года счастлив и доволен.


  1. Constanine
    27.10.2022 09:23
    +12

    Большинство подобных статей можно разделить на три части. Боль от типовых конфигураций, боль от платформы и боль от менеджмента и бизнеса.
    Типовые конфигурации — согласен. Переусложнены, с огромным уровнем абстракций(хотя какие многоуровневые абстракции в системе которая изначально задумана ориентированной на предметную область). В большинстве своем это «раздутая бухгалтерия» либо выросшие из неё решения с кучей всяких свистелок. Плата за универсальность, «хотели как лучше, вышло как всегда».

    Платформа — очень удобная штука для своего перечня задач. Позволяет писать свои кастомные решения, при том довольно быстрые(говнокодинг не отменяется, им можно повесить все). Проблемы начинаются, когда на ней пытаются делать вещи, для которых она не предназначена. Типа как писать игры на Java. Писать можно, но разве что Just for fun.

    Менеджмент и бизнес — не техническая деталь, му**ки могут попасться везде. Где то больше, где то меньше.

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

    *p.s. Если слышите 1с ERP(поставить название любой конфигурации) — «лучшая в мире система» — значит этот человек пообщался с менеджером-продажником от франчайзи. Но такие-же фразы я слышал и от продажников других CRM.


    1. EvilBeaver
      27.10.2022 10:13
      +3

      Голос разума, который вряд-ли будет услышан


      1. awk795
        27.10.2022 10:48

        Не будь пессимистом.


    1. rabid_otter Автор
      27.10.2022 11:18

      Большинство подобных статей можно разделить на три части. Боль от типовых конфигураций, боль от платформы и боль от менеджмента и бизнеса.
      Типовые конфигурации — согласен. Переусложнены, с огромным уровнем абстракций(хотя какие многоуровневые абстракции в системе которая изначально задумана ориентированной на предметную область). В большинстве своем это «раздутая бухгалтерия» либо выросшие из неё решения с кучей всяких свистелок. Плата за универсальность, «хотели как лучше, вышло как всегда».

      согласен


    1. rabid_otter Автор
      27.10.2022 11:19
      -1

      Платформа — очень удобная штука для своего перечня задач. Позволяет писать свои кастомные решения, при том довольно быстрые(говнокодинг не отменяется, им можно повесить все). Проблемы начинаются, когда на ней пытаются делать вещи, для которых она не предназначена. Типа как писать игры на Java. Писать можно, но разве что Just for fun.

      Менеджмент и бизнес — не техническая деталь, му**ки могут попасться везде. Где то больше, где то меньше.

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

      согласен полностью, я не говорил, что не в 1С не могут попасться люди с особенностями в руководстве.


    1. rabid_otter Автор
      27.10.2022 11:20

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

      да, и тут Вы правы.


    1. Zrobon
      27.10.2022 21:48
      -1

      1 С не ERP-cистема. Неужели у нас поголовно безграмотные спецы ИТ.


      1. Honomer
        28.10.2022 09:43

        Может потому что они постоянно путают платформу 1С и 1С:ERP/УПП?


    1. gybson_63
      28.10.2022 00:02
      -2

      В смысле перерос? Надо было реализовать MCTS или генетический алгоритм, а 1С не дала? Дерево решений переобучилось, а он этого не заметил из-за особенностей платформы? Или он выбрал неверный алгоритм генерации случайных чисел, напортачил с GLC, seed не тот поставил и у него нейронка чудит?

      Что конкретно пошло не так в этой высокой сфере? Может всем пора бежать в Rust?


    1. Neikist
      28.10.2022 12:47
      +3

      Платформа — очень удобная штука для своего перечня задач. Позволяет писать свои кастомные решения, при том довольно быстрые(говнокодинг не отменяется, им можно повесить все). Проблемы начинаются, когда на ней пытаются делать вещи, для которых она не предназначена. Типа как писать игры на Java. Писать можно, но разве что Just for fun.

      Фреймворк для своих задач отличный. Рантайм — ну тут уже такое. Язык — полный уг для решения любых задач, даже несмотря на все возможности фреймворка.
      Менеджмент и бизнес — не техническая деталь, му**ки могут попасться везде. Где то больше, где то меньше.

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


  1. CrushBy
    27.10.2022 10:20

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


  1. F0iL
    27.10.2022 10:28

    Что можно, а что нельзя на 1С

    Читая эту главу, на ум пришла легендарная статья Спольски про протекающие абстракции.


  1. OksikOneC
    27.10.2022 10:54
    +14

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

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

    После декабря 2014 г., разработчики на других языках/платформах, стали для внешнего рынка по стоимости разработчиков из азий и индий. В связи с этим возникает вопрос - зачем студенту 1С сейчас идти разрабатывать на 1С, если можно пилить на забугорье на модном-молодежном за деньги, порой даже большие, чем на старте в 1С? Какова должна быть его мотивация? Ровно тот же самый тезис относится и к разработчику 1С со стажем - смысл пыхтеть и находиться в ситуациях, которых находился и автор, отбиваться от тёть Галь-бухгалтера с одной сторой, Иванычей со склада, с другой, еще успевать и в код, и в новые архитектуры, при это деньги за все эти муки предлагают такие, которые итак предлагают со старта Белые господа на других платформах/языках? Заливаем сверху все это соусом "а ведь с другим языком/платформой можно и тракторок завести", и получаем на выходе классическое неудовлетворение как от решения - войти в 1С, так и от решения - остаться в 1С. А 1сники то ребята не глупые, читают и Хабр в том числе. Один парень из Техасса рассказал свою историю успеха, другой из Германии, третий - из Австралии. Причем истории таки - вот я сидел тут по месту писал не на 1С, а потом - блин! Да я могу также писать но уже по другому рейту, в другой стране. Рас рас - и вот я уже там, вот моя статья, вот моя тележка, подписывайтесь! Повторюсь, 1сник - не дурачок, он все читает, читает, тёть Мани его каждый день прессуют-прессуют, у Иванычей какие-то сканеры не сканят, фуры стоят на погрузке/разгрузе, Ген/Фин/Хрен-дир присовывает ему, присовывает по жалобам от подчиненных. И так идут годы. Вы просто представьте мета-физичную чернь, которая разрастается в голове у бедолаги 1Сника? Какой-то парень сходил на курсы по фулл-стак разработке под мобилку или веб, и уже через год, сидит в Мюнхене, пьет баварское и передает пламенный привет нашему герою, который и в предметку, и в налоги, и хреноги, и в код, и в челночную дипломатию, и даже в админство (ну а кто принтер то подключит Алевтине Никалавне?) - а получает за это зарплату индсуса работающего по среднему рейту с условного фриланса? В какой-то момент, эта вся это неудовлетворенность прорывается, как гной, наружу и матерый/старый 1сник уходит в закат в условные Java/С#/PHP/о_0 - проходит некоторое время, и если у него всего получилось, то мы читаем статейку на хабре "Почему уходят из 1С".

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

    И кстати, пока я не видел тут историй о том от тех, кто свалил с 1С и потом раскаялся в этом. Обычно все получается.

    Так что ребят, если все мною вышеописанное про вас и вы сейчас варитесь на какой стадии - не держите этот пар в себе. Возможно, и правда пора. Я думаю, что лучше пожалеть о сделанном, ведь вернутся никогда не поздно, чем годами жить в такой адской неудовлетворенности ни от денег, ни от своей работы, ни в принципе - ни от чего. Наша работа - это б0льшая часть нашей жизни, если вас условная "разработка на 1С" заколебала до такой степени, что вы уже и света белого не видите - попробуйте что-то другое. Не понравится - вернетесь.



    1. rabid_otter Автор
      27.10.2022 11:57

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

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


    1. rabid_otter Автор
      27.10.2022 11:58

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

      коротко и без эмоций не очень получилось. но я согласен с Вами.


    1. rabid_otter Автор
      27.10.2022 11:59

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

      я могу и ошибаться, но 1 года недостаточно для full-stack


    1. rabid_otter Автор
      27.10.2022 12:01

      Обычно все получается.

      не всегда, пару месяцев назад собеседовал 1Сницу на позицию middle backend developer.
      у нее нет знаний большого IT, пришлось отказать.


    1. resun1971
      27.10.2022 12:28
      +1

      Человек открыл себе, что программирование - это не только правка форм и настройка принтера, от всей души поздравляю! То, что я всегда требовал от 1С программистов и повально не находил – уметь оценивать сложность алгоритмов и знание запросов СУБД. Без этого код на 1С часто поражал мое воображение, а народ считал, что и так сойдет.

      Разрабатывать продукт – это конечно интереснее, чем его обслуживать или допиливать на внедрении. И это будет на любом языке программирования, на любом фреймворке (кстати, кто-то еще веб-системы и бек-енд без фреймворков разрабатывает?)

      Мне что интересно, в свое время все учили сначала ассемблер, потом С, потом С++ (я лично так осваивал программирование). И никогда не стоял предел числа изучаемых языков программирования. Сейчас народ гордо хвастается, что знает 2 языка программирования. А если потребуется освоить еще 2 языка? Еще 5? 1С осваивается за неделю, Питон за пару недель. Да, на джаву наверное меньше месяца закладывать не надо. Всё хорошо для своего применения, и если человек не готов за несколько недель освоить новый язык, который подходит лучше для прикладной задачи, это что, называется специалист по программированию? Ну вместо 1С будет Java, тот же станок только ручки хромированные. И что до пенсии ничем другим не заниматься? Какие то скучноватые перспективы. Кругозора много не бывает, и знать 1С как средство БЫСТРОЙ разработки бизнес приложений, мне кажется, очень полезно.


      1. rabid_otter Автор
        27.10.2022 12:34

        не спорю, 1С в нашей стране знать полезно, без работы точно не останетесь.


        1. Ivan22
          27.10.2022 13:08
          +2

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


    1. gybson_63
      27.10.2022 23:55

      Никто не вернется к работе на первой линии, а это та линия, где общаются с тётями и дядями по поводу копейки в балансе.

      Вы представьте программиста, который общается с пользователями и пишет на С++ или даже C#, вот у кого жизнь летит под откос.


  1. greenkaa
    27.10.2022 11:10
    +2

    Просто не надо молотком забивать шурупы, а отвёрткой забивать гвозди.


    1. rabid_otter Автор
      27.10.2022 11:38
      -1

      я с Вами согласен, но моя статья не про этот тезис.
      она строится на сравнении идеальной 1С из статьи @EvilBeaver
      и того, что есть на самом деле.


    1. tvr
      27.10.2022 16:10

      Забитая молотком отвёртка — норм./s


  1. fishHook
    27.10.2022 11:12
    -1

    1C код я видел только на картинке, и если верить той картинке, программа пишется на кириллице (или я не прав?). Отсюда вопрос, а это вообще реально использовать для разработки 1С скриптов что-нибудь из популярных ИДЕ/редакторов типа VS Code, emacs, Sublime? Это же с ума сойдёшь на каждый хоткей раскладку переключать


    1. DMGarikk
      27.10.2022 11:19

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

      И да, то что там кириллица, это минимальная проблема, очень быстро привыкаешь.


      1. Constanine
        27.10.2022 14:32
        +2

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


        1. rabid_otter Автор
          27.10.2022 14:33

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



          1. DMGarikk
            28.10.2022 06:59

            Visual basic более функционален чем 1C, в нем хоть ООП есть
            … а в чем собственно проблема что код на vb похож?


      1. antonblockchain
        28.10.2022 11:29

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


    1. n0ther
      27.10.2022 14:13

      Можно писать на английском


    1. dvim
      27.10.2022 16:48

      По правде можно писать и на латинице.
      Есть отдельные конфы на ней.
      Кириллица традиционно используется, потому что 99% документации на ней.


    1. gybson_63
      27.10.2022 23:43

      А где это у нас хоткеи зависят от раскладки? Можно списочек этих криворуких мудаков?


    1. elFurion
      29.10.2022 12:49

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


      1. rabid_otter Автор
        29.10.2022 13:17

        Да, можно выгрузить все в XML файлы и редактировать их в VSCode. Формы правда руками придется править, хотя может быть плагин придумали уже. Результат работы загружать в конфигуратор уже. Вот если бы изначально вендор сделал хранение конфигурации в виде списка XML файлов, а в файл или табличку в базе собирал при некой компиляции, то конечно были бы трудности с преобразованием в один некий исполняемый аналог jar файла, но не было бы этих приседаний с загрузкой XML в конфигуратор. Да и git прикрутить было бы легче.


  1. Naf2000
    27.10.2022 11:51

    Ну так давайте свое организуем. Возьмем, например linq2db как ORM и blazor как UI и построим свой фреймворк аналог 1С


    1. timka05
      27.10.2022 11:54
      +1

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

      Да всё уже есть
      https://lsfusion.org/ru/

      На хабре у них есть свой хабра-корп раздел


      1. Naf2000
        27.10.2022 12:26

        Молодцы. Знаю про них. Но опять свой язык программирования


        1. timka05
          27.10.2022 12:33

          Ага. И так в любой предметной платформе. Просто потому, что так удобнее и логичнее.


          1. Ivan22
            27.10.2022 13:10

            ну не в любой. В банковской автоматизации где не прижились ни 1С ни SAP все платформы не изобретают никаких новых языков, юзают либо pl/sql либо что-то высокоуровневое с элементами no-code


  1. Lemyyyr
    27.10.2022 12:02
    +7

    Я 10 лет работал 1Сником. И все 10 лет испытывал постоянный стресс, жаловался на работу и страдал. Работал и во франчайзи и на "заводе". Везде всё одинаково.

    По сути, 80% всех 1Сников - это сопровожденцы/внедренцы типовых конфигураций. Ничего своего или нового не пишут. Поэтому успех ждёт тех, кто знает какой-либо учёт, т.е. предметную область, и в той конфигурации, с которой он работает.

    Я страдал, потому что любил код, а не разбираться в том, куда пропала копейка или почему себестоимость легла не на тот счёт. Более того, даже если ты хочешь сделать что-то хорошее - тебе это просто не дадут сделать. Во франче главное - часы. Тяп-ляп и в продакшен. Ну не будет клиент платить за какие-то автотесты или оптимизацию/рефакторинг. На "заводе" чуть свободнее, но всё равно не разгуляешься. Свою подсистему или новую небольшую конфигурацию скорее всего не дадут написать, потому что потребности такой нет. Максимум - интеграция с каким-то документооборотом, или мессенждерами.

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

    Но вот уже почти год как я перешёл из 1С в Java разработку. И это небо и земля! Есть нормальное версионирование - git. Есть проектные команды с чётким разграничением ролей, т.е. я 90% времени посвящаю коду и 10% на всякие митинги внутри команды. Мне не нужно знать учёт! Вообще не парит, какие там законы понапридумывали и как это вендор реализовал у себя. 100500 бесплатных курсов, ресурсов и форумов, где можно найти ответ на любой свой вопрос (заодно и английский прокачаешь). Если есть какая-то библиотека, то есть и документация по ней. А не как с СКД в 1С, где попробуй ещё найти информацию о том, как сделать нестандартный отчёт с использованием макетов. Есть тесты!

    Полная свобода! Только код. Вся сложность сводиться к умению грамотно спроектировать классы и структуру БД. Говнокод никто не отменял как и всякое легаси, но с этим на порядок приятнее разбираться, чем с такими же проблемами в 1С - просто потому, что инструментов для этого больше и они удобнее.


    1. rabid_otter Автор
      27.10.2022 12:03

      Полностью согласен с Вами.


    1. svcoder
      27.10.2022 14:24
      +2

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


      1. Neikist
        28.10.2022 13:06
        +1

        Есть нюанс. Если на условной java почти везде хорошо, а в 1с нужно долго искать хорошее место (правда убогости инструментов это не отменит) — то может нафиг оно не надо?


      1. vis_inet
        28.10.2022 19:03

        А те, кто разбирается ещё и в учёте, зарабатывают больше.


    1. justPersonage
      27.10.2022 14:51

      И все 10 лет испытывал постоянный стресс

      Это нетолько к 1С относиться. В Геймдеве тоже самое, как и в др ит сферах.
      По сути, 80% всех 1Сников — это сопровожденцы/внедренцы типовых конфигураций. Ничего своего или нового не пишут.

      Во многих ит компаниях похожая ситуация. Винтик в системе.
      Тяп-ляп и в продакшен.

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

      ?? Ну так и Java/С++/Php прогер — (в подавляющем ) сам общается с заказчиком, сам кодит, сам тестит.
      Но вот уже почти год как я перешёл из 1С в Java разработку. И это небо и земля!

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


      1. F0iL
        27.10.2022 15:00
        +2

        Ну так и Java/С++/Php прогер — (в подавляющем ) сам общается с заказчиком, сам кодит, сам тестит.

        Это разве что в низкопробных галерах и в госучреждениях. В приличных местах с заказчиками общаются менеджеры и аналитики, а тестируют тестировщики (QA).

        Пройдут годы, и у вас вновь будет апатия.

        А может и не будет.


        1. justPersonage
          27.10.2022 15:27

          тестируют тестировщики (QA).

          А что Java прогер тестировать вообще ничего не должен?


          1. F0iL
            27.10.2022 17:22
            +4

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

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


            1. vkni
              29.10.2022 11:39
              +1

              Да и результат будет лучше, когда тестирует не тот, кто разрабатывал.

              Ибо если Вася уверен, что 2 + 2 = 5, то он и в тесте также напишет! :-)


      1. Neikist
        28.10.2022 13:08
        +1

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

        4.5 года был в 1с (далеко не в самом худшем франче по устройству процессов и уровню решаемых задач), сейчас 4 года как перешел на андроид. Это было лучшее решение в моей жизни, до сих пор вспоминаю 1с с содроганием.


        1. F0iL
          28.10.2022 13:39
          +1

          Вот кстати да. Ровно тоже самое что написано выше мне говорили 8 лет назад, когда я уходил в "серьезное" программирование из болота под названием АСУТП. 8 лет прошло, а дофаминовый шторм до сих пор не прошел и никакой апатии не наблюдается, все устраивает. Так что решение однозначно было правильным.

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


    1. F0iL
      27.10.2022 14:59
      +6

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

      Точно так же веселят его рассуждения про "бизнесу не нужен ваш код, алгоритмы, автотесты и архитектуры, бизнесу нужно решение его задач". И почему-то забывает, что все-таки, пусть и не всегда, но нередеко, бизнесу нужно не просто "решение задач", но и чтобы эти задачи были решены качественно - чтобы всё не тормозило как черт знает что, чтобы не падало и не ломалось от неосторожного щелчка и фаз луны, чтобы в будущем изменить условия задачи или решить заодно еще одну можно было за разумное время, а не перепахивать всё вверх дном с матами и регрессиями. И если вы решаете задачи с помощтю кода, то для этого и нужны те самые оптимальные алгоритмы, тесты и продуманная архитектура. Для бизнеса-ларька пойдет и "херак-херак в продакшн", а для серьезного бизнеса с долгосрочным горизонтом планирования - уже нет.


      1. DvoiNic
        27.10.2022 17:10

        И почему-то забывает, что все-таки, пусть и не всегда, но нередеко, бизнесу нужно не просто «решение задач», но и чтобы эти задачи были решены качественно — чтобы всё не тормозило как черт знает что, чтобы не падало и не ломалось от неосторожного щелчка и фаз луны, чтобы в будущем изменить условия задачи или решить заодно еще одну можно было за разумное время, а не перепахивать всё вверх дном с матами и регрессиями.

        наговнокодить можно на любом языке программирования, в любой системе, в любой стране… Да, в 1с это, возможно, легче сделать. Плюс низкий порог вхождения помогает.


        1. F0iL
          27.10.2022 17:16

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


          1. rabid_otter Автор
            27.10.2022 17:18
            +2

            вот именно!
            это кстати и было решающим действием к написанию этой статьи.
            собрав остатки сгоревшего стула, я сел сочинять комментарий к статье, но в итоге, комментарий перерос в то, что вы прочли :)


      1. gybson_63
        27.10.2022 23:39
        -4

        Лейтмотивом там проходит более высокий уровень абстракции. Это как в пайтон ты датасайнтист, а в С++ червь компьютерный, из той же оперы.


        1. Neikist
          28.10.2022 13:10
          +1

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


          1. gybson_63
            28.10.2022 13:23
            -1

            Так можно и про пайтон сказать. Поставил "Пандас" и всё, дата-сайнтист :)


            1. Neikist
              28.10.2022 13:51
              +2

              В питоне как раз можно нормальные абстракции строить свои, в отличии от 1с. Хотя не любитель питона из за gil и динамической типизации.


      1. axmct
        28.10.2022 03:01

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

        Для последнего это скорее "херак-херак, херак-херак, херак-херак, херак-херак (стук колес) и в продакшн".

        Главное на третьем хераке сделать рефакторинг когда все сценарии уже собраны.

        Просто другая планета.


  1. mini_nightingale
    27.10.2022 13:27
    +3

    Таки 1с - это эталонное ненужно.

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


  1. Georgii_L
    27.10.2022 13:28
    +3

    Ещё добавил бы такую аналогию- довольно популярны сейчас специализированные высокоуровневые инструменты. Своя ЯП есть в power bi, в Exel есть vba, в компоненте экзель power qwerty тоже свой язык программирования. И люди пишут. Видимо потому что какие то задачи эффективней (быстрей). где то ниже порог вхождения. Хотя можно те же данные отображать через джаспер/кристал/ещё какой нибудь репорт и вытягивать стандартными sql запросами

    Хотя и возможностей там куда меньше чем в каком ни будь древнем Delphi (где хочешь- с сокетами работаешь, хочешь- вставки пишешь на ассемблере хочешь -без каких то лицензий хоть миллион потоков создаешь; и кстати можно ещё и ПО продавать, например неограниченное лицензий на регион, что в решениях 1С невозможно). Ну а на каких нибудь плюсах и десятки компиляторов и куча фреймворков на выбор - и от вендоров -mfc,vcl,..net и кросплатформенные (qt) и работать может от микроконтлроллеров и часов то меймфреймов и можно забабацать хоть ОС.

    С позиции программиста удобней универсальный ЯП. тот же пайтон -хоть бэкенд, хоть аналитику данных, хоть скрипты для администрирования, а если заморочится то и приложение c GUI, можно даже для сотового. Но для специалиста который решает конкретные задачи и бэкграунда в разработке не имеет- может быть куда удобней специфичный инструмент

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


    1. rabid_otter Автор
      27.10.2022 22:00

      Ещё добавил бы такую аналогию- довольно популярны сейчас специализированные высокоуровневые инструменты. Своя ЯП есть в power bi, в Exel есть vba, в компоненте экзель power qwerty тоже свой язык программирования. И люди пишут. Видимо потому что какие то задачи эффективней (быстрей). где то ниже порог вхождения. Хотя можно те же данные отображать через джаспер/кристал/ещё какой нибудь репорт и вытягивать стандартными sql запросами

      low-code давно в моде, сколько себя помню.

      С позиции программиста удобней универсальный ЯП. тот же пайтон -хоть бэкенд, хоть аналитику данных, хоть скрипты для администрирования, а если заморочится то и приложение c GUI, можно даже для сотового. Но для специалиста который решает конкретные задачи и бэкграунда в разработке не имеет- может быть куда удобней специфичный инструмент

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

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

      да, уютная золотая клетка от местной корпорации добра :)


  1. MrNutz
    27.10.2022 13:49
    +3

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

    А в кризисном 2008 чуть не вляпался по полной. До сих пор лежит набор адепта. Какая то коробочка с книгой и чем то ещё. Надо не забыть выкинуть. Нормальную работу как то сложно было найти, вот и возникло помутнение. Но, обошлось :)

    Сейчас сам себе сеньор и условия весьма шоколадные. Из большой конторы по заказной разработке ушёл в мелкую, но с перспективами. Пилю свою ИС и в планах развитие ИТ в принципе. Никаких обвесов вроде РП и аналитики. Сейчас так быстрее. Опыт в 15+ лет позволяет быть человеком-оркестром :)


    1. rabid_otter Автор
      27.10.2022 22:02

      Начинал карьеру как раз с некоего отношения к 1С

      многие с нее начинали, кого-то вот затянуло надолго.

      Пилю свою ИС и в планах развитие ИТ в принципе. Никаких обвесов вроде РП и аналитики.

      вот, а по мнению автора оригинальной статьи, такие как Вы кодят по ТЗ :)


  1. n0ther
    27.10.2022 13:59

    Да, в 1С есть автоматизированное тестирование, Vanessa и другие инструменты. Но почему даже вендор не использует их? Почему тестирование остается уделом небольшой части энтузиастов?

    Это вы с чего решили, что в 1С нет автоматизированного тестирования? 1С очень неохотно афиширует свою внутреннюю кухню. Я уверен, что оно есть, но не дает 100% результат.

    Ленивые и жадные.

    Оба тезиса спорные. Как вы написали "100500 противоречащих друг другу законов, которые успел напечатать бешеный принтер" должны найти отражение в программе, например 1С:Бухгалтерия Базовая, которая продается за 3300 и даёт доступ к обновлениям без ИТС. И эти изменения должны быть реализованы в срок.


    1. rabid_otter Автор
      27.10.2022 14:24
      +1

      Это вы с чего решили, что в 1С нет автоматизированного тестирования?

      с того, что документ "Перемещение товаров" не был проведен ни разу на этом автоматизированном тестировании и таким образом был выпущен в тираж.


      1. n0ther
        27.10.2022 14:34
        +1

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


        1. rabid_otter Автор
          27.10.2022 14:35
          +1

          отлично, зачем тогда так писать?
          разработчик получается вообще не тестировал то, что написал?


          1. n0ther
            27.10.2022 14:42
            -1

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


            1. rabid_otter Автор
              27.10.2022 14:43
              +2

              я Вас понял. спасибо.


    1. rabid_otter Автор
      27.10.2022 14:24

      Базовая, которая продается за 3300 и даёт доступ к обновлениям без ИТС. И эти изменения должны быть реализованы в срок.

      если ты монополист, можно с барского плеча иногда и посыпать чего-нибудь.


      1. n0ther
        27.10.2022 14:26

        так себе аргумент, учитывая функционал который даёт конфигурация и покрывает 99% потребностей ИП и малого бизнеса


        1. rabid_otter Автор
          27.10.2022 14:28

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


          1. n0ther
            27.10.2022 14:57

            Значит вы согласны, что 1С не ленивые и не жадные?


            1. rabid_otter Автор
              27.10.2022 14:58

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


              1. thevlad
                27.10.2022 15:25

                Думаете у программиста ABAP с этим проще?


                1. vedenin1980
                  27.10.2022 15:51
                  +3

                  Проще. У SAP есть возможность использовать Java, плюс перескочить в компанию по всему миру на выскоие зарплаты (возможно более высокие, чем у Java). Ну и в CV SAP могут засчитать за опыт Java разработчика (никто же не знает ABAP или Java вы там использовали), а с 1С возьмут разве что на джуна в Java, а для опытного специалиста с семьей и ипотекой это очень больно финансово.


              1. n0ther
                27.10.2022 16:10

                "Они привязали" и "жадные и ленивые" это разные тезисы, не связанные между собой.

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

                ИМХО, проблема не в экосистеме, а в самом программисте.


                1. rabid_otter Автор
                  27.10.2022 16:15
                  +1

                  платформа 1С тут не причем, согласен.
                  никогда не причем.
                  об этом даже стыдно думать :)


    1. sergpewpew
      27.10.2022 16:00
      +4

      То, что они ленивые и жадные понимаешь спустя много лет работы с этой жёлтой программой: ленность является следствием монопольного положения особенно в части поспевания смены печатных форм за бешенным принтером законов. Для чего им что-то менять в ide, когда а) нет конкурентов б) чтобы сделать ide подобный продуктам jetbreins нужно вложить деньги - и тут мы приходим к жадности. Зачем им что-то менять, когда итак все зашибись, тем более Oracle ушел. Все что описал автор - почти со всем согласен и это большая боль, о проблемах нужно говорить чтобы они решались или переходить на другие платформы если они не решаются. Не согласен только с тем, что на 1с нужно сайты парсить, делать отображение dom и прочее стороннее. 1с я воспринимаю как программу для учёта, а не для решения задач всего и вся как ее пытаются натянуть, "1с исполнитель" дичь какая..


      1. rabid_otter Автор
        27.10.2022 22:04

        Для чего им что-то менять в ide, когда а) нет конкурентов б) чтобы сделать ide подобный продуктам JetBrains нужно вложить деньги - и тут мы приходим к жадности. Зачем им что-то менять, когда итак все зашибись, тем более Oracle ушел. 

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

        "1с исполнитель" дичь какая 

        ничего нового, закрытая технология для уютной "золотой клетки".


  1. Xambey97
    27.10.2022 14:11

    В далеком 2009-м я вкатился в 1С, в провинции просто не было другого способа попасть в IT

    Я программирую уже более 20 лет, а самое главное – я видел программистов из обоих миров.

    Как-то не сходится


    1. rabid_otter Автор
      27.10.2022 14:23
      +1

      скандалы, интриги, расследования.
      за деньги в 2009-м, а не за деньги, just 4 lulz с детства.
      или программировать можно только после получения ВУЗовского образования?


      1. Xambey97
        27.10.2022 15:20

        нет, я сам довольно много лет программировал для себя с 10 лет еще (Lab View, basic, pascal, nxt, си, с++ (cli), c#, python, js — это только с чем я работал, но назвать себя во всем этом экспертом, кроме моего нынешнего стека (js/ts) у меня язык не повернется, знания устаревают), а первую работу (не белую) получил в IT получил в 18, но думаю большинство не склонны это время считать, «рабочим» или «реальным» опытом. Умение кодить != умение делать что-то сложное в группах, чтобы. Все-таки ТС в основном пишет о проектировании и проблемах, которые не возникают на уровне мелких пет проектов в школьные годы, но все-равно это субъективщина, так что может вы и правы


  1. svcoder
    27.10.2022 14:18
    -1

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


    1. rabid_otter Автор
      27.10.2022 14:25
      +1

      естественно, "вы не понимаете, это другое".


      1. svcoder
        27.10.2022 14:58

        Ну вы пишите, что устали от ограничений 1С. То есть существует некая учетная система, которая написана на java и которая более функциональная чем 1С? Ну напишите тогда ее название, может и мы туда перейдем.
        Просто единственное, что я видел похожее на учетную систему, написанную на Java это iDempier, но сравнивать даже с УПП нельзя, скорее с комплексной 4.5 под 1С:Предприятие 7.7.
        У меня как-то была реальная возможность перейти на DAX, но даже не смотря на то, что там было ООП и Java-подобный язык я отказался от этой затеи, просто увидев как они не могут годами решить очевидные проблемы. А уж сколько там велосипедов наизобретали когда локализовывали ее под российский учет просто в голове не укладывалось.


        1. rabid_otter Автор
          27.10.2022 15:02

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


          1. svcoder
            27.10.2022 15:09
            +1

            Ну тогда и пишите, что вы потеряли интерес к учетным системам. У меня вот нет интереса к веб-разработке, не смотря на то что я приложения на Django писал. Также нет интереса к мобильной разработке, хотя я писал мобильное приложение на С++. Но я при этом не пишу, что Django и C++ отстой и поэтому я ушел в 1С. Где кстати стало возможным писать как веб-приложения, так и мобильные.


            1. rabid_otter Автор
              27.10.2022 15:12

              почему я должен вообще что-то писать? все есть в моей статье.


  1. vedenin1980
    27.10.2022 14:45
    +2

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

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

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

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

    То если лет 15-20 назад, когда я только начинал, был выбор получать меньше денег в универсальном языке с большими перспективами в будущем, или больше денег сразу на 1С с минусами в виде привязки к платформе, то сейчас особого плюса идти в 1С нет (кроме тех кто не «тянет» другие стеки и просто готов получать деньги не особо напрягаясь). Все, ИМХО, конечно.

    P.S. Все остальные плюсы и минусы вообще мелочи по сравнению с привязкой к экосистеме 1С и сложностью с нее соскочить.


    1. rabid_otter Автор
      27.10.2022 15:40

      прям в точку!


    1. Honomer
      27.10.2022 15:59
      -1

      Ну... вообще-то можно переехать в другие страны, просто их количество и количество вакансий там очень ограничено. Турция, Вьетнам, Венесуэла, Испания, Германия, Канада, США. Там продаются локальные решения на платформе 1С.


      1. vedenin1980
        27.10.2022 16:06
        +3

        Турция, Вьетнам, Венесуэла, Испания, Германия, Канада, США. Там продаются локальные решения на платформе 1С.

        Давайте вы попробуйте найти и дать ссылки хотя бы по 3 вакансии 1С программиста в Германии, Канаде или США. Я уж не говорю о том, чтобы они готовы были обеспечить релокацию специалиста из-за границы.

        P.S. Если что, продукция АвтоВаза тоже там продавалась, но такими штучными экземплярами, что ничего не меняла.


        1. rabid_otter Автор
          27.10.2022 16:12
          +1

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


        1. Honomer
          27.10.2022 16:17

          Заметьте, я сразу написал, что рынок очень ограничен.

          Ну вот, например: https://firstbit.ca/en/careers


          1. vedenin1980
            27.10.2022 16:24
            +1

            Это равносильно практически невозможно и не стоит рассматривать как реальный путь иммиграции. Даже если устроитесь в той единственной вакансии в условной Германии, что вы будете делать если вас решат сократить?


            1. Honomer
              27.10.2022 16:30

              Наверное можно будет поискать по компаниям из этого списка:

              https://www.1ci.com/customer-stories/


              1. vedenin1980
                27.10.2022 16:42
                +3

                Вы, конечно, можете поискать. Но знаете сколько я вакансий 1С я нашел в linkedin (по всему миру)? Одну, во Вьетнаме.

                Вы можете представлять сколько их всего в мире, особенно после последних событий. ИМХО, шанс найти работу 1С за границей околонулевой.


                1. gybson_63
                  27.10.2022 23:27
                  -4

                  А вы знаете сколько соискателей по всему миру?

                  Моложе, с современным образованием и гит с первого класса?


                  1. vedenin1980
                    27.10.2022 23:38
                    +4

                    Нет, но подозреваю если некоторая условная фирма разместит сейчас вакансию, где берут 1C разработчика с релокацией в Германию и полноценной высокой немецкой зарплатой и достаточно знания только русского — конкурс будет тысяча человек на место, так как это практически единственый способ специалисту по 1С иммигрировать.

                    А чем вы спорите-то? Отсуствия спроса на 1С за рубежом (не считая ближнего зарубежья) это вполне себе факт.


    1. Serg79
      27.10.2022 20:05
      +5

      Хорошо написал. Сейчас в 1с смысла идти нет. 15-20 лет назад это было оправдано финансово.


  1. Pilgrim54
    27.10.2022 14:53

    А есть ли универсальный ответ на следующий вопрос: чем зарабатывать программисту?

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

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

    • или всё же искать простую и изящную систему ?


    1. vedenin1980
      27.10.2022 15:45
      +2

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

      В разы лучше легаси система с адекватной компандой, менеджерами и заказчиками, чем идеальная система (которых в реале нет), но с неадекватными всеми остальными. ИМХО.

      P.S. Найти все это и хорошую зарплату сложно, но с опытом и навыками (и умением выбирать) с каждным разом все проще.


  1. leemuar
    27.10.2022 15:27
    +1

    Спасибо за статью. Расскажите в какой области вы работаете сейчас? Насколько вам там комфортно? Какие плюсы и минусы этой области вы для себя видите? Какие возможности радуют вас постоянно и какие недостатки приводят в уныние?


    1. rabid_otter Автор
      27.10.2022 16:34

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


      1. leemuar
        27.10.2022 16:58

        Какие языки и технологии используете?


        1. rabid_otter Автор
          27.10.2022 17:16

          golang, lua, java для тестов, kubernetes, docker
          postgre, redis, kafka
          gitlab ci/cd, bash.

          мне нравится.


  1. freelook00
    27.10.2022 15:43

    Спасибо за интересную статью, я аж даже восстановил свой старый хабр-аккаунт :)

    Бегло глянул статью Овсянкина: на мой взгляд - это конспект презентации. А цели у презентации иные, нежели у стати. Так, что ваш разбор тезисов, очень кстати.

    Многие из перечисленных проблем, я наблюдаю с точки зрения системного администратора, ибо постоянно что-то сбоит, ломается или требует "странных" решений.

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

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

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

    4. Web-клиент, это дествительно боль.

    5. Интеграции: есть потребность, выполнять webhook из внешних сиситем, по событию. И я наблюдаю проблемы с ними у разработчика в одном из проектов.

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


    1. rabid_otter Автор
      27.10.2022 22:09
      +2

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

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

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

      язык то можно выучить, а вот рамки ЯП 1С не расширить.

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

      +1 000 000, о чем я и говорю.

      Web-клиент, это дествительно боль.

      это особая вещь, для ценителей страстного секса.

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

      вот про эти ограничения я и говорил, да.


      1. gybson_63
        27.10.2022 23:22
        -2

        Сейчас 2022 год, рамки расширяются микросервисами. HTTP и JSON в 1С "из коробки" вполне годные, даже весьма. А XML там вообще роднее родного.


  1. Kembreg
    27.10.2022 16:36
    +1

    У автора конечно полно передергиваний и фактических неточностей. Например   "community edition" в 22 платформу не завезли, хорошо если в 23 появится, а "Функции логарифмов в запросе" появились аж в 20

    Ну и странно конечно видеть статью в стиле "1С не развивается, все пропало" практически сразу после релиза 1С Исполнителя на принципиально новом языке (с регулярками, функциональными типами, иерархией типов, лямбда выражениями и т.д. и т.п.), появлением начала книги по 1С:Предприятие.Элемент (разработка в браузере, приложения собираются и живут в контейнере) и прочим равным. mag1c.ru на нем написан кстати

    В целом конечно первое, второе и третье впечатление - вам не повезло с работодателем и "пятью типовыми". Рад что на новом месте все сложилось, нашли дело по душе


    1. rabid_otter Автор
      27.10.2022 16:42

      У автора конечно полно передергиваний и фактических неточностей. Например   "community edition" в 22 платформу не завезли, хорошо если в 23 появится, а "Функции логарифмов в запросе" появились аж в 20

      а то есть community edition даже еще не завезли. не, нежадные совсем.


    1. rabid_otter Автор
      27.10.2022 16:43

      Ну и странно конечно видеть статью в стиле "1С не развивается, все пропало" практически сразу после релиза 1С Исполнителя на принципиально новом языке (с регулярками, функциональными типами, иерархией типов, лямбда выражениями и т.д. и т.п.), появлением начала книги по 1С:Предприятие.Элемент (разработка в браузере, приложения собираются и живут в контейнере) и прочим равным. mag1c.ru на нем написан кстати

      очередной собственный язык для СНГ. ничего нового, снова какой-то велосипед от вендора в виде закрытого ЯП, которым планируется пристегнуть разработчиков 1С еще сильнее к 1Сному стеку. разумеется снова надо будет переучиваться, как 1Сники уже не раз переучивались, с 7.7 на 8.1, как с 8.1 на 8.3.


      1. Kembreg
        27.10.2022 16:49

        Согласен, кейс "Есть проблема - иду на stackoverflow" не сработает, не всем удобно


        1. rabid_otter Автор
          27.10.2022 16:50

          согласен, иду на мисту звучит лучше :)


    1. rabid_otter Автор
      27.10.2022 16:44

      В целом конечно первое, второе и третье впечатление - вам не повезло с работодателем и "пятью типовыми". Рад что на новом месте все сложилось, нашли дело по душе

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


  1. dvim
    27.10.2022 17:03

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

    Технических минусов немало, но в целом быстро разрабатывать приложения, которые доступны в разных Ос и в вебе... это стоит того.
    Правда жизнь вносит коррективы, в браузере надо использовать немного другие подходы, плюс есть неприятные глюки в веб представлении.
    Но, в целом , сейчас решений которые могут "сделать RAD" мало.
    Есть elma/creatio/salesforce - но реальная трудоемкость проектов там - "слезы".
    В большинстве решени "доработками" называют просто возможность добавить доп. поля в CRUD.

    Этап 2 - почему потерял интерес.
    Ответ в одно слово - "политика". Есть большие сомнения в стране, международность знаний важнее.


  1. Koval97
    27.10.2022 17:05

    У меня лично подобная исповедь случилась после миграции с Delphi на C/С++ после долгого созревания. Много лет искал среду, напоминающую мне любимую среду, которую не за красоту называл лучшей. Но когда нашёл Lazarus, установил и запустил его, и со слезами на глазах, сказав "Это же он самый!", простился.

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


    1. rabid_otter Автор
      27.10.2022 17:14
      +1

      как вас помотало. надеюсь что Вы нашли то, что искали :)


  1. Mikhail1972
    27.10.2022 17:11

    зарплату в 1с ЗУП считаете?


    1. rabid_otter Автор
      27.10.2022 17:11

      я не считаю, но бухгалтерия, да.
      устал повторять - 1С для автоматизации учета - самое то.
      тут я не спорю.


  1. remendado
    27.10.2022 17:12

    Я программирую уже более 20 лет // Вот именно, в этом чаще всего и дело. После 40-45 у программистов наступает кризис, который может привести к уходу из профессии или попытке поднять самостоятельный проект, который чаще всего не приносит создателю дивидендов.


    1. rabid_otter Автор
      27.10.2022 17:12

      мне еще далеко до 40 :)


  1. Mikhail1972
    27.10.2022 17:20
    +1

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


    1. rabid_otter Автор
      27.10.2022 17:22
      -1

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


  1. Mikhail1972
    27.10.2022 17:28
    -1

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


    1. rabid_otter Автор
      27.10.2022 17:42

      тут кто-то писал что наговнокодить можно на любом ЯП, я с этим не спорю.


  1. s60
    27.10.2022 17:33
    +1

    Нейронные сети, ML и это вот все. PyTorch, Keras из коробки уже завезли?

    ммм… а зачем в бухгалтерии нейронные сети ???


    1. rabid_otter Автор
      27.10.2022 17:47

      конкретно в бухгалтерии не нужны.


      1. s60
        28.10.2022 10:46

        а где в 1С нужны?


        1. rabid_otter Автор
          28.10.2022 11:07
          -2

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


  1. s60
    27.10.2022 17:38

    Я начал учить Java, написал на ней пару пет-проектов, а потом еще и на Golang, который мне очень понравился.

    это всё в рабочее время или после работы?
    какова суть этих пет-проектов?

    После написания очередного пет-проекта я составил резюме на Golang, прошел собеседование и получил хороший оффер на позицию Middle Golang разработчика.

    какова суть/размер/сложность пет-проекта, после которого дали предложение о работе в качестве Middle Golang разработчика?


    1. rabid_otter Автор
      27.10.2022 17:48

      это всё в рабочее время или после работы?
      какова суть этих пет-проектов?

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


    1. rabid_otter Автор
      27.10.2022 17:49

      какова суть/размер/сложность пет-проекта, после которого дали предложение о работе в качестве Middle Golang разработчика?

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


  1. ComodoHacker
    27.10.2022 18:33
    +3

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

    Ответ — да, уступает, и сильно. И этого никто не скрывает. Платформа 1С (8 версии) задумывалась, разрабатывалась и продолжает разрабатываться как инструмент для решения вполне определенного, ограниченного круга бизнес задач. Да, в последнее время разработчики платформы пытаются понемногу расширять сферу ее применения, добавляют новые возможности. Но происходит это гораздо медленнее, чем в других платформах, и не является основным вектором развития. 1С нашла свою нишу и не стремиться занять все остальные. Никто не призывает (во всяком случае со стороны вендора) разрабатывать на 1С супер-быстрые веб-приложения, интернет мессенджеры или серверные платформы для HFT. Никто не говорит, что с появлением %FEATURE_NAME% 1С наконец-то может заменить Java или .NET.

    В своей же нише 1С действительно рулит, прежде всего, с точки зрения бизнеса. А с точки зрения бизнеса важны в основном лишь две характеристики: стоимость и time-to-market. То, что .NET команда сможет сделать за неделю, уложившись в один спринт только при условии грамотного применения Agile, опытный 1С-ник (я не про типовых франчей) делает за 2-3 дня в одно рыло, извините мой французский, либо в паре с одним тестировщиком. За те же или меньшие деньги.

    Да, у этого есть оборотная сторона. Да, база будет весить 2 Гб вместо 200 Мб. Да, время реакции будет приемлемым, а не супер быстрым. Да, дизайнеру негде развернуться, всего две темы на выбор. Но бизнес это устраивает.

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

    Все, что касается критики инструментария разработки, полностью поддерживаю. Это действительно боль и слабое место. Ресурсов на это у вендора действительно не хватает. Бюджеты тут все-таки не FAANG-овские.


    1. victor79
      27.10.2022 19:17
      +1

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


  1. Serg79
    27.10.2022 19:31
    +1

    Причины ухода из 1С вижу следующие

    1. Снижение объёма работ, и этому есть тоже нескольких причин. Во-первых, улучшение кода типовых конфигураций, где для официального "белого" учёта сделаны очень много. Необходимости в устранении ошибок, дополнительных типовых формы практически нет. Клиент электронного документооборота сделан неплохо. Во-вторых, все перешли с платформы 7.7 на 8.3, а новой версии нет.

    2. Сокращение количества организаций и предпринимателей. То есть потенциальных мест работы стало меньше за 8-10 лет. Если пятерым средним/мелким юр.лицам требовалось пять условных программистов 1с, то в случае укрупнения бизнеса, а также слияний и поглощений, остаётся одно-два юр.лица, которым требуется 1-2 программиста вместо пяти.

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

    Стоимость разработки и сопровождения нетипового решения на 1С, на мой взгляд, сопоставима с решением на Java или C#. При этом отсутствует мобильность, масштабируемость, но присутствует зависимость от вендора и лицензий.

    Минусы 1с как платформы

    1. Кроссплатформенность почти отсутствует.

    2. в случае нескольких серверов и работы через web клиент, не работает SSO в доменной авторизации, и это не могут починить очень долго.

    3. отсутствие мобильных решений

    4. слабое аналитическое решение в сравнении с PowerBI тем же. Плюс лицензионная политика если приобретать 1с:аналитику

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

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


    1. svcoder
      27.10.2022 21:59
      -3

      Разберу по пунктам столь удивительные утверждения:

      Снижение объёма работ,

      Тот кто работает в более менее крупном франче, скажет что работы увеличилось в разы и будет еще больше, т.к. более менее крупные конторы отказываются от западных ERP-систем

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

      Видимо вы не видели код УХ, да и в ERP есть куча ошибок или методологических недоработок

      Во-вторых, все перешли с платформы 7.7 на 8.3, а новой версии нет.

      Помимо тех кто сидит на западных ERP-системах, есть куча пользователей УПП, которые мечтают о переходе

      Сокращение количества организаций и предпринимателей. То есть потенциальных мест работы стало меньше за 8-10 лет. Если пятерым средним/мелким юр.лицам требовалось пять условных программистов 1с, то в случае укрупнения бизнеса, а также слияний и поглощений, остаётся одно-два юр.лица, которым требуется 1-2 программиста вместо пяти.

      Пострадал малый бизнес - общепит, услуги, но крупняк остался и все хотят внедрения ERP, который 1-2 программистами не внядряется

      Пусть асинхронных вызовов толком нет, однако есть возможность распараллелить вычисления, перекинуть их на сервер и дождаться результатов

      В 8.3.18 появились async/await. Какая еще асинхронность вам нужна? Продолжить работу в приложении не дожидаясь результатов стало доступным еще в версии 8.1, когда появились фоновые задания.

      Стоимость разработки и сопровождения нетипового решения на 1С, на мой взгляд, сопоставима с решением на Java или C#. При этом отсутствует мобильность, масштабируемость, но присутствует зависимость от вендора и лицензий.

      Быстрее раза в 3-4, кроме того никому пустая платформа не нужна, нужно типовое решение, в которое нужно добавить дополнительный/доработать существующую функциональность. То есть сравнивать нужно с ERP-системами на базе Java и C# с открытым исходным кодом и сопоставимой функциональностью. Такие есть?

      Кроссплатформенность почти отсутствует.

      На чем вы решили запускать, если вам не хватает Windows, Linux, MacOS, Android и iOS?

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

      доменная авторизация работает только в Internet Explorer. Даже веб-сервисы работают с доменной авторизацией, но нужно было настраивать окружение. Но кроме этого есть OpenID и токены

      отсутствие мобильных решений

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

      слабое аналитическое решение в сравнении с PowerBI тем же. Плюс лицензионная политика если приобретать 1с:аналитику

      Можно всегда выгружать данные во внешнюю БД и скармливать ее MSAS или PowerBI. А для внутренних целей и СКД достаточно.

      Декларативный интерфейс в веб-клиенте, ужасно медленно работает. По этой причине, работа вне клиентского приложения превращается в муку для пользователя.

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

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

      Средства разработки никак не влияют на развитие. Бывает пропадает интерес к какой-то области. Если уж приспичит уехать, то что мешает перейти в Axapta или SAP? Там многие привычные в 1С вещи за чудо принимают.
      Или для ваc перспектива это уйти из Java EE в разработку на Андроид? Ну я могу вам сказать, что опыт Java EE вам не сильно поможет.


    1. rabid_otter Автор
      27.10.2022 22:19
      +1

      в целом согласен, еще 1 пункт забыли - когда надоедают бесконечный учет и однотипные задачи.


    1. gybson_63
      27.10.2022 23:09
      -3

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


    1. Honomer
      28.10.2022 09:53
      +1

      1. Простите за глупый вопрос. 1С работает на винде, на линуксе, на маке, на мобилках. И сейчас они анонсировали выпуск версии под ARM. Какая кросплатформенность почти отсутствует?

      2. Про что вы говорите, когда пишете про отсутствие мобильных решений? Вот тут (https://mobile.1c.ru/?utm_source=v8_site&utm_medium=tech_page&utm_campaign=v8_link) вроде достаточно много?


  1. comol85
    27.10.2022 19:46
    -1

    Сидим на попе ровно, лет чере 5 этот же человек напишет как он ущел с Go на модный LowCode фреймворк и теперь не пишет тонн кода :). Ну сейчас конечно странное время "зачем я ушел из 1С" есть наверное первый пункт о котором все знают, но в статье не указан. Всё остальное притянуто зауши можно спорить по каждому пункту, но то что итоговый посыл правильный сейчас кто же поспорит, а ещё год назад с удовольствием покидался бы в автора какашками :)


    1. rabid_otter Автор
      27.10.2022 22:13
      +1

      зауши

      хорошо, хоть так.

      Сидим на попе ровно, лет чере 5 этот же человек напишет как он ущел с Go на модный LowCode фреймворк и теперь не пишет тонн кода :)

      хм, IT экстрасенс - это видимо что-то вроде призвания.


      1. mrkaban
        28.10.2022 11:04
        +3

        Очередной невнимательный читатель, который не пытался даже вникнуть в то, что это ответ на другую статью


  1. Krey
    27.10.2022 20:34
    +1

    .net в байткод? Ну сколько можно то в эти мифы верить.


    1. maledog
      27.10.2022 21:27
      +1

      Почему бы и ".net"? Простите за каламбур. В свое время когда выбирал какой язык мне бы помог для решения моих задач рассматривал в том числе и его. Сейчас он вполне себе выполняется рантаймом на разных платформах, в том числе перекомпилируется через JIT. Недостаток состоит в том что сперва нужно притащить рантайм на целевую платформу, при том соблюсти версию. А это проблемы. Потому остановился на golang, где компилируешь приложение вместе с необходимым куском рантайма под целевую платформу, зато в худшем случае зависимость от конкретной libc и то при условии что в зависимостях есть код на C.


      1. IvaYan
        27.10.2022 21:41
        +1

        ...в том что сперва нужно притащить рантайм на целевую платформу, при том соблюсти версию. А это проблемы.

        .net core умеет собирать self-contained версии, там конкретная версия рантайма пакуется вместе с самим приложением и только та часть, которая нужна.


        1. maledog
          27.10.2022 23:31
          +1

          Я искал в те времена, когда .net существовал только под windows. С тех пор многое изменилось, но до сих пор приложение на go у меня не получалость больше 20 Mb ну максимум 100, когда еще web-ресурсы в него упакуют в то в время как netcore-base в linux это минимум метров 200. И опять же часто требуется определенная версия.


      1. Krey
        27.10.2022 21:59
        +3

        JIT даже во времена framework 2.0 не особо любили, поэтому сразу проходились ngen`ом. В виндах даже служба есть, оптимизация Net.

        С тех пор появился компилятор Roslyn. Парой галочек в окне деплоя собирается нативный линуксовый бинарник под одну из поддерживаемых платформ.

        А вообще на хабре были темы с экспериментами сбора под uefi, dos и Windows 3. Но это уже библиотеку надо отключать. Я сам под биос собирал что-то.

        Вы просто сильно все путаете. Например рантайм с виртуальной машиной, которой net отродясь не являлся (исключая net Micro framework для микроконтроллеров)


      1. rabid_otter Автор
        27.10.2022 22:15

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

        аналогично.


    1. rabid_otter Автор
      27.10.2022 22:14

      .net в байткод? Ну сколько можно то в эти мифы верить.

      не специалист по C#, поэтому не знаю во что он на самом деле компилируется.


  1. Val83
    27.10.2022 21:18
    +1

    Последнее время тоже думал, что 1с - полный отстой, 15 лет плотно работал с ним.

    Но вот я встретил Битрикс 24... Это хуже. Это.... Слов цензурных нет ) Теперь думаю, что 1с не так уж и плох. Так что все относительно.


    1. TimoshkinVlad
      27.10.2022 22:05

      Это вы с экосистемой nvision не сталкивались. Долбанный тензерфлоу, и попытки оптимизации его под 4090 может просто уйти опять на 3 серию.


    1. rabid_otter Автор
      27.10.2022 22:15

      слышал про Битрикс, но слава богу очень поверхностно касался его.


  1. vyatsek
    27.10.2022 21:23

    может вопрос дилетантский, но почему нельзя написать какой-нить фронтент для LVVM или написать какой-нить диалект для С++ или Java, как например это сделал JetBrains с котлином.
    Котлин ООП язык с примесью функциональности, по сути фронтенд для Java, Native и т.д.
    При этом если писать для JRE, то можно использовать все либы для java, на что-то там есть мапинги, на что-то нет.
    Почему не взять какую-то стандартную платформу и заиспользовать всю ее мощность и комьюнити, при этом перкомпилить все конфигурации, ну или компилить конфигурации во время сборки? добавить какие-то тулы для фомроклепа, но поверх стандартных либ.
    С учетом кроссс платформенности перевести на англ язык и захватить например какие-то азиатские рынки, хотя там свое написано уже, но тем не менее это бы значительно расширило долю рынка.

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


    1. maledog
      27.10.2022 21:34

      Я так понимаю, потому что основной доход 1с приносят не решения, а заточенные под них программисты. Это значит с большей частью из них придется попрощаться и доходы сильно упадут. А так они внутри вполне себе пишут и на C++ и местами на Java и т. д....
      Почему упадут доходы? Потому что не факт, что освоившие новые технологии 1c программисты захотят дальше внедрять 1с, а не переключатся на внедрение конкурирующих платформ.


      1. Mikhail1972
        28.10.2022 01:10
        -1

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


        1. maledog
          28.10.2022 01:34

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

          И где тут возражение? 1c повязан со своими программистами и дистрибьюторами тоннами кода. Если завтра он все это отбросит, то потеряет примерно половину из всего этого. Не везде найдутся достаточно квалифицированные программисты на переписывание всего на java/python/c++. А если найдутся, то может они вместо переписывания решат написать с нуля. Оно 1С нужно?

          Насчет из-за границы, спасибо конечно польстили, никогда не считал что мой труд может быть ценен "там". Но увы я, живу в России, а еще я работал в компании, где пять лет заменяли самописное решение для организации склада на 1с при помощи одного крупного интегратора, но так полноценно и не заменили. А еще я знаю что в моем городе миллионнике не так уж много специалистов по настройке 1с под linux и я точно не самый худший из них. Уж по крайней мере лучше чем любой специалист этого крупного интегратора. разница лишь в том, что я специалист по linux, а не 1c.

          Ну т. е. для меня 1с - это как любое ПО под линукс, только с "нетрадиционным" способом распространения, исключающим автоматическое обновление. А так не вопрос накатить обновления из архива или сформировать конфиг в postgres pro. Завершить сессию пользователя из командной строки или наладить регулярные бэкапы при помощи дампа или обновить версию postgres.

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


    1. TimoshkinVlad
      27.10.2022 21:58

      Такие попытки были. Опен ерп вроде как.

      Но они требуют очень серьёзной поддержки и ресурсов. Кто будет за это платить?


    1. rabid_otter Автор
      27.10.2022 22:22

      может вопрос дилетантский, но почему нельзя написать какой-нить фронтент для LVVM или написать какой-нить диалект для С++ или Java, как например это сделал JetBrains с котлином.

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


    1. gybson_63
      27.10.2022 23:04
      -2

      Можно, наверное, из 1С сделать Roblox даже, только зачем?
      1С чуть больше чем голая Java, это сборник фреймворков с небольшим порогом вхождения.


    1. dvim
      28.10.2022 10:41

      Ходят слухи, что это делают.
      Хотят уйти в сторону более "стандартного" языка.


  1. TimoshkinVlad
    27.10.2022 21:56
    +2

    Простите, но тогда уж сравниваете 1с и к-нить GP или навижн или аксапту.

    1с это нишевый продукт, как и excel. Хотя в excel есть vb, но это не делает эксель...

    Хотя, я писал гейт из него в сап. Бюджетирование делали на куче филиалов. Забавно было.


  1. DanyByLuckyCraft
    27.10.2022 22:15
    +2

    Наконец то адекватная оценка 1С. Рад, что ты выплыл из этого болота


    1. rabid_otter Автор
      27.10.2022 22:22

      спасибо большое, надеюсь не придется залезать обратно, с учетом последних событий :)


  1. gybson_63
    27.10.2022 22:32
    -5

    Я программист, потому что вот

    Developer profile gybson_samara, Samara State Aerospace University (codingame.com)

    Инженер он и в 1С инженер, а гуманитарий везде найдёт повод для страдания.

    Ограничения! Какие проблемы написать внешнюю компоненту на C# или С++? Никаких. Если лапы на месте, то за день пишется вебсервис на питон для расширения функционала.

    Настоящему программисту, завсегда везде ништяк. Ну может кроме Пролога. Вы Пролог видели? Посмотрите.

    P.S. Отдельный привет всем Unity программистам. Вас также херососят?


    1. rabid_otter Автор
      27.10.2022 22:33
      +1

      вы оригинальную статью видимо не читали.
      я только прошелся по тезисам.
      а так я уже где-то ответил - какая разница на чем кодить, главное чтобы задача нравилась!


      1. gybson_63
        27.10.2022 22:56
        -3

        В С++ самая интересная задача это писать абстрактные классы и шаблоны. В Java думаю тоже. Всё остальное это такая херня, на которую жалко времени.

        Но кто же даст?

        А если вы не создаете архитектуру, то архитекторы вас имеют также, как 1С. Если не жестче. В Java очень много вкусного скрыто за protected.

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

        И это мы еще не обсуждаем Пайтон, это такой плагин к C.

        Не туда холивар затеяли.


  1. Myddl
    27.10.2022 22:34
    +3

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

    Когда последний раз обновляли этот чертов конфигуратор? Я не то что разобраться не могу, я даже нормально расставить окна не могу, чтоб у меня было хотя бы 2 модуля на экране. А если окно модуля ушло за пределы экрана, то что тогда делать, как закрыть или открыть заново? Нет даже нормальной НУМЕРАЦИИ ЧЕРТОВЫХ СТРОК, СТРОК, КАРЛ! Чтоб тебе помог автозаполнить что-то то будь добр каждый божий раз нажать cntr+space или на отдельную кнопку ситаксис-помошника. А в этой 1000 и 1 модуль тоже попробуй разобраться, да-же не за что они отвечают, а за то, что они делают. Константы которые не константы... И это малая часть того спектра эмоций, которые я получил от работы с 1с, но на последок хочу дать еще один факт, который меня окончательно добил. Есть некоторые ресурсы, которые требуют денег, ЧТОБ ПРОСТО ПРОЧЕСТЬ ДОКУМЕНТАЦИЮ, извините, но это уже ни в какие ворота не лезет.


    1. rabid_otter Автор
      27.10.2022 22:37
      +2

      Когда последний раз обновляли этот чертов конфигуратор? 

      кажется в начале нулевых, потом были какие-то минорные обновления, но в том то и дело, что минорные.

      А если окно модуля ушло за пределы экрана, то что тогда делать, как закрыть или открыть заново?

      вроде CTRL+B, но это неточно.

      Чтоб тебе помог автозаполнить что-то то будь добр каждый божий раз нажать cntr+space или на отдельную кнопку ситаксис-помошника. А в этой 1000 и 1 модуль тоже попробуй разобраться, да-же не за что они отвечают, а за то, что они делают.

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

      Есть некоторые ресурсы, которые требуют денег, ЧТОБ ПРОСТО ПРОЧЕСТЬ ДОКУМЕНТАЦИЮ, извините, но это уже ни в какие ворота не лезет.

      +100 500. они просто очень жадные.


    1. Serg79
      28.10.2022 22:05

      нумерация появится в новой версии конфигуратора - 1С: элемент, там почти как в Idea, но интерфейс и команды на русском.


      1. Neikist
        28.10.2022 23:06
        +2

        1С: элемент, там почти как в Idea

        Загуглил зверя — это же vs code, с плагинами. Ему до идеи как до китая. Ну т.е. конечно всяко лучше конфигуратора, но с идеей земля и небо.


  1. maiden666
    27.10.2022 23:37
    +6

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


    1. rabid_otter Автор
      27.10.2022 23:46
      +1

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


    1. VVizard
      28.10.2022 15:03
      +1

      "крутые и с помощью этой платформы можно написать, что угодно "

      Кстати тут автор прав, при желании НАПИСАТЬ можно что угодно, все базовое там есть, процедуры / циклы / условия / работа с СУБД. Так что формально так и есть, при должной мотивации на 1С можно выполнить любую учетную задачу, ну максимум с привлечением сторонних разработок в каких то системных вещах.

      Я в разработке 18 лет, и не скажу что прям все понял, но одну вещь я понял достаточно на глубоком уровне: Написать программу это первые 90% работы. Вторые 200% это её сопровождать, развивать, масштабировать, интегрировать.

      А вот это крайне тяжело делать на бэйсике с вкраплениями SQL.


  1. Acuna
    28.10.2022 00:03
    +3

    Единственная претензия у меня к 1С это то что она отдает каким-то просто лютым совком в самом худшем его проявлении - все эти вот БП, УТ, ЗУП, серьезно? Даже если компания мнит себя мегасовременной и даже имеет штатного психолога, ибо модно-молодежно, все-равно она будет похожа на захудалый НИИ в Зеленограде, еще и этот конфигуратор, не меняющийся с 90-х, для меня до сих пор загадка почему все российское так закостеневает в прошлом, учитывая что тот же Гугл даже время от времени меняет интерфейс своих сервисов, хотя они могут годами не меняться ибо все к ним привыкли, и я раньше тоже ругался мол вот заняться нечем, но этой статьи я понял что именно это и позволяет ему и через почти 20 лет (страшно представить) оставаться самой динамично развивающейся компанией, еще бы, если каждые несколько лет тебя встречает кардинально новый модный дизайн по всем последним гайдлайнам месячной давности, и думаешь а рано еще на пенсию-то идти, когда еще столько всего нового в мире, и прям даже как-то по-новому на все это смотришь.


    1. Mikhail1972
      28.10.2022 01:12

      конфигурато с 90хх изменился несколько раз, не говоря уже о количестве кода, вы откуда пишите такую ересь?


      1. Acuna
        28.10.2022 02:03

        Я просто процитировал фразу из статьи. Считайте образно.

        В мире 1С существует 2 IDE. Первая – православный, непоколебимый конфигуратор. Тут все в духе 1С: возможности, как у IDE из 90-х

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


        1. DMGarikk
          28.10.2022 07:13
          +1

          Конфигуратор из 90х был в 7.7, в восьмёрке он из середины нулевых по функционалу


    1. rabid_otter Автор
      28.10.2022 11:10
      +1

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


      1. Acuna
        28.10.2022 15:50

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


        1. rabid_otter Автор
          28.10.2022 15:52
          +1

          Да без проблем, каждый самоудовлетворяется как хочет.


          1. Acuna
            28.10.2022 16:55

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


            1. rabid_otter Автор
              28.10.2022 16:57

              Спасибо огромное. Ваше мнение очень важно для меня.


              1. Acuna
                28.10.2022 20:24

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


                1. rabid_otter Автор
                  28.10.2022 20:28

                  Мудрость и старость обычно приходят вместе, но иногда старость приходит одна :)


                  1. Acuna
                    28.10.2022 21:40
                    -1

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

                    Даже не поленился комменты пролистать, 80% про то что никто не хочет читать оригинальную статью, что многа букаф и что вы имели ввиду не это, то есть это ресурс для программистов, который на 90% состоит из программистов (на такие хабы случайные люди не подписаны), но никто вас тут не может понять и для программистов многа букаф, хотя были статьи и длинее в разы, всех всегда понимали (комменты к любой статье откройте), только вас одного не понимают, как-то слабо верится что это ваш первый опыт взаимодействия с людьми и произошел он только вчера при получении инвайта на Хабр, а вас тут уже не понимает никто, однако люди взаимодействуют друг с другом именно благодаря той самой мудрости, которая подразумевает что собеседник (сюрприз) тоже может быть прав сколько бы он и вы не получали бы.


                    1. rabid_otter Автор
                      28.10.2022 21:54
                      +1

                      И тут Остапа понесло


                      1. Acuna
                        28.10.2022 22:52
                        -1

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


                      1. rabid_otter Автор
                        28.10.2022 23:02

                        Продолжайте наблюдения :) Я почитаю, посмеюсь.


                    1. F0iL
                      28.10.2022 23:36
                      +2

                      то есть это ресурс для программистов, который на 90% состоит из программистов (на такие хабы случайные люди не подписаны), но никто вас тут не может понять и для программистов многа букаф

                      Это старая и давно известная проблема Хабра. У меня тут была статья (ее уже нет в открытом доступе) про подходы к C++ разработке и организацию работы такой команды. Я там в первом же абзаце рассказал, в чём именно специфика нашего проекта и команды, и отдельно прямым текстом обозначил, что мы к такому пришли по определённым причинам, но наш опыт не является истиной в последней инстанции и кому-то может вообще не подойти и показаться не уместным, и ибо случаи разные бывают. В комментариях же поднялся невероятный шитшторм, и явно было ясно, что комментаторы этот самый disclaimer в начале статьи вообще не читали - то ли потому что многабукф и они читали статью по диагонали, то ли потому что они читали ее с середины (там где был не сплошной абзац текста, а нумерованный список - то есть опять же пропустили многабукф). Вплоть до того, когда их тыкали носом в этот абзац (вежливо прося внимательно прочесть, что там написано), некоторые очень сильно удивлялись и извинялись.

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


                      1. rabid_otter Автор
                        28.10.2022 23:43

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

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

                        PS: Не могу плюсы ставить, ибо VOTER_NOT_BE_EVIL


                      1. Acuna
                        29.10.2022 00:04
                        -2

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

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


  1. gybson_63
    28.10.2022 00:12
    -3

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


  1. MikkiKre
    28.10.2022 07:39
    +2

    Я ИТэшник-эммигрант. В своё время, твёрдо решившись на переезд, не стал принципиально работать с 1С потому что за границей этот опыт 100% не пригодится. Хотя 1Сникам и платили больше. Одной этой причины для меня было достаточно. Даже не хочу углубляться и рассказывать про своё удивление, когда увидел в коде 1С двойной вложенный цикл для сложения двух таблиц в то время как за несколько лет до этого я даже в MySQL использовал JOIN.


    1. Naf2000
      28.10.2022 09:34
      +1

      Ну справедливости ради в 1С запросах к данным давно уже есть JOIN (левый/правый/внутренний/полный). А вот встроенная библиотека с коллекциями в памяти (массивами, списками, таблицами значений) - очень скудная. Например, нет простого способа отобрать строки по условию Количество<>0, только фильтры на равенство с условием "AND" между ними


    1. rabid_otter Автор
      28.10.2022 11:12
      +1

      Вы читали оригинальную статью, в которой утверждается что "1С буквально лучше всех" и настоящие программисты не думают при решении задач?
      В 1С можно делать JOIN'ы, и на других ЯП тоже можно в цикле делать SQL запросы.


  1. AmirKamolov
    28.10.2022 11:48

    Если говорить серьезно, то в Java, Golang и, скорее всего, в C# заполнение экземпляров типов с одинаковыми именами полей решается рефлексией. Но думаю, что это избыточная сложность – достаточно переложить одни поля в другие через горячую клавишу в IDE. 

    Если я вас правильно понял, то хорошим решением является какой нибудь mapper. Например Automapper из c#.


    1. rabid_otter Автор
      28.10.2022 11:49
      -1

      я написал, что если ключи заранее известны, зачем вообще рефлексию использовать.
      не знаю что такое Automapper из C# :)


  1. Hutaab
    28.10.2022 12:05
    +2

    Читая статью, каждый пункт болью отзывался в сердце. Как всё это знакомо.

    Но всё же сравнивать 1С и языки вроде java и python - это как сравнивать мягкое с тёплым. 1с всё же не язык программирования, это своего рода экосистема, платформа, где можно самим конфигурировать. И ожидать от неё того, что может java, python и другие не стоит. Да на них можно быстро сделать простенький сайт(spring, django...), ML и многое другое. Но на них нельзя за пару часов сделать простенький складской учет, с печатными формами, отчетами. У каждого есть своя ниша, C - там где важна скорость, python - обработка данных и ML, java - enterprise... Да у 1С есть болячки, а где их нет.

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

    Для автора про парсинг: запускаем selenium сервер и через запросы на чистом 1С, получаем всё, что хотим )


    1. rabid_otter Автор
      28.10.2022 12:15
      +1

      Но всё же сравнивать 1С и языки вроде java и python - это как сравнивать мягкое с тёплым.

      В оригинальной статье идет такое сравнение, я всего-лишь ответил на некоторые тезисы из нее. Вы ее читали?

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

      Да, платформа 1С - это DSL и паноптикум типовых конфигураций вокруг нее.

      И ожидать от неё того, что может java, python и другие не стоит. Да на них можно быстро сделать простенький сайт(spring, django...), ML и многое другое. Но на них нельзя за пару часов сделать простенький складской учет, с печатными формами, отчетами. У каждого есть своя ниша, C - там где важна скорость, python - обработка данных и ML, java - enterprise... Да у 1С есть болячки, а где их нет.

      Я разве оспариваю это? Наоборот, я признаю что для автоматизации учетных (!!!) задач 1С действительно победил конкурентов и стал монополистом. А вот в оригинальной статье почти прямым текстом написано, что 1С owns them all, что есть лукавство.

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

      Вот я и ушел.

      Для автора про парсинг: запускаем selenium сервер и через запросы на чистом 1С, получаем всё, что хотим )

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


      1. Hutaab
        28.10.2022 12:23
        +1

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

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

        Не так уж и много приседаний, исходя из выше указанных ограничений )

        До этого наприседался) Сделал поначалу http сервис и из python'а дергал его.


        1. rabid_otter Автор
          28.10.2022 12:38

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

          В комментариях уже исповедь всех, кто столкнулся с 1С :)

          Не так уж и много приседаний, исходя из выше указанных ограничений )
          До этого наприседался) Сделал поначалу http сервис и из python'а дергал его.

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


          1. Hutaab
            28.10.2022 13:29

            В комментариях уже исповедь всех, кто столкнулся с 1С :)

            Уже диагноз вырисовывается )


    1. Neikist
      28.10.2022 13:34
      +1

      Но держит з/п и не большой пулл вакансий в городе(в целом в ИТ сфере)

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


    1. VVizard
      28.10.2022 14:59
      +2

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

      Проблема только что индустрии не нужно делать "простенький складной учет за пару часов".

      Индустрия хочет ERP систему уровня транснационального холдинга, хочет систему расчета комунальных услуг для всей страны, систему бронирования билетов, систему управления ЖД перевозками и.т.п.

      И продукты на 1С давно уже решают такие проблемы, взять тот же Газпром который хоть и на SAP официально, а не официально в SAP все грузится из систем написанных на 1С и выгружается обратно в другие системы написанные на 1С. Автоматизация на SAP у нас в РФ чем то похожа на сказку "Каша из топора".

      Проблема 1С как раз в том что она изначально проектировалась как фреймворк для "простенький складной учет за пару часов", а пришла к автоматизации работы почты РФ.

      "Да у 1С есть болячки, а где их нет. "

      То что происходит с ЯП на котором работает 1С это не болячки, это инвалидность или дряхлость, выбирайте что ближе.

      Если проводить аналогии то есть такой "язык" Scratch, очень низкий порог входа, можно за 5 минут написать код управления машинкой игровой. Но ведь не кто не пишет на Scratch автоматизацию для почты РФ? А на 1С пишут.


      1. Hutaab
        28.10.2022 15:09

        То что происходит с ЯП на котором работает 1С это не болячки, это инвалидность или дряхлость, выбирайте что ближе.

        1с, повторюсь, это не ЯП, это платформа со своими ограничениями. И сравнивать с другими ЯП не очень корректно. Программисты на c/c++ ругают python за то, что он медленный(холиварный спор). Но никто из программистов c/c++ не пишут сайты на c/c++.

        А там где нужна скорость работы с железом не будкт писать на пайтоне.

        Но ведь не кто не пишет на Scratch автоматизацию для почты РФ? А на 1С пишут

        Значит не тот инструмент выбрали. Гвозди можно и микроскопом забивать.


  1. StarNigel
    28.10.2022 12:09
    +2

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


    1. rabid_otter Автор
      28.10.2022 12:16

      Да, это про вендора 1С.
      Ленивые (и так сойдет) и жадные (давайте с них стричь деньги за все)


    1. DvoiNic
      28.10.2022 13:07
      -1

      Состав

      Рекомендации по работе с программой.
      Описание архитектуры платформы «1С: Предприятие 8».
      Учебная версия платформы «1С: Предприятие 8.3».
      Мобильная платформа «1С: Предприятие 8.3».
      Конфигурации:
      демонстрационные конфигурации к книге М.Г. Радченко, Е.Ю. Хрусталевой «1С: Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы»;
      «Бухгалтерия предприятия»;
      «Управление нашей фирмой»;
      Мобильное приложение УНФ;
      Документация и методические материалы в оболочке базы 1С: ИТС:
      «1С: Предприятие 8.3. Руководство разработчика»;
      «1С: Предприятие 8.3. Руководство администратора»;
      М. Радченко, Е. Хрусталева «1С: Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы»;
      книга Е. Ю. Хрусталевой «Знакомство с разработкой мобильных приложений на платформе 1С: Предприятие 8»;
      глоссарий разработчика;
      материалы методической поддержки 1С: ИТС для разработчиков.
      Для работы данного продукта не требуется программная лицензия или ключ аппаратной защиты.


      1. rabid_otter Автор
        28.10.2022 13:19
        +2

        вот вполне бесплатная версия для обучения

        Обучение != некоммерческая разработка.
        Кроме того, версия для обучения обрезана как средневековый евнух. И поэтому версия для обучения != community edition.
        Собственно, это очередной плевок в сторонников платформы.
        Community edition - это что-то вроде "Комплекта разработчика". А помните как жадный вендор продавал его за 630 рублей в разгар короновирусной истерии?
        Причем купить его мог ТОЛЬКО специалист с сертификатом от 1С. Обожаю запах виртуальных ржавых наручников :)

        Для обладателей любого из сертификатов:
        —“1С:Специалист” по платформе;
        —“1С:Эксперт по технологическим вопросам“;
        —“1С:Эксплуататор крупных информационных систем”;
        для целей разработки предоставляется личный бессрочный комплект разработчика 1С:Предприятие за 630 руб., а так же на сервер-мини со скидкой 80%.

        То есть, если я правильно понял - разработчик, который хочет попробовать себя в 1С должен каким-то образом выучиться сначала, получить сертификат и только потом ему позволят купить community edition. Так ведь?
        К слову, я за 10+ лет в 1С так и не захотел получать какие-то фантики при таком отношении вендора к себе.
        В общем, как тебе такое, Илон Маск?!

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

        Хм, то есть говорить можно только на темы, на которые захочет вендор.
        Ладно, понял.
        Видимо поэтому тусуют все на infostart'е и mista'е.
        Да, и вид ресурса такой как будто я попал назад в нулевые.
        Будь я на месте 20 летних ребят, увидев это UI убожество, и имея на YouTube кучу мануалов о том, как "войти в IT", я бы пошел в другой ЯП.


        1. Honomer
          28.10.2022 13:42
          -3

          Простите, при всё уважении, но если вы за 10 лет работы не подтвердили себя, как специалист (не получили сертификат (а получить сертификат по плафторме реально достаточно просто, в отличие от "продуктовых"), то может быть в этом что-то есть?


          1. rabid_otter Автор
            28.10.2022 13:45
            +1

            Хм, робкие, жеманные переходы на личность. Я все ждал, когда же это начнется :)
            Ну что Вам сказать, лычка у меня сеньорская, но внутри все тот же сомневающийся миддл.


            1. Honomer
              28.10.2022 13:49
              -2

              Ну а что помешало-то?

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

              Прикрываться фразой "это вендор виноват, что я не сдал" это почти как я по радио слышал вчера "Темный властелин виноват в том, что у меня 4 друга умерло". Ну правда...


              1. rabid_otter Автор
                28.10.2022 13:51

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


                1. Honomer
                  28.10.2022 13:58
                  -1

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

                  Прям из личного опыта: школьный друг хотел внедрить одну из конфигураций, франч к нему прислал человека, друг чисто дежурно спросил: а сертификат у вас есть? А человек в ответ возьми и ляпни: я 6 раз сдавал экзамен по ЗУП, но так и не сдал.


                  1. DvoiNic
                    28.10.2022 14:33
                    +2

                    я даже увольнял двух обладателей сертификатов — по сути, за профнепригодность. в то же время вполне удовлетворительно работал студент-медик-недоучка, без сертификатов, но «с головой».
                    1с-овский сертификат — филькина грамота.
                    Ну и что касается вашей ситуации — нужен ли был в том случае сертификат по ЗУП? помог бы? помешало ли отсутствие?


                    1. Honomer
                      28.10.2022 15:25
                      -1

                      Наши мнения тут расходятся, но спорить на этот счёт не хочу. Давайте останемся при своем.


                    1. Honomer
                      28.10.2022 15:27

                      Внедрение в итоге через некоторое время заканчивал другой человек. Первый до конца довести не смог.


          1. Neikist
            28.10.2022 13:53
            +1

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


        1. Honomer
          28.10.2022 13:47
          -1

          630₽ - жадный? (не говоря о том, что остальные интернет-магазины продают его по 4000₽!). Там вообще-то коробка с книгами. Есть подозрение, что это по цене себестоимости почти.

          Вы не можете потратить 2 чашки кофе, чтобы купить себе профессиональный инструмент? Я ничего не путаю?


          1. rabid_otter Автор
            28.10.2022 13:51

            Ха! Так я бы потратил, но ведь сертификат нужен. Вы точно прочли, что я написал?


            1. Honomer
              28.10.2022 14:00

              Так всё-таки не вендор жадный (он же не должен физическую коробку отдавать просто так, правда?), а у вас сертификата не было. Это разные вещи немного.


              1. rabid_otter Автор
                28.10.2022 14:01

                Вендор жадный, и сертификата не было :)


        1. DvoiNic
          28.10.2022 13:53

          человек «русским по белому» написал:

          Вот я просто обычный электронщик [...] Мне было интересно в том числе и на 1с посмотреть, но вот такая жадность просто отторгает и даже пытаться не хочется.

          Я ему сказал, что для того, чтобы посмотреть и попробовать — не нужно платной документации и партнерского форума. Почему вы ему это не сказали?
          Обучение != некоммерческая разработка.

          именно так. поэтому и называется "версия для обучения".
          То есть, если я правильно понял — разработчик, который хочет попробовать себя в 1С должен каким-то образом выучиться сначала, получить сертификат и только потом ему позволят купить community edition. Так ведь?
          ну так «community edition» как-то подразумевает, что человек состоит в сообществе? вы ж не приходите в клуб байкеров со словами «я тоже байкер, подарите мне мотоцикл»?
          К слову, я за 10+ лет в 1С так и не захотел получать какие-то фантики при таком отношении вендора к себе.
          я общаюсь с 1с в том или ином смысле более 20. и тоже не рвался получать сертификаты. и что это доказывает?
          Хм, то есть говорить можно только на темы, на которые захочет вендор.
          на тематическом форуме «версии для обучения» — вполне понятно, что говорить можно на темы «версии для обучения». для флуда есть другие ресурсы.


          1. rabid_otter Автор
            28.10.2022 13:55

            Хорошо, для обучения она подходит. но это не community edition, как в других ЯП. А весь список ограничений как бы намекает на жадность вендора, в очередной 100500-й раз.


            1. Honomer
              28.10.2022 14:09
              -1

              Знаете, вы сейчас наверное путаете тёплое с мягким.

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

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

              Я правильно понимаю?


              1. rabid_otter Автор
                28.10.2022 14:59

                Я ничего не путаю, сравните "учебную" и community edition в других популярных ЯП.


                1. Honomer
                  28.10.2022 15:24

                  Можно конкретный пример пожалуйста? Чтобы не возникло недопонимания?


                  1. rabid_otter Автор
                    28.10.2022 15:27

                    Я не видел, чтобы в community edition так сильно урезали возможности как 1C в учебной версии:

                    • не может использоваться на предприятии для ведения реального учета пользователями;

                    • не может использоваться для сборки дистрибутивов мобильных приложений, предназначенных для дальнейшей публикации и тиражирования;

                    • ограничено количество данных:

                      • максимальное количество записей в таблицах счетов 2000;

                      • максимальное количество записей в главных таблицах объектов 2000;

                      • количество записей в табличных частях объектов 1000;

                      • количество записей в наборах записей 2000;

                      • количество записей из внешних источников данных 200;

                    • не поддерживается работа в варианте клиент-сервер;

                    • не поддерживается работа распределенных информационных баз;

                    • не поддерживается COM-соединение;

                    • отсутствует возможность использования паролей и аутентификации операционной системы для пользователей;

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

                    • не поддерживается копирование содержимого более чем одной ячейки табличного документа в режиме 1С:Предприятия;

                    • не поддерживается работа с хранилищем конфигурации;

                    • не доступна функциональность, связанная с поставкой конфигурации;

                    • количество одновременных сеансов работы с информационной базой ограничено одним сеансом,

                    • значения разделителей задаются значениями по умолчанию для данного типа разделителя.


                    1. Honomer
                      28.10.2022 15:38

                      А вы с чем всё-таки сравниваете? Имя, брат! Имя! ©

                      Вот, например, на MS SQL Server developer edition тоже нельзя боевые базы заводить по лицензионному соглашению. Вас же это не смущает?


                      1. rabid_otter Автор
                        28.10.2022 15:41

                        Зачем Вы спорите? Разве моя статья про это?
                        Это раз.
                        Во-вторых, но ведь в MS SQL Server Developer Edition есть ограничения на количество записей в таблицах?
                        Если мне не изменяет память, то нет.


                  1. rabid_otter Автор
                    28.10.2022 15:39

                    Можно конкретный пример пожалуйста? Чтобы не возникло недопонимания?

                    Если сравнивать ЯП, может быть мне не хватает знаний, но я видел такое только в 1С, чтобы были разные версии виртуальной машины.
                    Взять MS SQL Server Developer Edition - так это полностью рабочий сервак, но разве что коммерческое использование запрещено.
                    Вроде бы Delphi бесплатно дает разрабатывать что угодно, но продавать нельзя.
                    Java - бери и делай, что хочешь, Python - аналогично, Golang - тоже самое.

                    Если сравнивать конкретно IDE, то для 1С бесплатных альтернатив просто нет в природе.
                    В Intellij IDEA можно разрабатывать, там нет ограничения по количеству создаваемых файлов или классов.
                    До такого додумался только жадный вендор 1С.
                    В Golang есть Goland, он платный, но есть бесплатный VS Code, то есть вопрос в альтернативе, и она есть!
                    А в 1С что? EDT или позорный конфигуратор? Такое себе.


                    1. Honomer
                      28.10.2022 16:44

                      Ну по факту у вас плохой пример

                      https://www.jetbrains.com/ru-ru/idea/buy/#discounts

                      У Идеи вообще нет версии для того, чтобы бесплатно разрабатывать коммерческое ПО, если вы простой разработчик. Учиться можно, а как только речи про разработку коммерческого ПО - дзинь-дзинь! свободная касса! Если только вы не готовы выложить все исходники в открытый доступ, но для коммерческого ПО - это так себе, правда?

                      Давайте зайдём с другой стороны?

                      Какой по вашему должны быть community-версия 1С? Что она должна позволять, а что не позволять?


                      1. rabid_otter Автор
                        28.10.2022 16:58

                        Убрать ограничения, кроме коммерческой разработки, как и в Intellij IDEA


                      1. Honomer
                        28.10.2022 17:06

                        как при этом обеспечить, чтобы её не использовали в коммерческих проектах?

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


                      1. rabid_otter Автор
                        28.10.2022 17:16

                        Достаточно, что пользователь нарушил лиц. соглашение, если использует ПО в коммерческих целях. В таком случае и ломалки не потребуется.


                      1. Honomer
                        28.10.2022 17:43

                        Вы так верите в людскую честность? :)


                      1. koperagen
                        28.10.2022 18:36
                        +1

                        В IntelliJ IDEA Community можно бесплатно разрабатывать коммерческое ПО. Спец. предложения с сайта это про IntelliJ IDEA Ultimate.

                        https://www.jetbrains.com/idea/download/#section=linux

                        Community Edition is free to use for personal and commercial development. The IDE and most of it bundled plugins are open-source, licensed under Apache 2.0.


      1. rabid_otter Автор
        28.10.2022 13:35

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

        А чего же Вы не скопировали сюда полный список ограничений "учебной версии" с сайта 1С? Это то, что называется в других ЯП community edition?

        • не может использоваться на предприятии для ведения реального учета пользователями;

        • не может использоваться для сборки дистрибутивов мобильных приложений, предназначенных для дальнейшей публикации и тиражирования;

        • ограничено количество данных:

          • максимальное количество записей в таблицах счетов 2000;

          • максимальное количество записей в главных таблицах объектов 2000;

          • количество записей в табличных частях объектов 1000;

          • количество записей в наборах записей 2000;

          • количество записей из внешних источников данных 200;

        • не поддерживается работа в варианте клиент-сервер;

        • не поддерживается работа распределенных информационных баз;

        • не поддерживается COM-соединение;

        • отсутствует возможность использования паролей и аутентификации операционной системы для пользователей;

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

        • не поддерживается копирование содержимого более чем одной ячейки табличного документа в режиме 1С:Предприятия;

        • не поддерживается работа с хранилищем конфигурации;

        • не доступна функциональность, связанная с поставкой конфигурации;

        • количество одновременных сеансов работы с информационной базой ограничено одним сеансом,

        • значения разделителей задаются значениями по умолчанию для данного типа разделителя.


  1. VVizard
    28.10.2022 14:00
    +2

    Очень большая статья, с чем то согласен с чем то нет, но если обобщить то:

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

    2. Автор как раз из тех кто как раз не был никогда программистом так как дорабатывал/перепрабатывал типовые решения а потом попал в компанию где работают программисты. Отсюда и хорошие впечателния от Java.

    3. У 1С три ключевые проблемы с точки зрения программиста (т.е. человека который с 0 пишет на 1С большие системы)

      1. Динамическая типизация;

      2. Процедурное программирование, проще говоря бэйсик;

      3. Жесткий монолит;

    Вообще писать про то что в 1С плохо это не благодарное занятие, все что в 1С плохо - отлично описали сами 1С, по ссылке https://its.1c.ru/db/v8std, если интересно можете сходить почитать:

    "Система стандартов и методик разработки конфигураций"

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

    Ну и пару примеров для тех кому лень вникать:

    Пример №1 "Область видимости, Программный интерфейс"

    https://its.1c.ru/db/v8std#content:455:hdoc

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

    В 1С такого нет, и вместо этого нам предлагают в модуле использовать "коментарий":

    #Область ПрограммныйИнтерфейс

    // Код процедур и функций

    #КонецОбласти

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

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

    Пример №2 "Описание экспортных (интерфейсных) процедур и фцнкций"

    Отдельное искуство в 1С это требования к комментариям:

    https://its.1c.ru/db/v8std#content:453:hdoc

    // Параметры:
    //   Реквизиты - Строка - имена реквизитов, перечисленные через запятую.
    //                        Например, "Код, Наименование, Родитель".
    //             - Структура, ФиксированнаяСтруктура - в качестве ключа передается
    //                        псевдоним поля для возвращаемой структуры с результатом,
    //                        а в качестве значения (опционально) фактическое имя поля в таблице.
    //                        Если значение не определено, то имя поля берется из ключа.
    //             - Массив Из Строка, ФиксированныйМассив Из Строка - имена реквизитов.

    Так как у нас дин. типизация, а в больших проектах все же желательно описывать параметры функций, вендор нам предлагает описать эти параметры СЛОВАМИ что бы другие программисты (не IDE !!!) смогли это прочитать, запомнить и у себя в голове потом все это развернуть. Причем там важно еще и отступы соблюдать и офоромление, и потом естественно это все поддерживать в ручном режиме при изменении кода.

    Естественно это вообще никак не свзяано с кодом и не как не автоматизировано.

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

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

    Тем кто далек от 1С и кодит на Java все это вообще не особо интересно, разве что из серии не смог осилить C#, пойду в 1С...


    1. Hutaab
      28.10.2022 14:12
      +2

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

      2. Автор как раз из тех кто как раз не был никогда программистом так как дорабатывал/перепрабатывал типовые решения а потом попал в компанию где работают программисты. Отсюда и хорошие впечателния от Java.

      Берём ЯП <XXX>: получаем данные (из БД, файлы, API), применяем бизнес логику и сохраняем(в БД, файлы, возвращаем по API). И все программисты, но только не 1С-ники?


      1. VVizard
        28.10.2022 14:43
        +1

        Вы же поняли о чем я писал? Спор ради спора?

        90% работы 1С это поддержка и доработка типовых. Вот так что бы с 0 писать продукты уровня типовых на всю страну если наберется 100 компаний уже хорошо.

        Франчей же несоизмеримо больше. Вы вот пришли в Java и можете сравнить промышленную разработку и сопровождение УТ на заводе. Сами же писали в статье про отношение к ИТ внутри компаний как к отделу который генерирует затраты.

        Я думал мой пример с автосоесарем будет понятен. Каждый инженер в какой то степени автослесарь но далеко не каждый автослесарь это инженер способный спроектировать ДВС и подвеску для него и встроить это все общую систему.

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

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

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


        1. Hutaab
          28.10.2022 14:59

          Я думаю, что не каждый программист на java сможет то, что вы написали. И да большая часть 1с - это сопровождение, и к сожалению интересных задач мало. Но когда возникают, забываешь, что это всего лишь 1с ) А бейсик это, или ООП не имеет значение, думать надо везде. И тут, как мне кажется, ограничения 1с как раз заставляют искать обходные пути, чтобы решить нестандартную задачу. И сделать это, если ты не силен в логике, алгоритмах, зачастую не возможно. Там где всё решается прямо, в 1с идем "зигзагом" ) Но такова платформа, могли бы, шли прямо, но увы, выкручиваемся как можем.


          1. VVizard
            28.10.2022 15:56

            Я думаю, что не каждый программист на java сможет то, что вы написали

            Я не просто так думаю я в этом уверен.

            Но это как раз и доказывает то что я написал. Есть Java программисты, есть 1С Программисты, есть 1С ники. У каждого из них своя работа. Которая частично пересекается но в общем и целом сильно отличается.

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

            Я пару раз касался УХ и УПП и я там как первокласник себя ощущаю, а задачи типа "Внедрение ERP 2.5 На этапе моделирования бюджетной модели, штатному консультанту требуется помощь. Вопросы по формированию Плана закупок. Также необходимо проверить ход моделирования -убедиться в том, что штатный консультант правильно моделирует. Позадавать наводящие вопросы, оценить компетенцию шт..."

            Для меня звучат как "бла бла бла".

            "Там где всё решается прямо, в 1с идем "зигзагом" ) Но такова платформа, могли бы, шли прямо, но увы, выкручиваемся как можем. "

            Я не вижу ничего плохого в том что бы выкручиваться. Почитайте как работает Maincraft там хак на хаке и хаком погоняет. И 1С тут вообще не в первых рядах.

            Бейсик или ООП не имеет значения пока у вас 5 модулей по 15 процедур в каждом и вся система умещается в голове.

            Когда вы пишите систему и в ней уже под 300 общих модулей в каждом из которых по 5000-40 000 строк сразу приходит понимание зачем нужен ООП.

            И когда размер СУБД выростает до 1,5 Tb вы начинаете понимать зачем нужны микросервисы.


            1. Hutaab
              28.10.2022 16:06

              Наличие ООП парадигмы в 1с, к сожалению, не зависит от программистов. И отсутствие оной, всё чаще вызывает печаль.

              Бейсик или ООП не имеет значения пока у вас 5 модулей по 15 процедур в каждом и вся система умещается в голове.

              Я это к тому, что это просто инструменты, а результат это всегда "полёт мысли".


      1. VVizard
        28.10.2022 14:49
        +1

        Я вот еще подумал немного. Вы в своей статье часто упоминаете термин "1С ник". Как по мне это отличное отражение.

        Есть Java программист, а есть 1С Программист, есть 1С ник.

        Это сильно разные специальности. Чистых 1С Программистов очень мало (по моим ощущением 10%) остальные кто работает с 1С это 1С ники.

        Наверное так будет точнее.


        1. rabid_otter Автор
          28.10.2022 15:01

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


          1. VVizard
            28.10.2022 15:49
            +1

            Почему вы решили что я унижаю программистов 1С?

            Например директор компании это не программист. Значит ли что я унижаю директоров компаний?

            Ну или если я напишу что backen и frontend разработчики это разные по сути специальности то кого я тут унжаю Back или Front?


            1. rabid_otter Автор
              28.10.2022 15:50

              Вопрос в подаче, по-моему, она у Вас как раз отрицательная :)


        1. Hutaab
          28.10.2022 15:01
          +1

          Есть Java программист, а есть 1С Программист, есть 1С ник.

          Просто сокращение, как питонист, джавист и др.


    1. rabid_otter Автор
      28.10.2022 14:56
      +1

      Во первых, статья - ответочка на оригинальную статью. Вы ее читали? Похоже, что нет.

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

      Программисты 1С не пишут код? По-моему, у них связаны руки и они работают в одной парадигме, но при этом делают fullstack по факту.

      Автор как раз из тех кто как раз не был никогда программистом так как дорабатывал/перепрабатывал типовые решения а потом попал в компанию где работают программисты. Отсюда и хорошие впечателния от Java.

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

      Динамическая типизация;
      Процедурное программирование, проще говоря бэйсик;
      Жесткий монолит;

      Согласен.

      "Система стандартов и методик разработки конфигураций"

      Говнокодить это не мешает, и не только на 1С.


      1. VVizard
        28.10.2022 15:44

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

        Из статьи я узнал только про то что написал. Там в начале жизненный путь автора описан.

        Программисты 1С не пишут код? По-моему, у них связаны руки и они работают в одной парадигме, но при этом делают fullstack по факту.

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

        Согласен.

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

        Говнокодить это не мешает, и не только на 1С.

        Вы немного не так поняли смысл размещения ссылки на стандарты. Попробую еще раз объяснить. 90% стандартов которые там описаны, дискредитируют язык BSL, потому что всё это должно быть не на уровне отдельной книге и в голове у программиста а заложено в дизайн языка и IDE.

        Вопрос говнокода это вообще отдельный вопрос и его я не касаюсь так как это тоже сильно спорная тема.

        Попробую провести аналогию, вот представьте что IDE в 1С не могла бы проверять синтаксические ошибки, и как решение проблемы в методику добавили бы пункт: "Программист обязан перед запуском проверить код на отсутствие синтаксических ошибок путем выполнения кода в голове".

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


        1. rabid_otter Автор
          28.10.2022 15:47

          Из статьи я узнал только про то что написал. Там в начале жизненный путь автора описан.

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

          Вы немного не так поняли смысл размещения ссылки на стандарты. Попробую еще раз объяснить. 90% стандартов которые там описаны, дискредитируют язык BSL, потому что всё это должно быть не на уровне отдельной книге и в голове у программиста а заложено в дизайн языка и IDE.

          Согласен.


    1. hbn3
      28.10.2022 17:20

      Интересно можно ли сделать какой-нибудь транспайлер из C# в 1С?

      По идее сделать систему классов, специфичные анализаторы кода чтобы запрещённые конструкции не использовать и вперёд. Roslyn позволит очень легко подобное реализовать.

      Опять же IDE очень приятные.

      Пишешь на правильном языке, а тебе автомат переводит в конструкции 1С.

      Ну или по крайней мере написать language server для VS Code.


      1. Honomer
        28.10.2022 17:44

        вот это - https://github.com/1c-syntax/bsl-language-server/blob/develop/docs/index.md - разве не он?

        в вот - https://marketplace.visualstudio.com/items?itemName=1c-syntax.language-1c-bsl - вроде как и прямая поддержка для VSC


        1. hbn3
          28.10.2022 18:21

          Ну уже круто. Или в 1С IDE основная проблема не с языком, а с какими-то дизайнерами форм? Ну по идее если формат более-менее известный, то можно и это при желании победить.


  1. dodgev
    28.10.2022 16:34

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

    ЗЫ Я не совсем 1С-ник :)


    1. rabid_otter Автор
      28.10.2022 16:40

      Хм, ну статья слову не про это :)
      Но в этом кейсе, кажется можно было в конфигураторе поиском по сущностям воспользоваться.


      1. dodgev
        28.10.2022 16:44

        О чем статья кристально ясно, а вот о чем комментарии :)

        ЗЫ Я пример конечно холиварно утрировал, в конфигураторе у этих сущностей есть "синоним" - там как раз то что нужно и прописано, искать не надо но...


  1. TimeCoder
    28.10.2022 19:56
    +2

    Главный недостаток 1С - человек прибит гвоздями к РФ и ее рынку. В 2022 году это стало даже опасным.


    1. Serg79
      28.10.2022 22:16
      +3

      Это действительно так. Лет 15-20 назад в 1С очень много программистов, кто перешел туда по причине более высокого заработка. Благодаря их работе появилась 1Сpp.dll (1c++) и версия 1С- 7.7 смогла работать быстро c SQL. Это почти сняло головную боль программистов тех лет и решило проблему блокировки транзакций. Мир нетиповых 1С конфигурация вздохнул. Однако жизнь меняется, навыки оказались не нужны со временем, тем более ты ничего не можешь сделать с вендором. Благо, зарплаты в других языках поднялись.
      Толковым программистам 1С не нужна. Нетиповых решений всё меньше. В случае типовых, работа сводится к клепанию печатных форм или обновлений, либо простому консультированию. В 1С не идут программисты, но туда идут консультанты, методологи.


      1. vis_inet
        29.10.2022 00:01

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

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


  1. Serg79
    28.10.2022 21:59
    +2

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

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

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

     Доменная авторизация работает в хроме, explorer, edge, safari, если только установлен один сервер 1С и iis. В случае масштабирования решения и нескольких серверов это работает эпизодически. Поиск решения занял неделю и не дал успеха. Пришлось отказаться от этого и вернуться к схеме/логин пароль.

     Веб клиент в сафари верстает с ошибками. Банально строки в отчёте заезжают друг на друга. То есть на словах, при простой демонстрации это работает, спору нет. В рабочей нагрузке - пользоваться невозможно.

     В случае сравнения строк через встроенный язык запросов, оказывается, что оно регистр НЕ зависимое. Строки "бег" и "БЕГ" выдадут при сравнении через запрос - true. Однако если сравнивать эти же строки без запроса, то сравнение уже регистр зависимое. Но я не могу делать сравнение в цикле на базе из 150 тыс. строк, определяя уникальность. Появление таких мелочей всегда неожиданные. Если на форуме начинаешь обсуждать вышеуказанную проблему, то сходу говорят, что у вас учет неправильный и таких задач в 1С быть не должно, поэтому проблема надуманная. Пришлось делать предварительно хеширование для строки и уже сравнивать не строки а их хэши. Впиливание костыля заняло время.

     Http сервисы в 1С. Они работают никто не спорит. Но когда запросов становится не 2 в секунду, а 500 почему 1с виснет так, что отваливаются сессии других пользователей? Почему для этого нужно делать рестарт сервиса? 500 обращений это крайне много? Ведь в ответ выдается json из 50 строк, запрос по профайлу 1с выполняется 0.004 секунды, формирование json 0.02.

     Или из нового: при обращении с linux машины для вызова сервиса http, авторизация в 1С может занимать 0.05 секунд, а может занимать 2 секунды, причем это не зависит от числа пользователей, фоновых заданий на сервере, доступной оперативки и фаз луны. Хочется гарантированного минимального время для авторизации. Когда обратились в известный франч с этой проблемой, ответ получили такой: "Вы сделайте анонимную авторизацию на IIS под тем пользователем под котором работает сервер 1С, и будет быстрее". Ребята, ну это же не решение проблемы. Вы слова про безопасность слышали?

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


    1. Neikist
      28.10.2022 23:18
      +2

      Вы сделайте анонимную авторизацию на IIS под тем пользователем под котором работает сервер 1С, и будет быстрее

      Какая же жиза… Тоже к такому решению прибегал, делали приложение мобильное на 1с к нашей системе для одного заказчика, несколько тысяч пользователей, в требованиях доступ по логину-паролю active directory с мобилок. Тоже были проблемы и с производительностью, и, само собой, без «анонимного» доступа логин с мобилки с данными AD реализовать нельзя было (хз как сейчас).


      1. Serg79
        28.10.2022 23:21
        +1

        Сейчас ничего не изменилось в этом направлении.


        1. hbn3
          28.10.2022 23:34

          А если реализовать авторизацию через SAML используя AD? По идее очень небольшая разница вместо от схемы логин/пароль.

          Т.е. ставите IdP независимо от 1С сервера и там авторизируетесь против AD, а на 1С сервер посылаете SAML запрос на авторизацию.

          Сейчас же большинство поставщиков поддерживает подобное. Ну а если 1С не поддерживает, по идее прикрутить очень просто должно быть.


          1. Neikist
            29.10.2022 15:15

            Не знаю как сейчас, а несколько лет назад 1с для http сервисов поддерживал либо авторизацию по пользователю IIS сервера, либо basic авторизацию. Больше ничего.


  1. aka_MIK
    28.10.2022 22:18
    -2

    Так долго писать, что подтвердить один простой пункт: "1С-ники умнее, и я не шучу" )


    1. rabid_otter Автор
      29.10.2022 10:08
      +1

      Слепая вера - дело такое, да.


  1. Atrex
    29.10.2022 10:06

    Очень интересная статья. Не менее интересные комментарии. Автор, а давайте ваши скрафтенные конфигурации будем продавать?


    1. rabid_otter Автор
      29.10.2022 10:07
      +2

      Хорошая попытка, но нет. Не хочу снова открывать конфигуратор.


  1. itrader
    29.10.2022 10:29
    +2

    Ушел из 1С пару лет назад. Как же приятно работать c PyCharm и git, а не в Конфигураторе с Хранилищем. Вспоминаю как страшный сон.


    1. rabid_otter Автор
      29.10.2022 10:31

      Да, помню эти обновления доработанных типовых конфигураций. Когда несколько дней обновляешь УПП, то что делается в git через merge master


  1. BairamovTM
    29.10.2022 15:19
    +2

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

    Я сам бывший 1С разработчик занимался 1С около 7 лет, по уровню был очень крепким синьером. Вначале 2021 года сменил стек и стал фронтенд разработчиком. Причины во многом совпадают с теми что были у автора статьи, но лично для меня решающим стало отсутствие зарплатных и релокационных перспектив. Помню в 2020 году присматривал себе новую работу и понял, что в 1С на удаленке потолок 200 т.р. (были конечно вакансии с ЗП выше, но их были единицы), в том же фоонтеде на такую ЗП могли претендовать крепкие миддлы да и вакансий на удаленку было значительно больше. В итоге сейчас я уже полтора года в новом стеке, позиция мидл зарабатываю больше чем было в 1С, работа значительно менее нервная (нет бесячих дедлайнов под сдачу отчетности или изменения законодательства, которые всегда приходилось внедрять в авральном режиме),

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

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

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


    1. rabid_otter Автор
      29.10.2022 15:46
      +2

      Круто, что у Вас получилось. Надеюсь, что будет ещё лучше и у Вас получится релоцироваться. Если бы оригинальная статья высмеивала недостатки 1С, то ее бы просто не опубликовали на infostart'е. Я уже уезжал на зимовку в другие страны, когда была ковидная эпоха. Уехать не проблема, во многих местах плохая инфраструктура, плохой интернет, а там где неплохой и стоимость жизни выше, чем в Мск. Но конечно, личное дело каждого. И да, 1Сные знания ничего не дают, кроме аналитики и понимания для кого делается продукт, к сожалению.

      Также как и Вы жалею, что потратил 10 лет на это жёлтое чудовище.


  1. Jekson783
    29.10.2022 23:05

    Автор статьи молодец, автор статьи держит нос по ветру. А ветер меняется - обстановка в стране и так далее.

    Про себя: в 1С с 2011 г. (практически сразу после вуза) - это был Тверской франч. За 1 год сделал апгрейд с консультанта до прогера сдав экзамен на 5 сертификатов спеца. В 2015 переехал в Москву. Практически каждый год менял место работу по тем или иным причинам. Самая высокая зарплата до которой удалось допрыгнуть - это 150к на руки(белая). Потом пандемия 2020, кризис - работал фриланс, прокачал учетку в 1clancer - 16000 + рейтинг. Ушел в бюджетное учреждение - не выдержал политики партии - убежал от туда и из 1С в 2022 году.

    Сейчас мой стек: Golang, Python, PG, Clickhouse, RMQ, Docker, K8s, GitLab, Drone CI, Harbor, Grafana, ELK, etc. и это еще не все.

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

    ЗЫ: Если у тебя есть мозги, то не важно где ты в 1С или не в 1С. Это лишь инструмент. Только вот не всегда мозг может адекватно сам оценивать текущее состояние дел и меняться исходя из новых переменных во круг. Разделяю всю боль автора. Сочувствую все кто еще в 1С остается.

    {{ Everybody:Peace&Friendship&Gum }}


    1. rabid_otter Автор
      29.10.2022 23:09

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