На чем написана 1С?
Зашел разговор про 1с и я услышал следующее мнение — что 1с написана на ЯП Русского разлива, т.е. даже буквы в этом ЯП Русские, так же этот гражданин приложил скрин (в конце поста). Проясните ситуацию, на чем написана 1с, и если она все такие написана на C++, то каким боком относиться к ней ЯП на Русский манер?
Вообще любая инфа на этот счет будет интересна.
На скриншоте язык не на котором написана платформа 1С, а язык на котором пишутся её конфигурации. Сама 1С написана на C++.
На самом деле, 1С написана на языке С++ в среде разработки MS Visual C++.
Это сведения разработчиков 1С:
Платформа 1С: Предприятия 8 написана на MS Visual C++.
При создании платформы использована собственная компонентная архитектура. Сервер 1С: Предприятия создан с использованием технологии COM+. Механизмы платформы содержат большое количество собственных технологических решений.
Платформа 1C:Предприятие — это система с открытым прикладным исходным кодом, написанным на проприетарном языке, официально его называют «Встроенный язык программирования 1С:Предприятие», неофициально и коротко – «язык 1С». Сама платформа 1С:Предприятие 8 — это большое (более 10 миллионов строк кода) приложение на C++ (клиент, сервер и т.д.), JavaScript (веб-клиент), и, с недавних пор еще и Java.
На скриншоте язык написания конфигураций 1С, как писали выше платформа базируется на C++ технологиях, английский синтаксис в данном примере появился из за того, что язык написания конфигураций поддерживает помимо русского ещё много вариаций (в т.ч. английский) поэтому можно написать даже в рамках одной функции строку на эстонском, название функции на румынском и т.д. (хотя смысла в этом абсолютно нет)
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2022.9.30.30592
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
«1С:Предприятие» перешло на российскую Java
Как стало известно CNews, фирма «1С» выбрала отечественную платформу Liberica JDK компании Bellsoft в качестве стандартного средства запуска компонентов программ системы «1С:Предприятие», написанных на языке программирования Java. Кроме того, Bellsoft будет оказывать техническую поддержку фирме «1С».
Среду исполнения Java, входящую в состав пакета Liberica JDK, планируется включать в комплекты поставок ПО «1С», в составе которого есть Java-компоненты. В частности, инструмент разработчика 1C:Enterprise Development Tools (EDT) для своей работы нуждается в среде исполнения Java, пояснили CNews в Bellsoft.
1C:EDT – это кроссплатформенная расширяемая среда разработки прикладных решений для платформы «1С:Предприятие». Она создана на основе популярной интегрированной среды разработки Eclipse с открытым исходным кодом на Java. 1C:EDT включает инструменты автоматизации разработки, а также позволяет расширять функциональность инструментов разработки с помощью дополнений (плагинов).
Представитель «1С» в разговоре с CNews подтвердила факт перехода на Liberica JDK, однако воздержалась от рассказа о подробностях.
Почему не Oracle JDK
Говоря о возможных причинах выбора фирмы «1С» в пользу Liberica JDK при наличии альтернатив в виде Oracle JDK и OpenJDK, генеральный директор компании Bellsoft Александр Белокрылов отметил, что «благодаря сотрудничеству с Bellsoft «1С» получает возможность предоставлять миллионам своих пользователям безопасную и надежную среду исполнения Java, а также – возможность оперативно исправлять обнаруженные дефекты прямо в проекте OpenJDK». По его мнению, экспертиза и опыт инженеров Bellsoft позволяют поддерживать в новых версиях Liberica JDK компоненты, которые были исключены из поддержки Oracle JDK, например, JavaFX.
«Подобные преимущества, как показал опыт, являются существенными для ряда клиентов Bellsoft. Также важным аспектом было изменение лицензионной политики и отсутствие возможности использовать Oracle JDK без коммерческой подписки на поддержку», – пояснил Белокрылов.
Напомним, что в апреле 2019 г. корпорация Oracle изменила условия использования Oracle JDK. По условиям новой лицензии, бесплатно применять Oracle JDK/JRE в коммерческих целях стало запрещено. До этого момента фирма «1С» рекомендовала именно эту сборку для запуска среды разработки 1C:Enterprise Development Tools.
В примечании к релизу EDT версии 1.11.0, который состоялся летом 2019 г., предлагалось при отсутствии соответствующей подписки вместо Oracle JDK использовать один из дистрибутивов на базе OpenJDK, среди которых фигурировал и Liberica JDK.
Что такое Liberica JDK
Liberica JDK – это среда разработки и запуска Java-приложений. Продукт создан российской компанией Bellsoft на основе проекта с открытым исходным кодом OpenJDK. Liberica JDK позиционируется разработчиком в качестве полноценной замены Oracle JDK. Liberica JDK включена в реестр российского ПО, допущена ФСБ для использования с сертифицированными криптографическими средствами и протестирована на совместимость с рядом отечественных операционных систем.
Liberica JDK поддерживает широкий выбор платформ включая как современные 64-битные Linux x86, ARM, так и устаревшие (legacy) 32-битные, Solaris SPARC, x86, PowerPC. Система также гарантировано работает на российских ОС: Astra Linux, «Альт», «Ред ОС», «Роса». Таким образом, Liberica JDK подходит для работы в гетерогенном окружении.
Первоначальный разработчик Java – компания Sun Microsystems, в 2009 г. поглощенная Oracle, в 2007 г. открыла исходный код Java под свободной лицензией GNU GPL v2 и создала проект OpenJDK, позволив другим компаниям участвовать в развитии платформы.
Начиная с версии 11, которая вышла в сентябре 2018 г., платформа Oracle JDK является платной. Последнее публичное обновление Java 11 вышло в феврале 2019 г. В данный момент и до декабря 2026 г. доступ к патчам безопасности и критическим исправлениям для Java 11 возможен только для коммерческих клиентов Oracle. Java 8 – еще одна актуальная версия платформы, вышла в марте 2014 г., а публичные обновления ее пользователи перестали получать в январе 2019 г. Bellsoft предлагает коммерческую поддержку версий Java 8 и 11 на собственной платформе Liberica JDK до 2031 и 2027 г. соответственно.
Liberica JDK, по заявлению представителей Bellsoft, включает все исправления критических уязвимостей, дефектов и оптимизации производительности. Bellsoft, наряду с Red Hat, SAP, Google и IBM, входит в пятерку компаний, вносящих наибольший вклад в разработку OpenJDK (по числу отправленных исправлений). Это дает возможность заказчикам российской компании получать исправления безопасности синхронно с Oracle Java.
Проект в НСПК
В конце сентября 2020 г. CNews сообщил о том, что оператор платежной системы «Мир», «Национальная система платежных карт» (НСПК), перешла на Liberica JDK. До перехода на отечественный дистрибутив Java в организации использовалась оригинальная платформа Oracle JDK.
Разработка компании Bellsoft применяется НСПК в качестве платформы для систем процессинга, клиринга и программы лояльности. Также, по условиям соглашения, Bellsoft оказывает оператору техническую поддержку.
На каком языке написана платформа 1С
Если вы уже начали изучать 1С, то я за вас рад. Это правильный выбор и правильное вложение сил и средств в ваше безбедное будущее.
Если так и не решились, то я вас тоже пойму. И не буду больше донимать вас советами начать изучение 1С. Поэтому сегодня речь не об этом.
Как вы понимаете, сама программа 1С написана тоже на каком-то языке. Как вы думаете, на каком?
Я не говорю о конфигурациях 1С. Понятно, что они написаны на языке 1С. А вот на каком языке написана платформа 1С? Не догадались?
На каком-то из сайтов я видел опрос посетителей, которым был задан именно этот вопрос. И каково же было моё удивление, когда я увидел, что 66% опрошенных считают, что 1С написана на языке АЛГОЛ 68.
О боже! Как такое в голову могло прийти стольким людям? Ведь это давно уже мёртвый язык!
На самом деле, 1С написана на языке С++ в среде разработки MS Visual C++.
И если вы ещё не знакомы с этим языком и не читали мою книгу “Основы С++”, то самое время это сделать:
И кто знает, может быть лет через 10 (а может и раньше) вы явите миру какую-нибудь свою программу, которая затмит своей популярностью 1С.
Слишком хорошо, чтобы быть правдой? Это зависит только от того, насколько сильно вы хотите сказку сделать былью.
Платформа «1С: Предприятие» — что под капотом?
Привет, Хабр!
В этой статье мы начнем рассказ о том, как устроена внутри платформа «1С:Предприятие 8» и какие технологии используются при ее разработке.
- кластер серверов
- «тонкий» клиент, способный подключаться к серверу по http и собственному бинарному протоколу
- клиент для работы в двухзвенной архитектуре с БД, размещенной на жестком диске или сетевой папке
- веб-клиент
- средства администрирования сервера приложений
- среда разработки (известная как Конфигуратор)
- среда исполнения для iOS, Android и Windows Phone (мобильная платформа 1С)
Нативные приложения
- STL (в частности, строки, контейнеры и алгоритмы)
- множественное наследование, в т.ч. множественное наследование реализации
- шаблоны
- исключения
- умные указатели (собственная реализация)
Компоненты
- Разделение способствует лучшему проектированию, в частности лучшей изоляции кода
- Из набора компонентов можно гибко собирать разные варианты поставки:
- Например, инсталляция тонкого клиента будет содержать wbase, но не будет backend
- а на сервере wbase, наоборот, не будет
- оба варианта будут, конечно, содержать nuke и bsl
- Предоставляет фабричные методы, позволяющие создать класс из другой компоненты зная только его название (без раскрытия реализации)
- Предоставляет инфраструктуру умных указателей с подсчетом ссылок. За временем жизни SCOM-класса не нужно следить вручную
- Позволяет узнать реализует ли объект конкретный интерфейс и автоматически привести указатель на объект к указателю на интерфейс
- Создать объект-сервис, всегда доступный через метод get_service и т.д.
Этот макрос опишет специальный статический класс-регистратор, конструктор которого будет вызван при загрузке компоненты в память.
После это можно создать его экземпляр в другой компоненте:Для поддержки сервисов SCOM предлагает дополнительную, достаточно сложную инфраструктуру. Центральным в ней является понятие SCOM-процесса, который служит контейнером для запущенных сервисов (т.е. выполняет роль Service Locator), а также содержит привязку к локализуемым ресурсами. SCOM процесс привязывается к потоку ОС. Благодаря этому внутри приложения можно вот так получать сервисы:
Более, того переключая логические (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С:Предприятие».
Интерфейс 1С на ОС Linux
Интерфейс 1С на мобильном устройстве
Интерфейс 1С на ОС Windows
Интерфейс 1С — веб-клиентOpen source
- для работы с HTTP и FTP. для работы с криптографией и установки TLS соединений для разбора XML для работы с почтовыми протоколами (POP3, SMTP, IMAP) для разбора сообщений электронной почты для хранения журналов работы пользователей для интернационализации
Заключение
В статье мы коснулись нескольких основных аспектов разработки платформы «1С: Предприятие». В ограниченном объеме статьи мы затронули лишь некоторые интересные, на наш взгляд, аспекты.
Общее описание различных механизмов платформы можно посмотреть тут.
Какие темы были бы интересны Вам в следующих статьях?Как реализована мобильная платформа 1С?
Описание внутреннего устройства веб-клиента?
Или, может быть, Вам интересен процесс выбора фич для новых релизов, разработки и тестирования?