Какой язык программирования используется в 1с
Перейти к содержимому

Какой язык программирования используется в 1с

  • автор:

Язык 1С: плюсы и минусы для аналитических платформ

Привет, Хабр! На связи Саша Чебанов, product owner платформы Modus.

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

Язык программирования 1C — это язык для написания кода и создания алгоритмов при работе с технологической платформой «1С:Предприятие». Для простоты понимания и сокращения букв я буду писать «язык 1С» или просто «1С».

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

1С предназначен для:

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

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

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

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

Визуализация ациклических графов

У 1С есть плюсы и минусы, ниже поговорим про них.

Высокая скорость разработки

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

Интерфейс платформы 1С

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

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

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

В качестве еще одного примера приведу антикейс другой компании. У них есть система управления внутренней инфраструктурой, которая написана на 1С. В 2022 году решили ее переписать: разработать backend на Python, frontend на JavaScript. Количество спринтов для реализации задач, решавшихся в 1С за один, выросло в несколько раз. В итоге, они вернулись к 1С.

Концентрация на архитектуре и функциональности, а не на коде

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

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

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

Более низкая стоимость владения и сопровождения продукта на 1С

Существенная часть стоимости владения для заказчика – это стоимость обслуживания аналитической системы, куда входит ФОТ сотрудников.

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

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

Если такого специалиста в штате нет, то найти его тоже проще. Если посмотреть резюме, то количество кандидатов 1C – примерно 40% от общего количества соискателей, а оставшиеся 60% будут распределяться между 10-15 другими языками. Например, на сайте hh.ru в Москве прямо сейчас ищут работу программиста около 490 000 человек. Из них по языкам: 172 328 программируют на 1С, 5 040 – на Go, 75 884 на JavaScript, 38 767 – на С#.

Минусы 1С

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

Приведу пример, что нельзя или неудобно делать на 1С:

Рабочий список

  • Визуальные формы для удобной работы с не специфичными для 1С объектами. Например, вот здесь я писал про WorkFlow. Мы подключили библиотеку GoJS и использовали JavaScript, внедрив ее в 1С.
  • Выполнять большое количество математических расчетов с оптимальным потреблением памяти.
  • Решать задачи, связанные с компьютерной графикой и т.д.
  • Полностью кастомизировать шаблоны. Это не значит, что интерфейс будет «как в «1С:Бухгалтерия» 2000-х годов». Просто форма 1С всегда выдержана в одном стиле, который мы можем кастомизировать, но не полностью.

Например, вот интерфейс рабочего списка из Modus ETL.

Мы не сможем здесь:

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

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

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

Если бы у нас было много таких форм и элементов, не стоило бы использовать 1С – риски были бы слишком велики, нужно было бы долго отлаживать всю систему при добавлении новых компонентов. К примеру, связать 1C и JavaScript не так просто. Но т.к. у нас всего 2 такие формы, то 1С здесь оправдан.

Интеграция с другими системами

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

  • через http-сервис;
  • через веб-сервисы ( SOAP );
  • через файловый обмен;
  • через сервисы интеграции (новый функционал для поддержки брокеров сообщений, типа «1С: Шина» или Rabbit MQ).

В последнее время набирает популярность способ интеграции через http-сервис.

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

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

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

  • Блог компании Modus BI
  • Анализ и проектирование систем
  • Data Mining
  • Хранилища данных

Всё, что важно знать про современный язык программирования 1С

У «Практикума» вышел курс «Разработчик 1С», и он вызывает у обычного человека много вопросов:

  • Что такое «1С» и почему на него нужны разработчики?
  • Где они потом будут работать?
  • В чём смысл работать разработчиком 1С, если можно разрабатывать на любом международном языке программирования?
  • Сколько платят?

Если есть вопросы, то есть и ответы. Вот они.

Контекст: 1С

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

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

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

Разработчик 1С — это тот, кто докручивает платформу «1С: Предприятие» под потребности и задачи конкретной компании. Докручивает и поддерживает.

Что такое язык 1С

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

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

Всё, что важно знать про современный язык программирования 1С

Где это используется

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

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

А вот какие задачи можно решить с 1С:

  • учёт рабочего времени;
  • управление складом и закупками;
  • автоматизация производства;
  • кадровый учёт;
  • делопроизводство и обработка документов;
  • зарплата и финансовые данные.

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

Английский не нужен

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

Сам язык — тоже весь на русском, в нём нет английских слов (если только программист сам не решит назвать так переменную).

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

Есть мобильная разработка

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

Всё, что важно знать про современный язык программирования 1С

Как с вакансиями

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

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

Всё, что важно знать про современный язык программирования 1С

Как там с деньгами

Средняя зарплата 1С-программиста, по данным Хабр Карьеры, — 180 тысяч рублей. Это зарплата хорошего мидла, новички получают на старте примерно в два раза меньше — 90 тысяч.

Всё, что важно знать про современный язык программирования 1С

Где научиться

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

Что дальше

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

1С-разработка — это стабильность

Российские космонавты уже высадятся на Марс, а зарплату им всё ещё будут считать через 1С. И кто-то должен будет подкрутить там модуль межзвёздных начислений. Подкрутите?

На чем написана 1С?

введите сюда описание изображения

Зашел разговор про 1с и я услышал следующее мнение — что 1с написана на ЯП Русского разлива, т.е. даже буквы в этом ЯП Русские, так же этот гражданин приложил скрин (в конце поста). Проясните ситуацию, на чем написана 1с, и если она все такие написана на C++, то каким боком относиться к ней ЯП на Русский манер? Вообще любая инфа на этот счет будет интересна.

Отслеживать
задан 21 сен 2018 в 8:20
1,552 4 4 золотых знака 17 17 серебряных знаков 32 32 бронзовых знака
Может это Google переводчик перевел? 😀
21 сен 2018 в 8:24

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

21 сен 2018 в 8:29

А что такого страшного в русском языке в программировании? По большому счету, русифицировать тот же C++ — нет проблем, работа простейшая, буквально для начинающего программиста. но зачем? Мое искреннее мнение — наше счастье (и преимущество), что языки программирования англоязычные, так что мы воспринимаем их по сути как математические формулы, а не как инструкции на русском. Одного приведенного скриншота достаточно, чтобы это понять 🙂

21 сен 2018 в 9:31

@Harry Вы сами ответили на свой вопрос. Страшного — ничего, но и полезного — еще меньше. Остается мечтать о том, что бы и валюта и границы между странами стерлись, а там может и язык в более общий сольется, столько преград сразу рухнет. ух!

21 сен 2018 в 9:59

В недалеком прошлом было несколько языков программирования на русском: Алмир, Аналитик, Рапира. Язык Лого традиционно переводится на язык той страны, в которой используется. | Как уже тут сказали, русифицировать C++ элементарно. Зацените, например, боярский диалект.

Язык 1C

Язык программирования 1C — язык для создания кодов и алгоритмов внутри программного обеспечения «1C:Предприятие» и оптимизированный для работы на платформе. Он не имеет собственного названия и обозначается как «встроенный язык программирования».

Освойте профессию
«1С-программист»

Где используется 1C

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

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

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

  1. Простота. У этого языка низкий порог вхождения. Обычно разработчики изменяют готовые типовые конфигурации, что делает программирование на 1C понятным для начинающих.
  2. Доступность. Все коды пишутся на русском, что значительно экономит время, затрачиваемое на перевод. Но 1C — двуязычная программа: по желанию вы можете свободно программировать и на английском языке.
  3. Предварительная компиляция. Модули, написанные на языке 1C, перед началом исполнения компилируются во внутренний байт-код.
  4. Сохранение скомпилированных модулей. Все они остаются в кэше.
  5. Мягкая типизация. Типы переменных определяются их значением.
  6. Наличие синтаксис-помощника. Это справочник-подсказка, содержащий всю информацию о синтаксисе 1C и правилах работы.

9,5 месяцев
1С-программист

Легкий вход в 1C с нуля — не нужно технического образования

Group 1321314348 (2)

Из чего состоит «1C:Предприятие»

Программа 1C состоит из двух частей: платформы и конфигурации.

Платформа — это база, на основе которой разрабатываются конфигурации: без нее создание и изменение конфигураций невозможно. Конфигурация или прикладное решение — написанная на языке 1C программа, которую используют пользователи. Одна платформа может содержать сразу несколько конфигураций. По методу разработки конфигурации делятся на типовые — созданные самой компанией — и нетиповые. К последним относят разработанные с нуля или видоизмененные типовые конфигурации.

Что такое переменные

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

У каждой переменной есть свое имя, которое образуется по следующим правилам:

  1. Каждое имя начинается с русской или английской буквы. Также допустимо начало со знака «_».
  2. Имя может содержать числа, но не может с них начинаться.
  3. Длина имени не ограничена.
  4. Нельзя использовать букву «ё».
  5. Имя не должно содержать пробелов.

Создать переменную проще простого. Для этого достаточно просто придумать имя и записать его перед знаком равенства. Например:

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

Модули и методы

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

Модуль — это текстовый файл с прописанным программным кодом.

Но что программа делает с готовыми модулями?

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

1С-программист — самая востребованная IT-профессия в России. Она подойдет всем, независимо от опыта и образования

События

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

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

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

Значения и их коллекции

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

  • Null. Используется, чтобы обозначить отсутствие значения.
  • Число. Задает число, с которым можно выполнять простые арифметические действия — сложение, вычитание, умножение или деление.
  • Дата. Используется для указания даты и времени. Обратите внимание на особенность программирования на 1C — дата и время всегда прописываются полностью, с точностью до секунд.
  • Строка. Прописывается в кавычках и задает символьную строку.
  • Булево. Получается в результате логических операций и обозначает «правду» или «ложь». Чтобы было понятнее, возьмем в качестве примера операцию Равно: если вы сравните два одинаковых числа, то получите правду, если два разных — ложь.
  • Неопределенно. Применяется для значений, не относящихся ни к одному из вышеперечисленных типов.

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

Рассмотрим самые значимые коллекции:

  • Таблица значений. Объект, служащий для хранения и обработки значений любого типа. Выглядит как обычная таблица, созданная в Excel.
  • Дерево значений. То же, что и таблица значений. Отличительная особенность дерева — иерархический способ записи данных. Это значит, что у каждой строки есть подчиненная строка, у которой также могут быть свои подчиненные. Только одна строка, самая первая, считается родительской и не имеет своего родителя.
  • Список значений. Временное хранилище данных, позволяет управлять значениями, редактировать их или удалять. Используется для работы с интерфейсом.
  • Массив. Служит для сбора и хранения произвольных значений. Массив — пронумерованная коллекция: это значит, что у каждого элемента есть порядковый номер, который называется индексом и начинается с нуля. Массив также может быть многомерным, то есть созданным из других массивов.
  • Структура и соответствие. Служат для хранения данных и состоят из двух парных элементов «ключ-значение». Каждое значение здесь имеет собственное уникальное имя, т. е. ключ. В структуре ключ — строго строкового типа, а значение — произвольного. В соответствии ключ также становится произвольным.

Как программировать на 1C

Весь процесс программирования происходит в уже знакомом нам модуле. Давайте рассмотрим его поэтапно на примере самой простой программы «Привет, мир!».

  1. Запустите программу «1C:Предприятие».
  2. Откройте пустую базу в режиме конфигуратора.
  3. На панели управления нажмите на «Открыть конфигурацию».
  4. В открывшемся меню правой кнопкой мыши нажмите на пункт «Конфигурация» и откройте модуль приложения.
  5. Перед вами открывается пустая программа — текстовый документ, в котором можно писать.
  6. Наберите команду: Сообщить («Привет, мир!»);.
  7. Запускаем программу «1C:Предприятие» с помощью кнопки «Начать отладку».
  8. В приложении появится готовое сообщение.

1С-программист

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

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

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