Почему программисты не любят 1с
Перейти к содержимому

Почему программисты не любят 1с

  • автор:

«Нормальные программисты на русском не кодят»: четыре раздражающих мифа про язык 1С

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

Катя Павловская для Skillbox Media

Марина Демидова

Марина Демидова

Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.

«1С:Предприятие» — одна из самых известных систем автоматизации учёта в России и СНГ. Вокруг неё сложилось много мифов. Конечно, «1С» трудно назвать идеальной системой, но некоторые из этих заблуждений так и тянет опровергнуть.

Миф 1. Язык — ненастоящий!

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

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

У 1С много общего с Pascal и BASIC, хотя их нельзя назвать аналогами. Программисты могут выбрать англо- или русскоязычный синтаксис, но почти все 1С-разработчики останавливаются на русском — на нём написаны старые и новые продукты, на русском больше документации и примеров кода. Русскоязычный синтаксис стал стандартом ещё с первых версий 1С.

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

«1С:Предприятие 8» фактически навязывает вам стандартную модель проектирования, что позволяет существенно снизить затраты на построение и поддержку прикладных решений».

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

1С-разработчики не только пишут код. Их основная задача — визуальное конструирование. Человек запускает «1С:Предприятие» и в режиме конфигуратора создаёт новые объекты, настраивает их свойства, формы представления в интерфейсе и связи с другими объектами.

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

У большинства объектов есть модули, написанные на языке 1С. Они определяют, как объект поведёт себя, когда наступит нужное событие. Например, у элемента Справочник есть обработка события ПередЗаписью (), которая проверяет заполнение реквизитов. Каждый раз, когда пользователь будет добавлять новый элемент, сработает проверка.

Миф 2. Программисты… тоже ненастоящие!

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

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

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

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

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

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

Обычно эти системы не пишут с нуля, а дорабатывают готовые конфигурации — так получается быстрее и дешевле. Самые удачные из них компания «1С» сертифицирует и продаёт как типовые решения.

Миф 3. Товарищ Нетте — бухгалтер и программист

Чтобы устроиться 1С-разработчиком, достаточно знать бухгалтерский учёт.

Миф появился, потому что первым продуктом «1С» была «1С:Бухгалтерия», и фирму до сих пор ассоциируют только с бухучётом. Если человек разбирается в «1С:Бухгалтерии», он может стать консультантом, но ему придётся много учиться, чтобы стать разработчиком.

За 30 лет компания «1С» выпустила решения для разных видов предприятий и даже отдельных бизнес-процессов, например:

  • Программы для участков учёта — «Зарплата и управление персоналом», «Управление торговлей», «Документооборот».
  • Решения для малого, среднего и крупного бизнеса — «Управление нашей фирмой», «ERP Управление предприятием», «Корпорация».
  • Отраслевые решения для энергетики, сельского хозяйства, строительства, ЖКХ, транспорта, общепита, гостиниц, медицины, культуры и других сфер.

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

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

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

Миф 4. Одинэсников — прорва

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

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

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

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

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

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

Чтобы подтвердить свои навыки, разработчики регулярно проходят сертификацию от «1С».

Почему мифы об 1С — неправда

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

Миф Опровержение
Язык — ненастоящий. У «1С» есть настоящий предметно-ориентированный язык, который создан для систем учёта. В нём есть русско- и англоязычный синтаксис, можно выбрать тот, который удобнее.
Программисты — неполноценные. 1С-разработчики умеют обращаться с базами данных, фронтендом и бэкендом, так что будет несложно сменить стек и освоить другой язык.
Нужно знать не программирование, а бухучёт. Чтобы работать с продуктами «1С», недостаточно знать бухучёт. Приходится консультировать пользователей, действовать в качестве системного администратора и дорабатывать код программ.
Разработчиков слишком много. Зато всегда не хватает тех, кто знает типовые конфигурации, постоянно учится, умеет добавлять в платформу новые функции и восстанавливать базы данных после сбоя.

Читайте также:

  • Кто такой программист 1С, чем он занимается и сколько получает
  • Важны ли пол, возраст и образование в IT
  • Устраиваемся в Amazon: 5 шагов от резюме до оффера

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

Франчайзи — официальные партнёры «1С», которые разрабатывают продукты под брендом «1С». Их сотрудники консультируют пользователей, внедряют и сопровождают ПО на предприятиях.

Почему программисты 1С не любят 1С?

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

Закрытость и не публичность 1С

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

Ресурсы в 1С, где общаются разработчики, максимально огорожены. Например, на партнерский форум разработчиков можно попасть только если ты сдал экзамен «1С: Специалист». Но этого мало — нужно работать в 1С:Франчайзи или купить комплект разработчика (около 50$).

По поводу этого комплекта была забавный случай — во время карантина 1С продавала его раза в три дешевле, чем обычно. Но такой «комплект со скидкой» не давал права на доступ на партнерский форум.

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

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

Кстати, 1С пыталась создать ресурсы для привлечения разработчиков. Был такой проект «Наше 1С», аналог Инфостарта, сейчас благополучно умер. Т.е. такое ощущение, что кто-то в 1С взял на него бюджет, освоил и благополучно закрыл. А может 1С разочаровалась в связи с разработчиками? В любом случае, смерть проекта не была никак объяснена тем разработчикам, которые вкладывали в него силы и ресурсы.

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

Отсутствие миссии 1С

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

Со временем стало понятно, что 1С не заинтересовано в PERFECT (идеале) . Мы пережили переход с 77 на обычные формы, затем на управляемые и далее на асинхронность. С каждым новым переходом все больше геморроя, которым должна была заниматься платформа, перекладывалось на плечи программиста. В конечном итоге, это движение напоминает регресс от Си к Ассемблеру.

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

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

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

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

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

Даже на Запад 1С лезет, только повинуясь «инстинкту размножения». Какая цель этой экспансии? Показать лучшую в мире среду разработки? Увы, нет. Просто завоевать еще немного рынков.

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

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

Не документированность конфигураций 1С

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

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

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

Тестирование конфигураций 1С не качественное

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

Когда встречаешь такое отношение к качеству продукта, возникают невольные опасения, что в отделе разработке царит бардак, релизы спешат подогнать к дате, а их конечное качество не проверяют. Иначе как объяснить такие «косяки»?

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

Я считаю, что если фирма делает конфигурации на всю Россию, то уж авто-тесты она использовать должна.

Неграмотная архитектуры конфигураций

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

Переименования модулей, процедур, объектов базы данных — обычное дело. Контактная информация, например, хранилась в регистрах сведений, переехала по непонятным причинам в табличную часть контрагентов. Нет стабильности, данные организованы согласно удобству какого-то текущего приоритета, часто не понятному.

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

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

Неудивительно что с таким несерьезным подходом к архитектуре ERP у 1С не очень то хорошо получается.

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

Стандарты 1С по коду сомнительны

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

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

Это в частности, касается запросов в цикле, запрет на Goto, запрет на получение полей объекта «через точку» и т.п.

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

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

Платформа по цене конфигурации и общая жадность 1С

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

Потому что если ты написал какую-то программу и хочешь продавать ее за 30$, сложно объяснить пользователю, почему он должен покупать еще и платформу за 180$.

Тем не менее базовые конфигурации от 1С как раз и продаются за эти 30$, например, программа 1С:Деньги для учета личных финансов стоит вообще 10$.

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

Платформа 1С стоит столько же, сколько конфигурация «Бухгалтерия предприятия 3.0» и отдельно дешевле не продается.

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

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

Так вот, библиотека вроде бы распространяется как open-source. Но чтобы ее использовать, должна быть подписка на ИТС, каково? Вот эта копеечная жадность, попытка выжать малую денежку — отвратительна.

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

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

Понты вместо квалификации

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

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

Сами сертификаты подтверждают наличие знаний по теме сертификата лишь косвенно. Экзамены типа «Профессионал» — это вообще тесты на память. Когда я их сдавал во франчайзи, я их банально запоминал, сдавая даже те темы, в которых вообще был не в курсе, например МСФО. Экзамены на «Специалист» посложнее, но их сдача не показывает никакой практический опыт специалиста в решении практических задач, а просто подтверждает, что человек посмотрел задачи, порешал их, имеет какие-то минимальные навыки в области.

Т.е. по сути сертификация от 1С — это понты и показуха.

Работа в самой фирме 1С

Фирма 1С платит программистам 1С обычную рыночную зарплату. Я знаю, потому что сам ходил туда устраиваться. И даже мог бы работать в отделе разработки УТ.

Такой политикой 1С не привлекает лучших программистов. Код пишут посредственности. Может это и не так страшно при наличии грамотных архитекторов и постановщиков, но не уверен, что им платят 2х, 3х по рынку. Отсюда и качество решений.

Идея работать в самой 1С приходит в голову многим программистам 1С. Лично я, несмотря на пройденное собеседование, потом передумал. Причин несколько:

  1. Я не верил в тот продукт, который они разрабатывают. У типовых конфигураций уже сложился стереотип «глючных». Как-то не хотелось вкладывать свои силы в такое.
  2. 1С накладывает ограничения на публичность, также нужно соблюдать тайны и прочее. Мне не по душе такая закрытость.
  3. Этот пункт мой личный. Мне еще на первой работе программистом не понравилась система, когда ты являешься лишь маленьким винтиком в разработке. Сила программиста 1С в том, что он может в одно лицо совершать большие разработки и внедрения.

Будущее 1С

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

Похоже, что 1С движется в сторону No-code коробочных решений.

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

Складывается парадоксальная ситуация — программисту 1С надо знать и уметь больше, а платят за это меньше. Причем опыт, приобретенный в 1С, не котируется на Западе. Это напоминает, как наши врачи и инженеры, эмигрировавшие в США, работали уборщиками и грузчиками.

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

Disclaimer: все описанное в статье является лишь личным мнением автора и может не соответствовать действительности.

Что не так с 1С и стоит ли его изучать

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

Редакция «Код» Skillbox Media

Редакция «Код» Skillbox Media

Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.

об эксперте

Фёдор Езеев, в Twitter @fezeev. Индивидуальный предприниматель, пишет на 1С и Python. Увлекается яхтингом и самогоноварением.

Я начал программировать на 1С в 1998 году. Довольно долго поработал на версиях 7.5, 7.7 и немного с восьмой, но она не легла на душу. Именно тогда я ушёл из 1С. Сейчас только помогаю поддерживать конфигурацию одного проекта на семёрке.

Особенности 1С

Сколько бы ни ругали экосистему «1С», у неё есть ряд достоинств.

Платформа хорошо продумана и структурирована. Есть чёткий шаблон Model-View-Controller, визуализированная база данных и свой объектно-ориентированный язык. Правда, несмотря на объектоориентированность, создавать свои объекты можно с большими ограничениями.

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

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

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

Из 1С несложно перейти на другой стек. Платформа хоть и специфическая, но во многом похожа на другие популярные языки. Сейчас я работаю в проекте на Flask и скажу, что 1С вполне можно сравнить с Python. Там, например, похожая «утиная типизация»: если объект крякает, значит, это утка.

Удобно собирать проекты. Интеграция моделей и контроллера в 1С реализована по-человечески: просто накидываете в конфигураторе поля — и никакой головной боли. Конфигуратор — это такая «одинэсная» IDE, в которой есть все нужные модули. Не нужно собирать кучу маленьких файликов: одна неделимая конфигурация управляет компонентами и автоматически их связывает. Иногда мне этого не хватает в остальных IDE и языках, где надо прописывать взаимосвязи модулей вручную.

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

Почему расцвет «1С» пришёлся на седьмую версию

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

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

Ещё добавили прямые запросы к базе данных, что заметно ускорило построение отчётов. В стандартном 1С нужно использовать специальную «прокладку»: писать запрос на языке системы, который потом транслируется в SQL. Появилась компонента FormEx, которая давала свободу в работе с экранными формами — раньше, например, в 1С нельзя было программно поменять форму.

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

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

Что не так с восьмёркой

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

Компания поменяла лицензионное соглашение. Если точнее — они его просто написали. В предыдущих версиях формального лицензионного соглашения вообще не было.

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

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

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

Как устроен бизнес «1С»

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

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

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

Когда я начинал, в 1998–2000 годах, «1С» была на подъёме, а 1С-разработчиков не хватало. Даже человек, который просто ездил по фирмам и обновлял регламентную отчётность, мог вполне неплохо заработать. А если он решал большие задачи для бизнеса, то получал 20–30 долларов в час. Тогда франчайзи забирали около половины заработанных денег.

Где используют «1С» и какие перспективы у 1С-разработчика

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

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

На 1С реализованы довольно крупные проекты с большим количеством пользователей и объёмом данных. Там всегда найдутся задачи для работы в команде: например, оптимизация алгоритмов и работы с базой данных, прокачка user experience (да, формы в «1С» тоже должны быть удобными). В этом язык 1С похож на другие стеки — задачи одни и те же, просто инструменты разные.

Куда движется «1С» и какие перспективы у разработчиков

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

Но рынок «1С» очень локальный и в первую очередь заточен на Россию, немного на Украину и Казахстан. Если вы уверены, что никогда не захотите выйти на международный IT-рынок, то можно смело осваивать 1С. Скорее всего, как минимум 10–20 лет у вас будет много работы.

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

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

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

Начинающим программистам советую не принимать свою первую работу близко к сердцу, соблюдать work-life balance и не верить песням вроде «наша компания — это дружная семья». Вы работаете, чтобы зарабатывать деньги и помогать в этом другим. Соблюдайте формальные отношения, не бойтесь отстаивать свои интересы и личные границы, даже если это может обидеть работодателя. И ещё — не замыкайтесь внутри экосистемы «1С». Чаще выглядывайте наружу: изучайте веб, OLAP-кубы и другие системы учёта — всё что угодно. Подобных задач довольно много, и через них можно легко войти в большое IT.

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

GPL (акроним от General Public License — универсальная общественная лицензия). Эта лицензия внедрена Free Software Foundation. GPL позволяет любому пользователю свободно запускать, изменять и распространять такое ПО.

Системы контроля версий с центральным репозиторием.

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

Почему программисты 1С не любят 1С?

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

Закрытость и не публичность 1С

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

Ресурсы в 1С, где общаются разработчики, максимально огорожены. Например, на партнерский форум разработчиков можно попасть только если ты сдал экзамен «1С: Специалист». Но этого мало — нужно работать в 1С:Франчайзи или купить комплект разработчика (около 50$).

По поводу этого комплекта была забавный случай — во время карантина 1С продавала его раза в три дешевле, чем обычно. Но такой «комплект со скидкой» не давал права на доступ на партнерский форум.

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

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

Кстати, 1С пыталась создать ресурсы для привлечения разработчиков. Был такой проект «Наше 1С», аналог Инфостарта, сейчас благополучно умер. Т.е. такое ощущение, что кто-то в 1С взял на него бюджет, освоил и благополучно закрыл. А может 1С разочаровалась в связи с разработчиками? В любом случае, смерть проекта не была никак объяснена тем разработчикам, которые вкладывали в него силы и ресурсы.

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

Отсутствие миссии 1С

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

Со временем стало понятно, что 1С не заинтересовано в PERFECT (идеале) . Мы пережили переход с 77 на обычные формы, затем на управляемые и далее на асинхронность. С каждым новым переходом все больше геморроя, которым должна была заниматься платформа, перекладывалось на плечи программиста. В конечном итоге, это движение напоминает регресс от Си к Ассемблеру.

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

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

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

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

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

Даже на Запад 1С лезет, только повинуясь «инстинкту размножения». Какая цель этой экспансии? Показать лучшую в мире среду разработки? Увы, нет. Просто завоевать еще немного рынков.

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

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

Не документированность конфигураций 1С

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

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

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

Тестирование конфигураций 1С не качественное

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

Когда встречаешь такое отношение к качеству продукта, возникают невольные опасения, что в отделе разработке царит бардак, релизы спешат подогнать к дате, а их конечное качество не проверяют. Иначе как объяснить такие «косяки»?

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

Я считаю, что если фирма делает конфигурации на всю Россию, то уж авто-тесты она использовать должна.

Неграмотная архитектуры конфигураций

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

Переименования модулей, процедур, объектов базы данных — обычное дело. Контактная информация, например, хранилась в регистрах сведений, переехала по непонятным причинам в табличную часть контрагентов. Нет стабильности, данные организованы согласно удобству какого-то текущего приоритета, часто не понятному.

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

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

Неудивительно что с таким несерьезным подходом к архитектуре ERP у 1С не очень то хорошо получается.

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

Стандарты 1С по коду сомнительны

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

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

Это в частности, касается запросов в цикле, запрет на Goto, запрет на получение полей объекта «через точку» и т.п.

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

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

Платформа по цене конфигурации и общая жадность 1С

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

Потому что если ты написал какую-то программу и хочешь продавать ее за 30$, сложно объяснить пользователю, почему он должен покупать еще и платформу за 180$.

Тем не менее базовые конфигурации от 1С как раз и продаются за эти 30$, например, программа 1С:Деньги для учета личных финансов стоит вообще 10$.

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

Платформа 1С стоит столько же, сколько конфигурация «Бухгалтерия предприятия 3.0» и отдельно дешевле не продается.

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

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

Так вот, библиотека вроде бы распространяется как open-source. Но чтобы ее использовать, должна быть подписка на ИТС, каково? Вот эта копеечная жадность, попытка выжать малую денежку — отвратительна.

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

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

Понты вместо квалификации

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

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

Сами сертификаты подтверждают наличие знаний по теме сертификата лишь косвенно. Экзамены типа «Профессионал» — это вообще тесты на память. Когда я их сдавал во франчайзи, я их банально запоминал, сдавая даже те темы, в которых вообще был не в курсе, например МСФО. Экзамены на «Специалист» посложнее, но их сдача не показывает никакой практический опыт специалиста в решении практических задач, а просто подтверждает, что человек посмотрел задачи, порешал их, имеет какие-то минимальные навыки в области.

Т.е. по сути сертификация от 1С — это понты и показуха.

Работа в самой фирме 1С

Фирма 1С платит программистам 1С обычную рыночную зарплату. Я знаю, потому что сам ходил туда устраиваться. И даже мог бы работать в отделе разработки УТ.

Такой политикой 1С не привлекает лучших программистов. Код пишут посредственности. Может это и не так страшно при наличии грамотных архитекторов и постановщиков, но не уверен, что им платят 2х, 3х по рынку. Отсюда и качество решений.

Идея работать в самой 1С приходит в голову многим программистам 1С. Лично я, несмотря на пройденное собеседование, потом передумал. Причин несколько:

  1. Я не верил в тот продукт, который они разрабатывают. У типовых конфигураций уже сложился стереотип «глючных». Как-то не хотелось вкладывать свои силы в такое.
  2. 1С накладывает ограничения на публичность, также нужно соблюдать тайны и прочее. Мне не по душе такая закрытость.
  3. Этот пункт мой личный. Мне еще на первой работе программистом не понравилась система, когда ты являешься лишь маленьким винтиком в разработке. Сила программиста 1С в том, что он может в одно лицо совершать большие разработки и внедрения.

Будущее 1С

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

Похоже, что 1С движется в сторону No-code коробочных решений.

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

Складывается парадоксальная ситуация — программисту 1С надо знать и уметь больше, а платят за это меньше. Причем опыт, приобретенный в 1С, не котируется на Западе. Это напоминает, как наши врачи и инженеры, эмигрировавшие в США, работали уборщиками и грузчиками.

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

Disclaimer: все описанное в статье является лишь личным мнением автора и может не соответствовать действительности.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *