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

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

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

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

Однажды, не так чтобы давно, но кажется, что в прошлой жизни я написал статью 1С — Добро и зло. Расстановка точек в холиварах вокруг 1С где, как мне казалось, подробно рассказал: что от нее стоит ждать, а чего не стоит, зачем она нужна, а зачем не нужна, где она плоха, а где - незаменима. Я настоятельно рекомендую вам ее прочитать, а потом вернуться сюда. Как бы то ни было, но время идет, а скроллить до 2019 года в наше время неприлично, поэтому крики души 1Сников время от времени появляются, и опять (ну что ты будешь делать?!) идут по проторенной дорожке, рассказывая нам что на 1С нельзя написать "все что угодно". Ну да, вы правы друзья, на ASP.NET тоже не пишут игры для плейстешен, но никто же не ругает за это ASP.NET.

Ум 1С-ника по непонятной мне причине удивительно "зашорен". Он почему-то считает, что 1С должна уметь все, потому что… потому что… ну Java же умеет все! Значит и 1С должна!

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

Приступим к разговору

Давайте все-таки про мою статью. Вот она в оригинале (https://infostart.ru/1c/articles/1735489/). Дело в том, что это даже не статья, а текстовый транскрипт моего выступления на конференции. И поскольку это устное выступление, его формат и его смысл отличается от статьи. Публичные выступления современных на ИТ-конференциях это не доклад на съезде КПСС, это развлечение с элементами обучения. Именно так. Интересные истории, сме..кхм-кхм..ёчки, мемасики и что-то новое для аудитории, но не претендующее на математическую строгость. Это выступление. Не статья. Наверное, отсюда и беды этого материала и его жесткая неприязнь. Как так, я посмел сказать, что в 1С не так и плохо, преувеличил одно и приукрасил другое! Во-первых, не так уж преувеличил и не так уж преукрасил. Во-вторых, это выступление задумывалось провокационным именно для того, чтобы встряхнуть болото мнений. В-третьих, оно ведется с позиции enterprise-архитектора, а не кодера в IDE. И как архитектор, я волен (или правильнее сказать "вынужден") оценивать что внедрять, как внедрять, зачем, и главное - в какие сроки и за какой бюджет. Именно поэтому я начинаю с тезиса о том, что "вообще пофигу на чем это написано". Ну правда, предприятию вообще пофигу, неважно что о себе думают важные программисты, их мнение - десятое. Предприятию важно насколько хорошо это помогает решать задачи предприятия и сколько это стоит.

Всё. Дальше уже начинаются "исторические и политические причины", которые вторичны по отношению к главным. Например:

  • А вот у нас все на ПХП, поэтому новое будем делать на ПХП, у нас есть разработчики и компетенции. 

  • А вот мы не в ладах с отделом X, который умеет писать софт на M поэтому будем делать свое решение, но компетенции есть только на N

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

Тем не менее, @rabid_otter пишет:

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

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

Кстати, одну минутку... А занятный ник rabid_otter. Это подражание мне? Приятно. Подражание есть высшая степень восхищения, спасибо.

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

Я давно работаю в "кровавом энтерпрайзе" и могу себе позволить некие гиперболы, особенно если это 30-минутный формат выступления, а не диссертация на тему "Полная классификация недостатков работы в айти в промежутке 2000-2020 гг. XXI века в России". Если уж разжевывать собственные тезисы, то имел в виду я вот что:

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

  • Айти выполняет огромную часть большинства бизнес-проектов, а значит несет большую часть ответственности

  • Айти тоже факапит

  • Айти будут обвинять, когда отдел продаж профакапит запуск очередного бизнес-продукта, даже если айти виновато косвенно и из-за внешних причин

Где тут 1С? А нигде, так будет независимо от языка программирования.

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

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

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

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

Перейдем к технической критике

Тут самое вкусное. Пару слов на входе: попадание юного 1С-ника в мир большого Айти сродни первому попаданию человека в другой климатический пояс. Со мной так было в тропиках: "О, пальмы! О, кокосы прям на дорогу падают! О, а че, тут и змеи ползают? А это что, тоже есть можно?"

Здесь то же самое: О, я могу переслать байты в TCP-сокет! О, я могу парсить DTO-json на входе http-метода и перекладывать поля в прикладной объект!

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

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

На ASP.NET нельзя написать игру для плейстейшен. Опять путаем фреймворк и языки программирования. 1С это фреймворк. Для бизнес приложений. Это не JVM, это Salesforce или SAP (сейчас я не про сравнение возможностей, а про классификацию) Можно на SAP послать байты в TCP-сокет? Даже если и да, этого никто не делает. САПовцы любят грузить из Excel ну или получать по SOAP. JSON в SAP? Шиш вам, пишите прослойку на чем-нибудь другом, или купите нашу шину за 100500 миллионов. САП это бизнес система, какого хрена вы в нее суете интеграционные задачи!

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

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

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

Поддерживается. Есть внешние компоненты для этого. Ах! Внешние компоненты! Но это же внешние, их нет в 1С!!!! Да, это сторонняя библиотека к фреймворку. Давно ли в Java запретили сторонние библиотеки и требуют, чтобы gRPC шла в составе JDK? Послушайте, ведь сама попытка требовать таковое это бред. То же и с внешними компонентами 1С. Это сторонняя библиотека, надо - подключай и пользуйся, в чем проблема? 

"Нет, хочу встроенное в 1С, потому что хочу, ааааа, мамааа, купи мароженоееее!!"

Развернуть 1С в docker-контейнере? А что там с лицензиями?

Вы не поверите, но…https://github.com/firstBitMarksistskaya/onec-docker Хотя, вы попробуйте просто предложить кому-то на предприятии запустить SAP в докере. Если вас немедленно не спишут в дурку, то по крайней мере, высмеют.

SAP это система не того класса, чтобы в контейнере работать. К ней нужны bare-metal сервера от определенных производителей за дорого. И никто не удивляется. А когда 1С не работает в докере внутри виртуалки с лимитом в 2Гб начинается негатив. Почему-то выпросить у начальства для 1С bare-metal сервер, это организационная эпопея с долгой сдачей анализов. А SAP вам даже не продадут, если вы железку не имеете для него.

С веб-сокетами из 1С уже можно работать без внешних компонент? Как сильно кастомизировать внешний вид UI чисто на 1С? Парсер HTML с поддержкой динамических страниц? А как завести Chromedriver или Selenium из 1С? Нейронные сети, ML и это вот все. PyTorch, Keras из коробки уже завезли

Опять все в одну кучу. Где там у нас PyTorch в составе JDK? Сама формулировка данного вопроса выглядит, как чушь. Однако, если таким образом критикуешь 1С, то вроде она превращается в критику по делу, не так ли? Ну и мое любимое:

Если нужен свой веб-клиент, его придется писать на Javascript.

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

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

Вот это вообще не понял. Давно ли на клиенте стало можно писать на GO?

Про IDE

Это наше любимое, потому что в 1С с IDE все не так классно как в других местах. Про это я писал как раз в 2019 году. Но мы тут не про достоинства и недостатки IDE 1С, а про качество критики. Вообще, весь этот мой "ответ" имеет одну главную цель: повысить качество технической полемики про 1С. Именно качество полемики. Давайте ругать и хвалить правильно, не путать категории понятий, аргументировать точно, а ругать прицельно. Истеричные эмоции "все плохо, ааа, где 3Д-графика" это неинтересно и даже, в какой-то степени - глупо. Приступим.

Конфигуратор 1С по нынешним меркам устарел, а новая IDE "EDT" хоть и встречается все чаще, но всенародной любви пока не снискала. Конфигуратор устарел. Он написан в 2002-2005 примерно и на тот момент он был на уровне Visual Studio 2003 даже круче. Но 1С это не Microsoft, компания не вывезла тенденций IDE-строительства в одиночку, бывает и такое. Другие приоритеты продукта. Если вы видели IDE от SAP, то Конфигуратором станете восхищаться, как венцом творения. У бизнес-платформ IDE не приоритет, к сожалению.

Существуют плагины к Конфигуратору. Их несколько и самый популярный это упоминаемый "бешеной выдрой" Снегопат. Только он упоминается вот так:

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

Вообще-то да. IDE и плагины к ним бывают платные. Resharper, например, это вообще практически обязательное платное дополнение, если вы пишете на C#. Без него Visual Studio "от вендора" лишь немного лучше чем Конфигуратор "от другого вендора". И он платный. Без решарпера жизнь в .NET это боль и страдания. Без Снегопата в 1С тоже. И тот и другой бустер для IDE - платные. Решарпер сколько то сотен баксов (не помню сколько) в год, Снегопат 2000 рублей навсегда. Но жаба не позволяет платить за хорошие инструменты даже себе любимому, понимаю.

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

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

Господи, дружище… ну нельзя же так... "хранилище конфигураций" создано тогда, когда на рынке властвовал "Visual Source Safe" и, возможно, начинал свои первые шаги в массы SVN, но ни какого GIT не существовало. Что значит "они не стали использовать git, а взяли свое". Свое взяли, потому что чужого на тот момент толком не было. А то, что впоследствии не успели интегрировать процесс разработки с "чужим" когда оно появилось? - вот это дельный повод для критики.

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

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

И о душевном

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

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

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

Психолог в офисе это хорошо, это выгодно отличает Java от платформы 1С. В МТС, где я работал, тоже было что-то похожее, HR рассказывал, но я не пользовался. И там я работал с 1С. Так что психологи есть в 1С, парни! Прямо в платформе :)

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

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

Интересно, где я говорю что-либо подобное? Два раза перечитал выступление, мало ли? Не нашел.

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

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

Ну я умею. Опыт в 1С 17+ лет. Ничего сверхестественного в пользовании bash, git и Kubernetes нет. Просто навык. Скорее, обязательный, чем выдающийся. Если ты окуклился в Конфигураторе, то виноват в этом не Борис Нуралиев, а лично ты, анон.

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

Аааа, аааа, аааа, боже, аааа, прекратите, ааааа!!!! Сразу спроектировать все хорошо!!! Аааа!!! Делайте хорошо, а плохо не делайте, спасибо.

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

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

Если ты не понимаешь, как работает "Сумма заказа: " + Сумма + " рублей", но активно это пишешь, то тебе надо читать Спольски, причем даже если ты пишешь на Java. Там ведь не просто так существует StringBuilder. Ведь Джоел разжевывает эти вещи не для 1С-ников, он рассказывает это "настоящим" программистам. И 1С тут не при чем, учите матчасть.

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

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

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

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

Тут имела место всего-лишь гипербола. Если у вас на работе процессы поставлены правильно, я за вас рад. Они не всегда такие, даже чаще всего не такие, а я много где успел поработать в т.ч. в "крупняке". Довольно большой пласт "настоящих программистов" именно monkey-coders которые лепят говно по ТЗ. Грустно, но это так, с другой стороны, отрадно, что у @rabid_otter на работе все по-другому.

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

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

А в Javascript бы пережила, да еще как! Javascript же, как я понял считается за правильный язык, раз на нем пишут хорошие веб-клиенты?

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

Я может опять про прописные истины, но тесты есть не в языках программирования, а в командах разработки. Как и CI/CD. В моих командах 1С были и тесты и CI/CD

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

Ну тут чистая психология. "жадный", "потоптали". Софтверный бизнес пытается зарабатывать деньги на продаже софта! Какой ужас! Дата-акселератор это im-memory db которую 1С предлагает вместо других коммерческих in-memory db. Не вижу чего-либо постыдного в попытках занять долю рынка. То же и с 1С:Аналитикой. Если можно отобрать немного денег у Tableu, почему бы этого не сделать?

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

Зачем в бизнес-фреймворке делать TCP библиотеки? Ну вот зачем? Кому надо - бери внешнюю компоненту, там работы на два часа, благодаря туториалам от infactum. С каких пор применение сторонних библиотек считается табу? Отчего это вдруг, никак в толк не возьму…

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

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

Да, потоков и аналогов Futures/Tasks нету, иногда этого не хватает. Справедливо. А вот про лицензии это тупо ложное утверждение. "Фоновые задания" не потребляют лицензий.

Так вендор заботится о людях, которые покупают их продукты? Вкусно и точка! Кушайте, не обляпайтесь. <...> Так можно и с колен подняться. Остановитесь!

Опять слова-маркеры, да что-ж такое. Не иначе автор ненавидит все русское, пендос проклятый, госдеповский прихвостень (это ирония, если что). Всего лишь троллю эмоции, там где нужна логика и ратую за качество полемики. Глядишь, научимся дискутировать с корректной аргументацией, термины не путать, да и правда с колен поднимемся? Тьфу-тьфу, не приведи господи…

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

Да, так и есть. Только это даже не ORM, а сквозная система типов от модели, до интерфейса. Разработчик даже не знает в какой момент там заканчивается UI и начинается база данных, работает в единой системе понятий. Такого нет нигде. На клиенте JS со своими моделями, на сервере условная Java со своими моделями + нашлепками от ORM либо в тех же классах, либо в отдельном слое хранимых сущностей для ORM.

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

Если отказаться от эмоций, а рассуждать по конкретике, то я могу говорить только за Hibernate или Entity Framework (как Core, так и "Classic") Ну и Dapper еще, окей. Они хуже того, что предлагает 1С. Как минимум потому, что абстракции базы данных вынужденно протекают в прикладную модель. Либо эффективно работает ORM, либо красивая прикладная модель. Все сразу - только через усилия, которые требуют очень хорошего знания кишков конкретной ORM. Например, Entity Framework запросто превратит простой SELECT в "запрос в цикле на миллион итераций" при крошечном изменении условия в LINQ, и узнать про это до выкатки в продакшен можно только если правильно настроить фреймворк (по дефолту такое разрешено, а потом "ой, у нас все легло")

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

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

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

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

А еще они едят детей и получают $700k в минуту просто за то, что не спят на работе. Я говорил о наивном заблуждении, царящем в мире 1С, что в "настоящем айти" все капец умные, шарят за O-нотацию, докер и оптимизацию запросов. Это миф и о мифе я говорю.

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

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

И да, мне как серверному программисту нужно десериализовать JSON. Опять этот ретроградный Меркурий все испортил и отменил в Spring Jackson ObjectMapper по умолчанию. Сижу и завидую 1С-программистам, им ведь в REST-сервисах не нужно десериализовывать тело запроса. Вернуться что ли обратно в 1С, как считаете?

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

Как это нет функции "ЗаполнитьЗначенияСвойств"?! Хватит с меня этого вашего "настоящего программирования". Если говорить серьезно, то в Java, Golang и, скорее всего, в C# заполнение экземпляров типов с одинаковыми именами полей решается рефлексией. Но думаю, что это избыточная сложность – достаточно переложить одни поля в другие через горячую клавишу в IDE. Конечно, имеется в виду нормальная IDE, а не конфигуратор 1С.

Фишка в том, что в 1С просто не надо ничего из этого делать. То есть я говорил про эффективность с точки зрения бизнеса, а не с точки того, что интересно кодить разработчику. В 1С просто не стоит задача "замапить поля из JSON с помощью рефлексии или кнопки в IDE, написав для этого слой в архитектуре приложения, который обрабатывает нажатия кнопочек на фронте". Просто эта задача уже решена во фреймворке и ее не надо делать силами пары-тройки сеньоров на начальном этапе разработки. И да, Automapper в .NET - это костыль, а не классная штука, ибо искать потом, кто положит в маппинг расчет скидок, чтобы казнить виновника, это то еще удовольствие. Не каждому программисту нужно разрешать лазить в транспортный слой. Да, вроде бы несложная истина, но лазят ведь, гады, лазят. А потому что могут.

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

Но.. ведь логирование это и есть запись в текстовые файлики на сервере. Если один логгер не справлялся, взяли другой (написали свой). Обычное дело в "большом" мире, но почему-то крамола в 1С. У 1С плохой логгер? Возьми другой!

Кстати, "Журнал регистрации" это не лог, это аудит. Лог это "Технологический журнал" и он вовсе не тормозит, если, конечно, вы не выставили в нем уровень TRACE. А аудит да - в 1С хреновый, тут только признать и понегодовать. Но опять же, есть сторонние средства записи этого аудита в ClickHouse, например. На нашем Youtube-канале мы даже показываем, как это сделать. Летает как ракета!

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

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

Ведь в составе JDK нет веб-клиента, почему-то Oracle за это не ругает никто. В 1С вот есть из коробки веб-клиент, но не нравится если, сделай на реакте свой, как делают все в отрасли. А, дорого? Ну да, с учетом ценника на команду фронтендеров, для внутрянки, не как основной публичный сайт компании - уже отлично, функционально и сразу из коробки, не нужны смузи-джаваскриптеры за оверпрайс. Чудесно же!

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

Про аналитиков

Я утверждал, что у 1С-ника встроен аналитик по умолчанию, а в других экосистемах такого умолчания нет. Это не значит, что его нет совсем ни у кого, просто нет по умолчанию у каждого.

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

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

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

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

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

Опять слово-маркер. Знаете, я уже давно заметил, что если в речи человека фигурируют слова "быдло, ватник, пендосы, гейропа, вставание с колен, булкохрусты, либерасты", то этот человек, зачастую, не стоит того, чтобы разговаривать с ним всерьез. Он не мыслит собственным мозгом, а произносит слова, случайно попавшие в него. "Пивная, примус, еще парочку, признание Америки, Москвошвея, примус". Речевой аппарат есть, а мышления нет. Бывает и такое.

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

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

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

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

Да, именно поэтому. Хотя не только, но хвастаться некрасиво, не ровен час, пол-Хабра обидится и завидовать начнет :)

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

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

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

1С - это фреймворк, инструмент в руках энтерпрайз-архитектора. Сегодня 1С, а завтра выкинем ее и перепишем на go, а вон тот САП, наоборот, заменим на 1С, т.к. они задолбали ломить такой ценник и крайне медленно делать сущее говно. Код не важен, важен смысл. 1С это такое же айти, как и любое другое. Команда может быть крутой, как была в Связном (Ваня, привет, держись там), и тогда на 1С будет логистический процессор и DWH, а может быть дерьмовой и тогда у вас на .NET Automapper будут считаться скидки при чтении JSON. Надо трезво смотреть на вещи, а не очаровываться мифами про прекрасную жизнь за порогом 1С. Ну и да, если вдруг ты не знаешь, что существует что-то кроме конфигуратора, то ты тупой 1С-ник, just admit it.

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

Выступление было в 2020 году, а готовился я к нему в 2019, поэтому на 2022 цифры уже не соответствуют. Сейчас мидл 1С-ник в Москве это 230-250, но это я прямо сильно навскидку, давно не изучал рынок мидлов. Сеньоры столько же сколько в других языках, ибо сеньоры это не про код а про решение задач, тайм-ту-маркет и прочее скучное. Сеньор решает задачи. Если с помощью 1С, то значит с помощью 1С. А если надо, он и Python рядом прикрутит, и компоненту внешнюю найдет на гитхабе, на то он и синьор.

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

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

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

Заключение

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

А как же "жадные капиталисты, плюющие в морды своим разработчикам"?

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

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

Давайте полемизировать правильно, дамы и господа. Экосистеме 1С нужны грамотные дискуссии по существу. Надеюсь, никого сильно не обидел. И да пребудет с вами сила.

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


  1. iliabvf
    31.10.2022 11:27
    +13

    1С не ЯП, и он создавался не для программистов в нормальном понимании этого слова.
    1С это черная коробка, по всем понятиям.
    1С плохо сделана и оптимизирована, с УФ ситуация немного улучшилась.
    Не согласен с итогом статьи, на 1С легко написать плохо именно потому, что 1С плоха во всем (дизайне, архитектуре, инструментах).

    Ну и главный аргумент скорость разработки, уже давно аргумент только 1Сников, в реальности, написать быстро можно на многих стеках, без особой подготовки, JS / Python / Java / GO / PHP.

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

    Что касается экосистемы 1С, ее создают умные пионеры 1С, а сама фирма плевала как на них, так и на партнеров (хотя вроде как начиная в 2018 дела чуть получше)


    1. Region102
      31.10.2022 12:14
      +5

      1С не ЯП, и он создавался не для программистов в нормальном понимании этого слова.

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

      1С это черная коробка, по всем понятиям.

      По каким понятиям?

      на 1С легко написать плохо именно потому, что 1С плоха во всем (дизайне, архитектуре, инструментах)

      Ну то есть на других ЯП нельзя написать запрос в цикле? Положить базу корявым sql запросом? Все это можно и очень просто.

       реальности, написать быстро можно на многих стеках, без особой подготовки, JS / Python / Java / GO / PHP

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


      1. Layan
        31.10.2022 15:58
        +2

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

        Вы, наверное, не поверите, но на фронте с нормальной IDE тоже можно так сделать. Останется только написать обработчик.


      1. Kanut
        31.10.2022 16:02
        +2

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

        Абсолютно любую кнопку с любым стилем и любой функциональностью?


        1. EvilBeaver Автор
          31.10.2022 16:30
          +4

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


          1. Kanut
            31.10.2022 16:37
            +2

            "Просто кнопка чтобы работала" не проблема в подавляющем большинстве ЯП/фреймворков. В том числе и "в несколько кликов вообще без написания кода". И даже если нет IDE чтобы обойтись одними кликами без написания кода, то всегда есть stackoverflow откуда эту "просто кнопку" может скопипастить даже обезьяна.


      1. slipers
        02.11.2022 19:20

        1С это черная коробка, по всем понятиям.


    1. elFurion
      31.10.2022 13:47
      +10

      Все ваши высказывания слишком категоричны. Из разряда "Пишешь на PHP - не программист". Только C++, только хардкор)

      > 1С не ЯП, и он создавался не для программистов в нормальном понимании этого слова.

      С таким же успехом вы могли написать про Delphi или ABAP. А Julia и R - языки программирования? 1C это прикладной bsl-язык программирования. Он неотделим от платформы и основной сферы применения. Но все же. И не важно с какой целью он создавался.

      > Цепляясь за удочку 1С, вы лишаетесь возможности упрожнять свой мозг

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

      > Ну и главный аргумент скорость разработки, уже давно аргумент только 1Сников, в реальности, написать быстро можно на многих стеках, без особой подготовки, JS / Python / Java / GO / PHP.

      Каждый ЯП имеет свои сильные и слабые стороны. Есть ряд задач в которых 1С будет быстрее и дешевле.

      В статьях https://habr.com/ru/post/695734/ и https://habr.com/ru/post/696082/ поднят диалог о сильных и слабых сторонах 1С. А вы пишете неконструктивную критику и снижаете уровень дискуссии. Пожалуйста, не надо так делать :)


  1. mrkaban
    31.10.2022 11:40
    +4

    Господи, дружище… ну нельзя же так... "хранилище конфигураций" создано тогда, когда на рынке властвовал "Visual Source Safe" и, возможно, начинал свои первые шаги в массы SVN, но ни какого GIT не существовало.

    SVN выпущен в 2004 году, а первые реализации GIT появились в 2005.


    1. EvilBeaver Автор
      31.10.2022 11:58
      +7

      ну вот. Конфигуратор это 2002-2003, а писался, стало быть, еще раньше. А SVN после выхода в 2004 вряд ли сразу стал массовым продуктом. И кстати, чтобы не было ощущенеий, что я хвалю хранилище конфигураций: его можно использовать только если у вас очень мало кода и редкие изменения. На сегодняшний день им пользоваться для активного кодинга просто неразумно. Есть git.


      1. elFurion
        31.10.2022 14:10
        +2

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

        Но UI/UX конфигуратора ограничен временем своего создания - начало нулевых. Разработка EDT буксует, а Eclips за это время уже сам успел сильно устареть и сильно сдать позиции IDEA и другим IDE. Еще зачем-то добавили проверку на наличие лицензии при запуске EDT. Сначала из бета-теста бы вышли...

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


        1. Iscarimet
          31.10.2022 16:31
          +1

          При запуске EDT нет проверки лицензии, если к проекту не привязана база. Только при старте отладки из EDT. Т.к. там уже платформа нужна.

          Есть при старте EDT запрос на авторизацию на портале 1С, но его можно игнорить.


        1. Dementor
          01.11.2022 22:22

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


  1. OksikOneC
    31.10.2022 11:43
    +4

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

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

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


    1. elFurion
      31.10.2022 14:23
      +1

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

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

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

      Так что мне кажется, что разговаривать про преимущества и недостатки 1С VS другие языки/IDE полезно.


      1. OksikOneC
        31.10.2022 15:50

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

        Чтобы любить свою работу, надо для начала понять, что конкретно тебя интересует. Как это сделать? Очевидно, перебирая одну работу за другой, один вид деятельности за другим, при этом чтобы просто свичнуться из одной отрасли в другую, с одной платформы на другую - нужны какие-то предварительные знания, которые где-то нужно так же предварительно получить. Осознание этого факта, приведет нас к тому, что такой перебор следует начинать в студенчестве/сразу после выпуска, когда ты голенький, когда на тебя не давит груз финансовых/моральных и прочих обстоятельств, и когда нет страха уволиться с одной работы и прийти джуном на другую. Вы – про это. Чем больше тебе лет - тем тяга к таким приключениям все меньше и меньше, а после какого-то возраста (индивидуального) вообще для человека - не подъемна. Как можно уйти в закат с нелюбимой работы, когда у тебя ипотека, кредиты, спиногрызы и какой-нить дуршлак с макарошками от жены? Отвечу просто: никак. Так человек и барагозиться в своем мерзком бытие, где нелюбимая работа занимается большую часть его чужой жизни, смысл которой - в закрывании своих ипотек, кредитов, отпусков и покупки следующего айфона, зимних шин, смене масла моторного и тормозных колодок. И чем все закончится в итоге у такого господина? Табличкой в колумбарии, чем же еще то? На этой оптимистичной нотке закончу анализ причин, почему 85+% недовольны своей работой, и почему с возрастом тяжело обнуляться в плане перекатки в какую-то другую, новую сферу деятельности. Потому что вокруг них уже там столько позарастало столетних коростных бугров, что у чуваков нету ни сил, ни желания, ни воли, ни вообще ничего - чтоб из этого тлена выбраться по собственной воле. А теперь главное – это проблема именно “1Сника” как явления в отечественной культурно-социологической сфере IT, конца XX начала XXI веков? Отчасти – да, т.к. Вы подметили правильно, если грубо-говоря питонист без сертовый, он не тратил тонну времени для получения сертификатов, то 1Снику, обвешанному этими регалиями, конечно тяжело с ними расстаться. Но, я не думаю, что сертификаты – это то, что именно отличает 1Сника, от кого-то другого, кто стоит перед таким выбором. Ведь много фиксиков, не имея ни одного сертификата вообще, точно также “страдают” у себя в организациях, и точно также – не могут с этим всем завязать. Единственное, в чем “1сники” уникальны – это в том, что они настолько громко ненавидят свою работу, что замечание коллег тут верное – это порождает адски токсичное сообщество. Психика построила такие забавные причинно-следственные связи, что им кажется – что причина всех их “бед” – это “мета-1С”. Многие из них, мечтают усесться в прозрачный офис условного “сбертеха”, на зарплату в “оттристатыщ”, со всеми плюхами в виде плойки, корма, и прочих корпоративных плюх, "разрабатывая на джаве" какую-то очередную протобуферную сферическую ундервафлю. Но, если бы хотя бы это была какая-то мотивирующая мечта – это бы радовало. Но кроме пространных рассуждений, почему “в 1с – все не так”, далее пока основная масса – не ушла. Конечно, есть небольшой процент свичнувшихся, кто прошел путь – но их мало.

        разговаривать про преимущества и недостатки 1С VS другие языки/IDE полезно.

        Истинно так, при маленьком замечании: сравнивать надо сравнимое. Тогда технически - это и правда полезно. Т.е. платформу 1С клёво сравнить с SAP, Microsoft Dynamics и т.д., конфигурации 1С - с аналогичным решениями. Тогда мы объективно увидим, где и что лучше/хуже, как решены те или иные технические/методологические проблемы и т.д. А в предыдущей статье была предпринята попытка все таки сравнить в лоб языки разработки/IDE и методы групповой разработки. Это интересно, с академической точки зрения, и автору еще раз спасибо за это. Но вот объективно, что мы нового узнали про платформу 1С в этом ключе? Да особо и ничего. Уже на хабре, наверное, с десяток было подобных мета-анализов. Собственно, это и побудило меня написать такой же мета-физичный ответ. Т.е. проблема неудовлетворенности жизни "1сника" - это не платформа 1С, и не конфигурация, это гораздо гораздо глубже, такое наслоение нескольких тяжелых бугристых слоев боли, разочарования, разрушений и 100% вера в то, что из это нет уже выхода, и виновата в этом - ну конечно "1С". В целом - сон разума рождает чудовищ, лучше не скажешь :)


  1. copenhagen72
    31.10.2022 11:59

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

    Могу сходу накидать до смешного идиотские ограничения в платформе 1с, мой топ4 рука-лицо список:

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

    2. Скроллинг, полоса прокрутки в таблицах - её нет! Таблица на 5000 строк без полосы прокрутки - трушный 1с стиль.

    3. Выделение активной строки жёлтым фоном полностью убивает возможность делать в списках цветовое кодирование строк таблицы по смыслу.

    4. Документация платформы и конфигураций живёт в параллельных мирах каждая своими независимыими жизнями. Работа с файлами, хранение файлов не в БД, описывается в: а) платформе б) УТ в) УНФ - тремя разными статьями, в каждой документации, естественно, своя статья.

    Но кому до этого какое дело?


    1. Honomer
      31.10.2022 12:32

      Перестаньте уже говорить про монополию. Согласно IDC (отчёт за 2020, картинка оттуда, более поздних отчётов не нашёл), 1С на втором месте.


      1. Tahallus
        31.10.2022 12:45
        +3

        Это в деньгах, и так как SAP гораздо дороже то такая статистика. Есть статистика по рабочим местам, и там доля 1С больше 80%. Плюс сколько не сталкивался везде где SAP есть базы 1С, на 100% 1С:ЗУП, в большей части либо 1С:Бухгалтерия или 1С:Отчетность предпринимателя, и очень редко кто мучается с Excel + какое-нибудь самописное ПО которое из файлов Excel делает xml для загрузки в системы отчетности.


        1. EvilBeaver Автор
          31.10.2022 13:11
          +4

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


          1. yurass13
            31.10.2022 15:46

            Наблюдал еще более интересный кейс:
            При существующей и вполне функциональной ERP внедряется решение 1С и обе системы живут параллельно (одни и те же работники вносят одни и те же данные в обе системы).

            К концу отчетного периода вытягивают отчеты из обеих систем, после чего прорабатывают diff-ы.


            1. Layan
              31.10.2022 16:02

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


      1. Roland21
        31.10.2022 12:45
        +1

        сейчас уже 2022 год, SAP уходит по известным причинам

        и какая единица измерения на диаграмме? обороты предприятий, где стоят системы?


        1. Elanor
          31.10.2022 13:21

          https://d-russia.ru/1c-ustupaet-sap-3-2-p-p-doli-otechestvennogo-rynka-po-dlja-avtomatizacii-biznesa-idc-po-itogam-2020-goda.html
          Да, это по деньгам
          Полагаю, что речь о стоимости автоматизированных рабочих мест.


      1. copenhagen72
        31.10.2022 12:59
        +1

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

        Ну а теперь после ухода SAP - монополист по любым методам подсчёта.


      1. elFurion
        31.10.2022 14:29
        +1

        САП в России используется только чтобы отправлять отчеты инвесторам и международным регуляторам.
        Так что помимо САП еще 1С используется всегда. Да и с февраля 2022 диаграмма потеряла актуальность


      1. Mikhail1972
        02.11.2022 19:13

        сколько документов максимум в год выдержит база данных SAP Hana?


    1. Sysliks
      31.10.2022 13:24
      +4

      почти все - мимо

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

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

      3. вообще в платформе все цвета переопределяемые, плюс цветовая дифференциация строк это крайне любимая клиентам фича, делается в 2 клика мышкой, так что тоже мимо

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


      1. copenhagen72
        31.10.2022 13:42
        -4

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


    1. Ivanko63rus
      31.10.2022 14:25
      +3

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

      2) Скролинг есть, не понятно почему у вас такие выводы, абсолютно обычный как везде скролинг и в обычных так и в управляемых формах вертикальный и горизонтальный, с полосами прокрути, в одтдельных случаях еще и кнопки есть в начало/конец строка +-

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

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

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


      1. aspid-crazy
        01.11.2022 13:23
        +1

        Скролинг есть

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

        1. Получать выборку сразу и целиком тащить на клиент (мы же не рассматриваем этот вариант всерьез, да?)

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

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

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


    1. sergpewpew
      31.10.2022 14:34
      +2

      4ый вопрос документация это боль. Сталкиваешься с проблемой в 1С, начинаешь искать инфо и тут тебя ждет веселье: 1) По многим вопросам ВООБЩЕ нет ответа в поиске, не дай бог открыть ссылку на мисте - там просто слезы как издеваются над человеком кто вопрос задал, на инфостарте тоже не густо с ответами 2) Далее если в поисковике не нашел, ищешь инфо в закрытом форуме, там вопросы новичкам задавать не стоит, предполагается что вы спец и все знаете, базу свою выслать не забудьте. То есть само сообщество не такое большое, вендор лок, краткая и платная документация.


    1. o4karek
      01.11.2022 14:43
      +1

      Документация платформы и конфигураций живёт в параллельных мирах каждая своими независимыими жизнями

      Возможно, это потому, что каждая документация описывает немного разное?

      Платформенная документация описывает то, какой АПИ дает она сама для работы с файлами (и эта документация для программиста), а документация к конфигурациям описывает то, что должен делать пользователь с этими файлами. А АПИ БСП описывается в третьем месте, т.к. это опять другой АПИ.

      Наверное было-бы странно, если бы все это было сложено в один текст и там слегка перемешано.


  1. GaryKomarov
    31.10.2022 12:40
    +1

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

    Надеюсь уже перепилили мой не очень хороший код реализации алгоритма Флойда-Уоршела?


    1. EvilBeaver Автор
      31.10.2022 13:19

      Не знаю, я там с 2017 не появлялся


  1. Markscheider
    31.10.2022 12:44
    +4

    простите, но

    ...повысить качество технической полемики про 1С. Именно качество полемики. Давайте ругать и хвалить правильно

    И

    самый популярный это упоминаемый "бешеной выдрой" Снегопат.

    как-то не сочетаются. Хорошая полемика д.б. без перехода на личности и стеба над никами.


    1. EvilBeaver Автор
      31.10.2022 13:21

      Не знал, что перевод ника это стёб и какое-либо оскорбление. Я никогда не делал разницы, пишет ли кто-то EvilBeaver, Злой Бобер или просто Бобер. Если это в интернетах считается агрессией, то готов исправить написание. Ничего кроме перевода не имелось в виду.


      1. Markscheider
        31.10.2022 13:31
        +3

        Я никогда не делал разницы, пишет ли кто-то EvilBeaver, Злой Бобер или просто Бобер

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


    1. rabid_otter
      31.10.2022 14:24

      Внезапно на самом деле.
      А чем @EvilBeaverне угодила "бешеная выдра"? Андрей, Вы видели какие это няшные парни? Я в своей статье постарался отделить Вас от Вашей статьи, чтобы она не скатилась в УГ типа поста на мисте.
      Это не подражание Вам, я люблю подбирать няшных шерстяных подонков после слова rabid, crazy и т. д.
      Получается прикольно, почти как имя docker контейнера, только без ученых и все бешеные.
      Надо вчитаться, поискать очередные аргументы.


      1. Acuna
        31.10.2022 16:15

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


  1. oleg_shishkin
    31.10.2022 12:53

    Самое интересное - никто не сравнивал 1С и PowerBuilder. Хотя видел аналоги 1С, написанные на PowerBuilder. И в котором нет затыков 1С, но которые работали на порядок быстрее(https://infostart.ru/public/78413/).


    1. Dementor
      01.11.2022 22:53

      А зачем сравнивать с ноунеймом? Таких десятки или может даже сотни.
      Большинство мелюзга с клиентскими базами до сотни юрлиц, которые с технологической точки зрения предлагают или примитивные, или абсолютно не масштабируемые решения. Но есть и крупняки. Только они вполне справляются со своей рекламой и без помощи блогеров. Например, на днях Jmix (ex-Cuba) проводила очередной вебинар по сравнению своих возможностей с 1С (сегодня на почту прилетело)


      1. oleg_shishkin
        02.11.2022 10:51

        Смешно считать PowerBuilder noname - основное средство 4GL для БД за рубежом. Правильнее сказать, это 1С просто ничто по сравнению с PowerBuilder. Когда то. Разработчиков на PowerBuilder требовалось на западе в десятки раз больше чем у нас 1сников. Бешеное количество библиотек под него под все случаи жизни. Лицензия стоила 15000 долларов (https://www.appeon.com/pricing).


        1. Dementor
          02.11.2022 11:17

          Ок, не могу подтвердить или опровергнуть ваши слова. Допустим все чистая правда и PowerBuilder был популярен на западе "Когда то". А еще когда-то были популярны Foxpro и Clipper, Fortran и COBOL - настолько популярны, что системы на этих языках до сих пор работают и есть вакансии (лично мне предлагала одна ИТ-галера в августе пойти к ним работать именно программистом на Foxpro).

          Но не когда-то, а именно сейчас на западе популярны Salesforce и Microsoft Power Platform.


          1. oleg_shishkin
            02.11.2022 15:14

            К сожалению - когда-то. Sybase продала Powerbuilder китайцам, потому что не развивала его больше 10 лет. Просто стригла деньги с него. Поэтому сейчас другие игроки на рынке средств разработки на БД.


  1. Naf2000
    31.10.2022 13:35
    +2

    Переписка Энгельса с Каутским прям.

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

    Лично я вижу это на стеке .net на решениях linq2db и blazor


    1. EvilBeaver Автор
      31.10.2022 14:32
      +1

      И ценность ее примерно такая же, согласен. (В печку её, Зина! (с)) Но раз уж я был призван аж по имени-фамилии, то надо был что-то написать.


  1. F0iL
    31.10.2022 13:59
    +4

    А в Javascript бы пережила, да еще как! Javascript же, как я понял считается за правильный язык, раз на нем пишут хорошие веб-клиенты?

    Нет, не считается. Поэтому на чистом JS обычно и не пишут business-critical-вещи. И даже на фронтенде для такого вместо него уже давно придумали TypeScript, Flutter, Dart (Kotlin/JS и Blazor на подходе для продакшена), а для самого JS существуют линтеры, которые обязательно есть в джентельменском наборе любого приличного веб-разработчика.


  1. awk795
    31.10.2022 14:30

    Блин. Андрей, и не стыдно? Я первый раз за год прочитал статью не по диагонали. А ведь мог уже дочитать "Прикладную криптографию". Тег: "ирония"


    1. elFurion
      31.10.2022 14:34
      +1

      Точно ирония, не шутите ли часом?)


      1. awk795
        31.10.2022 15:28

        В каждой шутке, только доля шутки. И если мне не изменяет память, то шутка, это базовый класс иронии. :)


  1. axelerleo
    31.10.2022 14:30
    +3

    Работаю в смешанной команде на внутренней автоматизации, есть у нас и фронтендеры, и .Net-чики, команда аналитиков и тестировщиков, ну и мы, 1С ники. Выводы у меня примерно те же, что и у Андрея - г@внокодить можно на любом языке / стеке. Равно как и использовать best-practices.
    А насчет того, что 1С это про бухгалтерию и законы - этому мнению столько же лет, сколько и самой 1С. У нас связка ЗУП и Документооборот тесно интегрирована с СКУД, AD (создание и управление учетками), MS Teams (уведомления в каналы при изменении важных данных), MS Project, OTRS, Sharepoint Portal и PowerBI, а теперь еще в силу обстоятельств переходим с Dynamics CRM на Битрикс24, и будет связка еще и с Битриксом.



    1. F0iL
      31.10.2022 17:16
      +2

       г@внокодить можно на любом языке / стеке.

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


      1. justPersonage
        31.10.2022 17:53

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

        Приведите пример таких языков?


        1. SAWER
          01.11.2022 12:00
          +3

          C#, Java, Delphi


          1. F0iL
            01.11.2022 16:55
            +1

            Я бы пошел чуть-чуть дальше и привел в пример Rust, Ada и (божеупаси) Haskell.


            1. justPersonage
              01.11.2022 21:18

              Rust, Ada и (божеупаси) Haskell.

              Вы на этих языках пишите?
              Как много вакансий на этих языках от общего рынка вакансий?
              Этих языков достаточно чтобы закрыть все потребности бизнеса?
              Если нет то тогда в чем ваш призыв?


          1. justPersonage
            01.11.2022 18:36

            C#, Java, Delphi

            Вы считаете, что на Java нету случаев плохого код?


            1. F0iL
              01.11.2022 21:06

              Не надо перевирать, про "нету случаев" не было ни слова, речь шла про вероятность этого.


              1. justPersonage
                01.11.2022 21:24
                -1

                Значит не так понял.
                Но есть и 3 причина плохого кода — когда код нужен быстро быстро.


  1. muzzle
    31.10.2022 14:36
    +1

    В опросе не хватает варианта "Я бывший 1Сник"


    1. EvilBeaver Автор
      31.10.2022 15:06

      Бывший 1Сник должен высказаться выбрав из имеющихся вариантов )


  1. speshuric
    31.10.2022 15:16
    +5

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


    1. EvilBeaver Автор
      31.10.2022 15:18
      +3

      Я ровно это и хотел сказать.


      1. speshuric
        31.10.2022 16:21
        +1

        Больше хороших программистов! Больше хороших инструментов! :)


  1. websnow
    31.10.2022 15:46
    +3

    Есть на Habr традиция - каждый месяц публиковать статьи про недостатки 1с )


  1. ChePeter
    31.10.2022 17:01

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

    Мне 1С напоминает искусство в стиле "наив" - что вижу, то и пою.

    Как профи я могу и тут что-то полезное сделать, но это что-то особенное и уникальное эта 1С


  1. Dr_Wut
    31.10.2022 17:25
    +3

    Мне интересно, когда люди перестанут сравнивать длинное и кислое? Почему вдруг все решили что 1С - это язык программирования? Вы сравнивайте 1С с SAP/Navision/Axapta/Парус/Галактика - это хотя бы продукты одного класса.
    Я еще под постом выдры хотел написать что это больше смахивает на стенограмму у психолога, но воздержался. А тут уже нет )
    А Андрею Овсянику - респект!

    P.S. А еще хочется спросить - а что ж вы у БД не предъявляете такие же претензии? Там тоже для получения снаружи json-а надо пилить костыли ))))


    1. rabid_otter
      31.10.2022 17:34
      +1

      Я еще под постом выдры хотел написать что это больше смахивает на стенограмму у психолога

      А Вы у какого врача лечитесь?
      Переход на личности - нормальное поведение в экосистеме 1Сников. Ничего нового.


      1. Dr_Wut
        31.10.2022 20:17
        +1

        А где вы тут переход на личности? Я дал вам какую-то характеристику как человеку или специалисту?

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

        Мне кажется что вам нужно поискать причину не в окружающих, а в себе.


  1. sticks
    31.10.2022 17:31
    +1

    JSON в SAP? Шиш вам, пишите прослойку на чем-нибудь другом, или купите нашу шину за 100500 миллионов. САП это бизнес система, какого хрена вы в нее суете интеграционные задачи!

    К слову сказать, интеграционные задачи в SAP (имеется в виду уровень ABAP) решаются достаточно легко. Из коробки есть и SOAP, и oData, и XSLT, и даже несколько парсеров из JSON и обратно, которые можно использовать в своих разработках. Загрузка из Excel — это больше про инерцию пользователей, которые так привыкли.


  1. ptr128
    31.10.2022 17:53
    +7

    уже сделано за вас ... Преимущество, а не недостаток

    Простите, но эта фраза меня убила. За меня можно сделать образец или эталонную реализацию, но за меня не надо решать, пользоваться ли мне этим или нет.

    Одно дело, когда мне для решения конкретной задачи предлагается какая-то функция, класс или модуль, но никто не ограничивает меня в написании своей реализации. И совершенно другое, когда мне говорят: "пользуйся только тем что дали".

    Если Вы считаете такое нормой, то уж простите, но мы никогда друг друга даже не поймем, не то что не придем к конценсусу.


    1. EvilBeaver Автор
      31.10.2022 18:12
      +2

      Разумеется, подход "я хочу полностью все контролировать и писать сам" имеет право на жизнь. Но тогда вам в разработку на Си. А то, понимаешь, garbage-collector вмешивается, или стандартные классы уже кто-то написал за меня.


      1. ptr128
        31.10.2022 18:30
        +3

        Да хоть на ассемблере. Главное, чтобы среда позволяла прямой вызов этой реализации. Если среда поддерживает подключение пользовательских DLL/so и прямой вызов функций в них, то среда полноценна. Если нет - ограничена.

        Для примера, Python тоже имеет сборщик мусора и стандартные классы, что совершенно не запрещает мне добавить в него свой модуль, пусть даже частично написанный на C. Из C# мне сборщик мусора совершенно не мешает подключить so и вызвать оттуда мою функцию на C. В Java есть JNIT_CLASS. А в 1С?


      1. sergpewpew
        31.10.2022 18:57
        +3

        Если описывать одни достоинства системы, то можно продать хоть какаху на палочке. Для правильного принятия решения о карьере, в какой сфере работать разработчику необходимо знать и узкие места системы, о том в какие рамки тебя вендор загоняет, с чем ты столкнешься работая в устаревшей ide и подходом 1с к исправлению многолетних багов, то что берут деньги за лицензии по полной, а тебе потом краснеть перед клиентом. Вот пишут мол почему вы 1с с java сравниваете , а потому, что с точки зрения разработчика у тебя выбор куда пойти. 1с манит мол смотри просто у нас все и на русском написано да и стоит на каждом предприятии. Только умалчивают, что будешь нужен как клепатель печатных форм, обновлятор отчётности буха и настраиватель СКД. Пройдет лет 10 как сдашь 20 сертификатов после бессонных ночей может тебя допустят к задачам хайлоад, при котором ты все равно зажат настройками/багами/километровыми модулями от вендора.


      1. Naf2000
        31.10.2022 19:51
        +2

        Я бы не стал впадать в крайности. Скорее хочется свободы выбора. Если стандартные объекты устраивают - используем их, если нет - либо ищем аналоги на просторах (а в 1с такого мало из-за специфичности), либо создаём своё. Например, меня может не устраивать модель иерархии справочника и функция запроса В ИЕРАРХИИ. Я нахожу и адаптирую модель вложенными множествами или другую и теперь В ИЕРАРХИИ может получать аргументы из запроса, как вариант в условии left join.

        Именно поэтому использование общеизвестного языка как C# или Java было бы предпочтительнее - более широкое сообщество.


    1. ktb
      31.10.2022 20:01
      +3

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


      1. ptr128
        31.10.2022 20:15
        +1

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


        1. ktb
          01.11.2022 09:24
          +1

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


          1. ptr128
            01.11.2022 11:03
            +2

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

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


            1. ktb
              01.11.2022 11:14

              Мы же все еще про 1С?

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


              1. SAWER
                01.11.2022 12:09
                +2

                Это переводится так:
                Когда потребуется работа не из "коробки", то это будет стоить х10 от обычной стоимости. А по такой стоимости это либо критично важно и делаем, либо и не нужно вообще, жрите что дали)


                1. ktb
                  01.11.2022 12:40

                  Почему x10? Всего лишь по цене соответствующей компетенции на рынке.


                  1. SAWER
                    01.11.2022 13:42

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

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


                    1. ktb
                      01.11.2022 15:10

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


                      1. ptr128
                        01.11.2022 17:44

                        Например, от биллинга в интеграции с АСКУЭ для ТГК-2 все франчайзи 1С или отказывались, или ломили совершенно конские ценники, превышающие даже стоимость собственной разработки.

                        АСКУЭ для УК или одного предприятия - пожалуйста. А даже только для одной из шести - Ярославской области - уже какие-то астрономические затраты.


                      1. artbear
                        01.11.2022 18:30

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


                      1. ptr128
                        01.11.2022 18:46

                        На AX + С# + SSIS + Kafka + ksqldb + SSRS + SSAS получилось почти в три раза дешевле, чем предлагалось от 1С. Причем и требования к железу оказались в три раза ниже.


                      1. Dementor
                        01.11.2022 23:15

                        Как круто - "AX + С# + SSIS + Kafka + ksqldb + SSRS + SSAS" и в 3х раза дешевле и работает на древних машинах!

                        Вот только если все так волшебно, то почему это решение до сих пор не стоит в каждой бухгалтерии СНГ? Или может это все же не дешевле, а примерно в 30х дороже?


                      1. ptr128
                        02.11.2022 04:14

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


                      1. ktb
                        02.11.2022 08:14

                        1С отлично работает с Kafka и пр., есть соответствующие компоненты.


                      1. ptr128
                        02.11.2022 14:30
                        +1

                        Поделитесь. Я не нашел, как из 1C работать с Avro и Protobuf.


                      1. Dementor
                        02.11.2022 10:35
                        +1

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

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

                        С вашей ситуацией все понятно. ТГК-2 из Архангельска? Туда банально никто не хотел ехать в коммандировку при наличии многолетней очереди из проектов в пределах МКАДа, а потому целенаправленно заломили 10х ценник. Хотя я знаю пару региональных франчей, которым такие проекты интересны и которые могли бы справится, но очевидно, что им никто не позвонил. Зачем искать честную конкуренцию, если сын маминой подруги предлагает "в 3 раза дешевле рынка"?

                        P.S. 1) Kafka массово используют в связке с 1С. Каждый год проходит по несколько технических конференций, часть из которых в онлайне. Можно было бы сходить хоть на одну из них для расширения кругозора. 2) "Другая ERP" - это такой бренд? Звучит как "другая зубная паста" или "другой популярный банк". 3) Платформа 1С - это всего лишь инструмент с помощью которого некоторые пытаются делать решения ERP-класса. 1С:ERP - это всего лишь одна из версий, при чем далеко не очень удачная.


                      1. ptr128
                        02.11.2022 14:29
                        +1

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

                        И при чем тут Архангельск, если ТГК-2 базируется в Ярославле? Я спокойно из Москвы оборачивался за день туда и обратно.

                        1C стал поддерживать Avro и ProtoBuf? Что-то я это пропустил...


                      1. Mikhail1972
                        02.11.2022 19:32

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


                      1. ptr128
                        02.11.2022 20:52

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


              1. ptr128
                01.11.2022 12:10

                Мы о тех случаях, когда 1С внедряется в качестве ERP на производстве. И там вызов пользовательских DLL/so - простейшая и частая задача в почти любой ERP. Из ABAP вызвать SO можно через RFC SDK. Из Axapta - элементарно. Из OEBS - тем более. А из 1C?


                1. ktb
                  01.11.2022 12:39

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


                  1. ptr128
                    01.11.2022 13:13
                    -1

                    Вы серьезно или издеваетесь?


                    1. ktb
                      01.11.2022 13:16

                      Автор вроде просил не понижать уровень дискуссии.


                      1. ptr128
                        01.11.2022 13:20
                        -1

                        Ну тогда прав то, кто написал выше про X10. Потому что оборачивать через COM или внешнюю компоненту любой запрос к ССД уж точно на порядок сложнее и дороже, чем напрямую вызвать интерфейсную функцию из DLL.


                      1. ktb
                        01.11.2022 13:30

                        Откуда "на порядок" дороже?
                        Если подобные задачи возникают регулярно, то можно держать соответствующих специалистов в штате (ценник отличается не сильно), если время от времени, то можно воспользоваться аутсорсом (тоже не сверхестественные цены). И это если не учитывать, того, что 1С-ники со знанием C/C++/C#/Java и т.п. вполне себе встречаются.
                        Практика - критерий истины! :-)
                        При том количестве внедрений 1С, которое существует (без учета коробок с бухгалтерией), что-то не наблюдается огромного количества внешних компонент, т.е. типичные задачи все таки чаще всего решаются средствами платформы.


                      1. ptr128
                        01.11.2022 13:59
                        -2

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


                      1. ktb
                        01.11.2022 14:10

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


                      1. ptr128
                        01.11.2022 17:13
                        -1

                        Я привел пример. Почти на любом производстве приходится посылать запросы к ССД. Оборачивать каждый такой вызов написанием COM или внешней компоненты - совершенно непроизводительные затраты труда разработчика.


                      1. EvilBeaver Автор
                        01.11.2022 14:29

                        Подождите. СОМ-вызовы в 1С никак не оборачиваются, их вызов внешне не отличается от вызова других объектов. Откуда разработчик тратит час?


                      1. ptr128
                        01.11.2022 17:15

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


                      1. artbear
                        01.11.2022 18:33

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


                      1. ptr128
                        01.11.2022 19:10

                        1C не должна обращаться к оборудованию. Это задача ССД. А вот уже ССД предоставляет легаси so/DLL в качестве интерфейса к ней.


                      1. artbear
                        01.11.2022 18:33
                        +1

                        и что такое "запрос к ССД" ?


                      1. ptr128
                        01.11.2022 19:13

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


                      1. Ndochp
                        02.11.2022 13:13

                        Ну не знаю, с какой ССД ваша 1С не справилась, весы на металлоприемке и конвейер на птицефабрике с 1С нормально общались.


                      1. ptr128
                        02.11.2022 14:43

                        Для такого - без проблем. А вот если речь заходит о ММК или Ярославском НПЗ? Даже на маленьком заводике по производству ювелирных часов интеграция 1С с ССД вылилась в большую головную боль.


                      1. Ndochp
                        02.11.2022 16:24

                        Наверное потому, что ССД там вещь в себе. У нас сейчас боль по дружбе СКУД с 1С. Несмотря на то, что у СКУДа формат обмена SOAP, практически родной для 1С — из за того, что добавлен был экспорт для галочки народ вторую неделю плачет, но дружит эти системы между собой.


                      1. ptr128
                        02.11.2022 19:46

                        Да нет. Могу перепутать, но вроде через это работали: https://www.mccdaq.com/MCC-Software.aspx


                    1. EvilBeaver Автор
                      01.11.2022 13:47
                      +1

                      А вы? Что такое "пользовательская DLL"? Её кто написал? Если речь о вызове произвольной функции из произвольной DLL, то написать такую прослойку для 1С, которая будет делать LoadLibrary - день/два, потом на гитхаб и вот она уже есть у всех. Если речь про COM-DLL, то они уже сразу поддержаны из коробки. Что вас возмутило?


                      1. ptr128
                        01.11.2022 13:57

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


                      1. ktb
                        01.11.2022 14:05

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


                      1. EvilBeaver Автор
                        01.11.2022 14:30

                        Только не говорите мне, что ABI у SAP ABAP совместим с ELF или PE


                      1. ptr128
                        01.11.2022 17:19
                        -1

                        Для этого в ABAP существует RFC SDK, предназначенный специально для решения, в том числе, и этой проблемы.

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


                      1. EvilBeaver Автор
                        01.11.2022 22:35

                        Вы упорно не слышите. Есть "RFC SDK" от 1С позволяющий сделать любой бридж в мир С++. Называется внешние компоненты. Почему вы говорите "на каждый вызов написать прослойку" непонятно? Написать прослойку, делающую условные "LoadLibrary+GetProcAddress" для вызова произвольных DLL - дело 1 рабочего дня


                      1. hbn3
                        02.11.2022 01:11

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

                        Чтобы не писать ручками?


                      1. EvilBeaver Автор
                        03.11.2022 09:32

                        А где такая есть? Давно ли so/dll предоставляют полные метаданные о функциях, чтобы по ним можно было что-либо сгенерить?


                      1. ptr128
                        02.11.2022 04:06

                        А если есть возможность делать прямой вызов so/DLL - дело не 1 рабочего дня, а пяти минут. Разницу не замечаете?


  1. gennayo
    31.10.2022 18:44
    +1

    На хлеб с маслом хватает, задачки интересные есть, напрягаться особо не надо. А всё остальное комплексы :)


  1. aka_MIK
    01.11.2022 09:36
    +1

    Неужели Снегопат наконец начал работать стабильно без вылетов? Не верю


    1. Ndochp
      01.11.2022 10:30
      +4

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


  1. comol85
    01.11.2022 12:56

    Я ждал этой статьи! :)))


    1. Dementor
      02.11.2022 10:38

      Целых джва года? )))


  1. dimm_kan
    02.11.2022 19:16
    +1

    Вот всё было в статье хорошо, пока не зашёл разговор про деньги. Всё таки попрошу автора привести пример вакансий мидлов 1С на 230-250к как указано в статье. И желательно - не единственный, а хотя бы 3-4 от разных компаний. При этом желательно не приводить вакансии без указания зп и аппелировать к тому, что мол - "учитесь договариваться". Не договоритесь.


    1. EvilBeaver Автор
      03.11.2022 09:35

      Не приведу. Почти никто сейчас не пишет цифры в вакансиях. Ориентировался на ответы знакомых. Но я и в статье написал, что могу быть не прав, суждение оценочное. У меня нет качественной выборки хотя бы на 100 человек, чтобы сделать объективное заключение. Обладаю только субьективным. И кстати, кто такой мидл? Это какой специалист, что умеет?


      1. dimm_kan
        03.11.2022 09:51
        +1

        И кстати, кто такой мидл? Это какой специалист, что умеет?

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

        Не приведу. Почти никто сейчас не пишет цифры в вакансиях.

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

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