Найти тему
красный Цылб

1С - причины хейта и его сущность

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

  • История 1С: Предприятие;
  • Сущность внутреннего языка;
  • Достоинства и недостатки;
  • Заключение

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

История 1С: Предприятие

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

История компании 1С началась в лихие девяностые, в, тогда ещё новообразованной, России. Создателями сего творения выступили братья Нуралиевы, которых в одинаковой степени боготворят и ненавидят жёлтые разработчики*. Поначалу компания занималась исключительно программным софтом (1С: Предприятие, 1С: Бухгалтерия и т.п.), но затем расширилась до одной из крупнейших айти-компаний. Конкретно 1С: Бухгалтерия появилось примерно в 1992 году, тогда ещё на DOS. Причём на DOS было выпущено сразу несколько версий: 3.0, 4.0, 5.0, 2.0 КОРП (По функционалу похожа на 5.0), но все они были мало похожи на 1С: Предприятие. 1С: Предприятие в том виде, в котором мы его себе представляем проявился лишь в 1999 году, с появлением легендарной версии 7.7 (а та самая 1С: Бухгалтерия появилась ещё в 1995 году).

Интерфейс старой доброй "семёрки", здесь мы видим форму документа
Интерфейс старой доброй "семёрки", здесь мы видим форму документа

С учётом того, что айти индустрия в России находилась ещё на начальной стадии развития, то и ожидать тогда что 1С будет нереально продуманной и без недостатков никто и не собирался. Но на тот момент 1С: Предприятие было вполне себе отличной, даже несмотря на недостатки. Нуралиев и компания хоть и не придумала что-то новое (по сути перелицованный SAP, но с местным колоритом), но облегчила жизнь многим бухгалтерам и администраторам. Тогда же и появилось многое множество продуктов компании под разные задачи: 1С: Документооборот, 1С: Школа, 1С: Платёжные документы, 1С: Предприниматель и ещё очень много других продуктов.

К слову, семёркой до сих пор пользуются немало компаний, причём разных уровней: от ИП до крупных компаний (самые крупные предпочитают уже SAP).

В 2002 году появилась более новая версия 8.0 (или 8.х), которая уже предоставила более обновлённый язык программирования, появились sql запросы (переведённые на русский само собой).

Вот так выглядела "восьмёрка" на примере 1С: Управление торговлей
Вот так выглядела "восьмёрка" на примере 1С: Управление торговлей

Самые распространённые версии 8.2 и 8.3 появились в 2009 и 2013 годах соответственно. Главная разница между 8.3 и 8.2 это то, что 8.3 можно использовать в мобильном приложении (как пользователь, а не как конфигуратор, естественно).

Внутренний язык программирования

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

Пример программы "Привет мир"

//Программируем
Процедура ПриветМирЛол()
   Сообщить(«Привет мир»);
КонецПроцедуры

JavaScript действительно имеет похожие моменты с языком 1С, но по мне тут скорее Basic. Языком запросов в 1С естественно является переведённый на русский язык SQL.

Типы данных примерно как и во всех языках: Строка, Число (есть и число с точностью), Булево; но есть и иные типы, например Дата, Ссылка (есть и в других языках), Определяемый вид и многие другие. Но у языка есть проблема - 1С язык действует исключительно в 1С. А значит, как подсказывает гугл, 1С язык используется исключительно для процессов программ учёта.

Например, язык программирования 1С существует для оформления движений документов

Пример:

Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ЦеныНоменклатуры

Движения.ЦеныНоменклатуры.Записывать = Истина;

Для Каждого ТекСтрокаТовары Из Товары Цикл

Движение = Движения.ЦеныНоменклатуры.Добавить();

Движение.Период = Дата;

Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;

Движение.Характеристика = Ссылка;

Движение.Цена = ТекСтрокаТовары.Цена;

Движение.ВидЦен = Справочники.ВидыЦен.Закупочная;

КонецЦикла;

КонецПроцедуры

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

Вкратце рассказал о самом языке

А теперь

Достоинства и недостатки

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

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

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

Заключение

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

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

  1. Плохая оптимизация;
  2. Плохая репутация;
  3. Не самая высокая производительность;
  4. Часто необъяснимые проблемы с кодом (к примеру, исправить скопированный из другой базы данных запрос почти никак не получится нормально исправить, так как ошибка будет вас всегда преследовать в запросе, придётся создавать новый).

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

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