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++ элементарно. Зацените, например, боярский диалект.

Платформа «1С: Предприятие» — что под капотом?

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

image

  • кластер серверов
  • «тонкий» клиент, способный подключаться к серверу по http и собственному бинарному протоколу
  • клиент для работы в двухзвенной архитектуре с БД, размещенной на жестком диске или сетевой папке
  • веб-клиент
  • средства администрирования сервера приложений
  • среда разработки (известная как Конфигуратор)
  • среда исполнения для iOS, Android и Windows Phone (мобильная платформа 1С)

Нативные приложения

  • STL (в частности, строки, контейнеры и алгоритмы)
  • множественное наследование, в т.ч. множественное наследование реализации
  • шаблоны
  • исключения
  • умные указатели (собственная реализация)

Компоненты

Для обеспечения модульности весь функционал разделен на компоненты, представляющие из себя динамические библиотеки (*.dll под Windows, *.so — под Linux). Всего компонентов более полутора сотен, приведем описания некоторых из них:

backend Содержит «движок» метаданных платформы
accnt Объекты, которые прикладные разработчики используют для построения бухгалтерского учета (планы счетов и регистры бухгалтерии)
bsl Движок исполнения встроенного языка
nuke Собственная реализация аллокатора памяти
dbeng8 Движок файловой базы. Простая файл-серверная машина баз данных, основанная на ISAM, включающая также простой SQL-процессор
wbase Содержит базовые классы и функции для реализации пользовательского интерфейса Windows — оконные классы, доступ к GDI и т. п.
  • Разделение способствует лучшему проектированию, в частности лучшей изоляции кода
  • Из набора компонентов можно гибко собирать разные варианты поставки:
    • Например, инсталляция тонкого клиента будет содержать wbase, но не будет backend
    • а на сервере wbase, наоборот, не будет
    • оба варианта будут, конечно, содержать nuke и bsl

    SCOM

    • Предоставляет фабричные методы, позволяющие создать класс из другой компоненты зная только его название (без раскрытия реализации)
    • Предоставляет инфраструктуру умных указателей с подсчетом ссылок. За временем жизни SCOM-класса не нужно следить вручную
    • Позволяет узнать реализует ли объект конкретный интерфейс и автоматически привести указатель на объект к указателю на интерфейс
    • Создать объект-сервис, всегда доступный через метод get_service и т.д.
    SCOM_CLASS_ENTRY(JSONStreamReader) 

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

    IJSONStreamReaderPtr jsonReader = create_instance(SCOM_CLSIDOF(JSONStreamReader)); 

    Для поддержки сервисов SCOM предлагает дополнительную, достаточно сложную инфраструктуру. Центральным в ней является понятие SCOM-процесса, который служит контейнером для запущенных сервисов (т.е. выполняет роль Service Locator), а также содержит привязку к локализуемым ресурсами. SCOM процесс привязывается к потоку ОС. Благодаря этому внутри приложения можно вот так получать сервисы:

    SCOM_Process* process = core::current_process(); if (process) return get_service(process); 

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

    На основе компонентной модели SCOM реализована и бизнес-логика и интерфейсная часть 1С: Предприятия.

    Пользовательский интерфейс

    Кстати, об интерфейсах. Мы не используем стандартные контролы Windows, наши элементы управления реализованы напрямую на Windows API. Для Linux-версии сделана прослойка, работающая через библиотеку wxWidgets.
    Библиотека элементов управления не зависит от других частей «1С:Предприятия» и используется нами еще в нескольких небольших внутренних утилитах.

    За годы развития 1С:Предприятие внешний вид контролов менялся, но серьезное изменение принципов произошло только один раз, в 2009 году, с выходом версии 8.2 и появлением «управляемых форм». Помимо изменения внешнего вида, фундаментально изменился принцип компоновки формы — произошел отказ от попиксельного позиционирования элементов в пользу flow-компоновки элементов. Кроме того, в новой модели элементы управления работают не напрямую с доменными объектами, а со специальными DTO (Data Transfer Objects).
    Эти изменения позволили создать веб-клиент «1С:Предприятия», повторяющий С++ логику контролов на JavaScript. Мы стараемся поддерживать функциональную эквивалентность между тонким и веб клиентами. В том случае, когда это невозможно, например, из-за ограничений доступных из JavaScript API (например, возможности работы с файлами очень ограничены), мы часто реализуем нужную функциональность при помощи расширений браузеров, написанных на C++. На данный момент мы поддерживаем Internet Explorer и Microsoft Edge (Windows), Google Chrome(Windows), Firefox (Windows и Linux) и Safari (MacOS).

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

    image

    Интерфейс 1С на ОС Linux

    image

    Интерфейс 1С на мобильном устройстве

    Интерфейс 1С на других платформах

    image

    Интерфейс 1С на ОС Windows

    image

    Интерфейс 1С — веб-клиент

    Open source

    • cURL для работы с HTTP и FTP.
    • OpenSSL для работы с криптографией и установки TLS соединений
    • libxml2 и libxslt для разбора XML
    • libetpan для работы с почтовыми протоколами (POP3, SMTP, IMAP)
    • mimetic для разбора сообщений электронной почты
    • sqllite для хранения журналов работы пользователей
    • ICU для интернационализации

    Заключение

    В статье мы коснулись нескольких основных аспектов разработки платформы «1С: Предприятие». В ограниченном объеме статьи мы затронули лишь некоторые интересные, на наш взгляд, аспекты.
    Общее описание различных механизмов платформы можно посмотреть тут.
    Какие темы были бы интересны Вам в следующих статьях?

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

    Пишите в комментариях!

    • erp системы
    • разработка приложений
    • кроссплатформенная разработка
    • 1С:Предприятие
    • C++
    • программирование
    • Блог компании 1С
    • Веб-разработка
    • Анализ и проектирование систем
    • 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 — можно найти работу удаленно или в вашем регионе.

    на чем написан язык программирования 1с

    Язык программирования 1С основан на технологии платформы 1С:Предприятие, которая разработана компанией 1С и предназначена для создания информационных систем для различных сфер деятельности. Платформа 1С:Предприятие использует в качестве основы язык программирования визуального описания алгоритмов, известный как “1C:Enterprise script” или просто “1C:Script”.

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

    Однако, стоит отметить, что 1C:Script сам по себе является высокоуровневым языком программирования и синтаксически сильно отличается от других популярных языков программирования, таких как Java или C++. Программы на языке 1С требуют специфического подхода к написанию кода и часто используют специфические функции и возможности, предоставляемые только 1С:Предприятие.

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

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

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

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