LINUX.ORG.RU

lsFusion 6.0 — открытая и бесплатная платформа для разработки бизнес-приложений

 ,


3

1

Вышла новая версия lsFusion 6.0 — открытой и бесплатной платформы для разработки бизнес-приложений. В ней сделан упор на Web UX и расширение возможностей для создания современных веб-приложений.

  • Интеграция с Bootstrap

    Возможность применять bootstrap-классы ко всем элементам интерфейса через атрибут class, предустановленные светлая/тёмная темы и набор дополнительных bootstrap-тем «из коробки».

  • Поддержка иконок

    Подключены Bootstrap Icons и FontAwesome, есть автоматический подбор иконок по ключевым словам, возможность вставлять их в строки через $M{…}.

  • Новые компоненты выбора свойств

    Поддержка списков, чекбоксов (в том числе групп) и радиокнопок.

  • Явное задание тегов и типов <input>

    Полная поддержка HTML-атрибутов tag='input' и inputType (date, datetime-local, time, month, color, range и др.), включая нестандартный year через подключаемый yearpicker.

  • Расширенные атрибуты свойств

    placeholder, pattern/regexp и сообщения об ошибке, tooltip, wrap/wrapWordBreak/collapse, гибкая настройка расположения и выравнивания заголовков и комментариев, произвольные CSS-классы и атрибуты.

  • Popup-контейнеры

    Контейнеры с popup=TRUE, загружающие содержимое по нажатию кнопки, плюс предопределённый блок POPUP в дизайне форм (иконка «гамбургер»).

  • Неактивные свойства и действия

    DISABLE/DISABLEIF для статической и динамической блокировки элементов с нативным использованием Bootstrap-классов.

  • Интерактивные действия через интеграционное API

    Эндпоинты exec/eval могут открывать формы и выполнять действия в уже загруженных вкладках или PWA-клиенте.

  • Браузерные API: Share, Notification, Push

    • Share API: автоматическое добавление «поделиться формой», генерация ссылок через EXTERNAL LSF/HTTP и вызов стандартного диалога шаринга.
    • Notification API: показ контекстных уведомлений с картинкой, кнопками и callback-действиями.
    • Push API: серверные push-уведомления, инициирующие действия или выводящие уведомления даже при неактивном клиенте.
  • Поддержка PWA

    Установка в систему, push-уведомления вне браузера, доступ к аппаратному API устройства.

  • Уровни сообщений (MESSAGE)

    Шесть уровней — LOG, INFO, WARN, DEFAULT, SUCCESS, ERROR — с записью в лог, выводом нотификаций и/или диалоговых окон в зависимости от уровня.

  • Улучшенный навигатор и компактный UI

    • Выплывающая верхняя панель навигатора (вертикальная или горизонтальная)
    • Tiny и Mini CSS-стили для максимально компактного отображения
    • Направленные («arrow») кнопки для визуализации процессов
  • WebSocket-модуль

    Создание/удаление сокетов, обработка событий открытия/закрытия, приёма текстовых и бинарных сообщений, форма для управления соединениями.

  • Расширения языка платформы

    • Табличные значения в FORMULA (unnest, JSON-функции, подключение внешних таблиц)
    • Оператор VALUE для доступа к текущему значению объекта формы вне формы
    • Новые события на форме: CHANGE BEFORE/CHANGE AFTER, ON COLLAPSE/ON EXPAND
    • Явное задание имён таблиц, индексов и материализованных свойств в БД
    • Динамическое определение причины события через eventSource()
    • Кастомные агрегации в GROUP/PARTITION (mode, percentile_cont, lag, rank и др.)
    • Действия в блоке LIST оператора INPUT (список может заполняться результатами действий)
    • Управление порядками и фильтрами (чтение/запись текущих ORDER/FILTERGROUP/FILTER)
    • Raw-литералы (префикс r/R) для путей, регулярных выражений и других «сырых» строк
    • Опции TOP/OFFSET во многих операторах (GROUP, PARTITION, FOR, EXPORT, JSON, PRINT)

>>> Подробности



Проверено: hobbit ()
Последнее исправление: ilinsky (всего исправлений: 4)
Ответ на: комментарий от Gonzo

Где ты видел в релизах опенсорса ерунду вроде «Мы фаерфокс, мы лучше энтырнет эксплорера, одинодин!!». Возьми любой адекватный проект.

Ну просто чаще всего опенсорс это просто повторение коммерческого продукта, но открыто / бесплатно. И логично что другое позиционирование.

Тут как бы одновременно и революционно-другой подход, которого до не было (как скажем SQL в свое время), и сразу же опен-сорс (на рынке сплошного corporate ERP-платформ)

И да, почему только АвтоВаз? Если топить, до конца уже: КамАЗ, Автотор, Ульяновский, Арзамасский, Нефтекамский, Москвич.

Ну потому что АвтоВаз самый массовый автомобиль. Как бы каждый пятый ездит или типа того.

NitroJunkie
() автор топика
Последнее исправление: NitroJunkie (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

К слову открывать боковую панельку по тыку на верхнее меню, вместо перехода в как бы раздел по верхнему меню, хорошее решение, прям удобно

Там много режимов на самом деле: https://habr.com/ru/companies/lsfusion/articles/903532/#toolbar

Но общая мысль оставлять больше рабочего пространства для текущей открытой формы (собственно многие веб-приложений вообще одностраничные без навигатора, в том числе по этой причине).

NitroJunkie
() автор топика

неплохо, годно, актуально..

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

MKuznetsov ★★★★★
()

Не увидел в демке, как сделать печать или экспорт в «ворд»/«эксель» какого-нибудь отчётика.

static_lab ★★★★★
()
Ответ на: комментарий от AleksK

Да там классов как бы вообще нет.

Есть. Чем по твоему отличаются модуль менеджера и модуль объекта?

Пример описания класса на 1С в студию!

но УПП уже давно не существует, её поддержка закончилась

Это не важно. говоря про УПП я имею в виду её гигантский объём.

1С тогда и 1С сейчас это две разные 1С, две очень разные 1С

И что там принципиально поменялось?

Почитай что такое 1С БСП а лучше видосик посмотри от айронскил например

Библиотека стандартных подсистем? Да, была такая. И смысл про неё смотреть?

ты узнаешь о процессе разработки очень много нового.

О процессе разработки на 1С? Спасибо не надо.

Rodegast ★★★★★
()
Ответ на: комментарий от AleksK

Эта отвратительная практика. Никогда так не делай в современных конфигурациях. Обновляться ты как собираешься потом?

Да отвратительная, но половина конфигураций именно так и допиливается.

Rodegast ★★★★★
()
Ответ на: комментарий от NitroJunkie

Вот. Это просто на порядок удобнее. Сразу коммит / push и jenkins деплоит в следующем цикле.

Там редактора форм нету?

Rodegast ★★★★★
()
Ответ на: комментарий от AleksK

Никогда так не делай в современных конфигурациях. Обновляться ты как собираешься потом?

Сравнить/объединить с приоритетом основной конфигурации. Почти всегда хватает. Через код, конечно, чище, но через редактирование формы нагляднее. И сейчас можно сделать расширение и редактировать форму в расширении. Тогда применение изменённых полей к новой версии вообще автоматически.

monk ★★★★★
()
Ответ на: комментарий от Rodegast

Пример описания класса на 1С в студию!

Можно классами считать документы/справочники/обработки. Да, только один родитель и нельзя от одного документа унаследовать другой.

Обработки, кстати, реально ООП заменяют. Описываем интерфейс, в модуле объекта делаем по нему экспортные методы. Если надо наследоваться, то создаём поле с обработкой-родителем и вызываем её методы в своих экспортных методах.

Библиотека стандартных подсистем? Да, была такая. И смысл про неё смотреть?

На её основе делают свои конфигурации с нуля. И как раз обычно на EDT.

monk ★★★★★
()
Ответ на: комментарий от monk

А он там нужен? Там достаточно лаконичный язык описания.

Описания чего? Форм? Формы конечно можно в ручную набирать, но это не очень серьёзно.

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Формы конечно можно в ручную набирать, но это не очень серьёзно.

Почему? В линуксе же принято параметры команд набирать в строке, а не выбирать в окне с 100500 полей и галочек. Здесь так же.

И если описание формы является строкой, то доработку как раз легко можно делать строкой, видеть изменения в git и всё такое. А не любоваться как в 1С «Изменён реквизит НаборКонстант». А как изменён, сам догадайся. Там, конечно, есть выгрузка в XML, но порядок полей не фиксирован, поэтому сравнивать всё равно не удобно.

monk ★★★★★
()
Ответ на: комментарий от Rodegast

А как вы себе его представляете в относительном позиционировании? Особенно с wrap’ами, flex’ами и другими фишками адаптивного дизайна (под разные разрешения, от десктопных до мобильных)

Но вообще есть, просто в виде «живого» предпросмотра.

https://habr.com/ru/companies/lsfusion/articles/862418/#live_preview

То есть вы декларативно создаете контейнеры и сразу видите какая форма получается.

NitroJunkie
() автор топика
Ответ на: комментарий от Rodegast

Почему?

Чем создание документа ПриходныйОрдер отличается от

class ДокументСсылка.ПриходныйОрдер : ДокументСсылка
{
...
}

class ДокументОбъект.ПриходныйОрдер : ДокументОбъект
{
...
}

class ДокументМенеджер.ПриходныйОрдер : ДокументМенеджер
{
...
}

?

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от NitroJunkie

То есть вы декларативно создаете контейнеры и сразу видите какая форма получается.

Думаю, аналог Glade тоже можно сварганить, если кому-то очень надо.

monk ★★★★★
()
Ответ на: комментарий от monk

Я так понимаю речь идет о том, что классы без наследования (а значит полиморфизма) имеют мало смысла. Это по сути struct’ы с инкапсуляцией тогда, но основной смысл ООП все же в наследовании и полиморфизме, а не инкапсуляции (которая по сути синтаксический сахар для первого параметра this, но при этом иногда сильно мешающий модульности). Скажем в lsFusion есть классы, наследование, полиморфизм (в том числе множественный) а инкапсуляции нет.

ЕМНИП в 1С даже function overloading’а (еще одна из фишек которых относят к классам) нет - то есть объявление процедуры с одним именем и разными типами параметров (но тут не уверен, может добавили в последнее время).

NitroJunkie
() автор топика
Последнее исправление: NitroJunkie (всего исправлений: 1)
Ответ на: комментарий от monk

Почему? В линуксе же принято параметры команд набирать в строке

Команды передают в строке, а формы делают к примеру в QT Designer-е. Это сильно разные вещи.

если описание формы является строкой, то доработку как раз легко можно делать строкой

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

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Команды передают в строке, а формы делают к примеру в QT Designer-е. Это сильно разные вещи.

Абсолютное позиционирование в условиях требований адаптивного дизайна мне кажется лет уже 15 как умерло. А как дизайнеры помогают в адаптивном дизайне - загадка.

NitroJunkie
() автор топика
Ответ на: комментарий от NitroJunkie

А как вы себе его представляете в относительном позиционировании?

В 1с для этого сделали адаптивные формы :)

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

В 1с для этого сделали адаптивные формы :)

Я в курсе, и там поэтому не WYSIWYG редактор, а по сути визуальное написание кода, когда ты просто мышкой текст пишешь. И толку с такого редактора?

NitroJunkie
() автор топика
Последнее исправление: NitroJunkie (всего исправлений: 1)
Ответ на: комментарий от monk

Чем создание документа ПриходныйОрдер отличается от

Тем что ООП должно поддерживать наследование, инкапсуляцию и как там его ... полиморфизм.

Rodegast ★★★★★
()
Ответ на: комментарий от NitroJunkie

а по сути визуальное написание кода, когда ты просто мышкой текст по сути пишешь.

Да, это везде так. Даже в QT Designer-е тоже самое.

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Ну вообще я уже писал раньше, что пока AI в этом плане выглядит перспективнее, чем «написание мышкой» текста, и даже написание самого текста.

Тем более что AI можно будет говорить дизайн целиком делать, а не самому контейнеры придумывать.

NitroJunkie
() автор топика
Ответ на: комментарий от NitroJunkie

Тем более что AI можно будет говорить дизайн целиком делать, а не самому контейнеры придумывать.

Ok. Намутит AI тебе интерфейс, а поддерживать ты его как будешь?

Rodegast ★★★★★
()
Ответ на: комментарий от Rodegast

Ну точно также. Модели и изменять код вполне умеют (хотя тут могут именно добавлять изменение / расширение). Более того это можно даже пользователю дать делать (то есть под себя настройку форм).

При этом все будет as a code и отлично поддерживаться системой контроля версий, если это принципиально.

NitroJunkie
() автор топика
Последнее исправление: NitroJunkie (всего исправлений: 1)
Ответ на: комментарий от Rodegast

Пример описания класса на 1С в студию!

Любой объект метаданных это класс. Который наследуется от корня соответствующей ветки (справочники, документы, перечисления и т.д.). Для того чтобы работать ты должен или создать объект этого класса или получить уже существующий сохраненный в базе.

Это не важно. говоря про УПП я имею в виду её гигантский объём.

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

И что там принципиально поменялось?

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

Библиотека стандартных подсистем? Да, была такая. И смысл про неё смотреть?

Была? Это основа ВСЕХ современных конфигураций от 1С. Руководство по БСП по сути является руководством по разработке для большинства конфигураций. Ты утверждал что в 1С элементарно найдешь в любом документе если что-то надо поправить. Где сейчас можно найти список печатных форм документа, который выводится в меню печать?

О процессе разработки на 1С? Спасибо не надо.

Так с этого и надо было начинать.

AleksK ★★★
()
Ответ на: комментарий от Rodegast

Да отвратительная, но половина конфигураций именно так и допиливается.

Только когда человек нихрена не понимает в 1С.

AleksK ★★★
()
Ответ на: комментарий от monk

Сравнить/объединить с приоритетом основной конфигурации. Почти всегда хватает.

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

AleksK ★★★
()
Ответ на: комментарий от AleksK

Любой объект метаданных это класс.

С чего ты это взял? В 1С никакого ООП нет.

Изменилась платформа ... стандарта разработки.

Платформа 8.3 вышла в 2013 году и остаётся до сих пор. Да, появился EDT, для какого нибудь РАРУС-а может он и актуален, но для простых сметных нет.

Rodegast ★★★★★
()

посмотрел, очень сложно, нужны спецы чтоб это все заработало

bernd ★★★★★
()

Подключены Bootstrap Icons и FontAwesome, есть автоматический подбор иконок по ключевым словам, возможность вставлять их в строки через $M{…}.

Самое важное в бухгалтерском софте…

Это пародия на альтернативу 1С.

Obezyan
()
Ответ на: комментарий от NitroJunkie

Я так понимаю речь идет о том, что классы без наследования (а значит полиморфизма) имеют мало смысла.

Я же в примере указал какой создаваемый класс от какого наследуется. Можно делать реквизит с типом ДокументСсылка и работать с любыми документами в этом реквизите.

Интерфейс определяется соглашением. Например, любой объект, который можно печатать, в своём модуле менеджера экспортирует процедуру Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода).

Если надо наследование реализации в стиле ООП от своих классов, то в 1С делается это делается от обработок. В смысле, обработку-родителя записываем в переменную и в своих методах вызываем сначала её методы. Или, если у родителя нет полей, то «родителем» является общий модуль (так чаще делают).

ЕМНИП в 1С даже function overloading’а (еще одна из фишек которых относят к классам) нет - то есть объявление процедуры с одним именем и разными типами параметров (но тут не уверен, может добавили в последнее время).

Там всегда было типа

Процедура Заполнить(ПараметрЗаполнения, ДополнительныеДанные = Неопределено)

  Если ТипЗнч(ПараметрЗаполнения) = Тип("Структура") Тогда
     ...
  ИначеЕсли(ПараметрЗаполнения) = Тип("ДокументСсылка.ПриходныйОрдер") Тогда
     ...
  ...
  КонецЕсли
КонецПроцедуры

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

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от AleksK

Если твое «почти всегда» ограничивается самыми элементарными изменениями.

Не хватает только в случае, когда в новой версии изменили существующее поле в этой же форме и это изменение нужно.

По сути сейчас вообще не стоит трогать основную конфигурацию. Если ты не пишешь свою собственную конечно, во всех остальных случаях только расширения.

Реквизиты объектов в расширениях не очень хорошо работают. И изменить тип реквизита вообще нельзя. А часто надо.

monk ★★★★★
()
Ответ на: комментарий от Rodegast

Команды передают в строке, а формы делают к примеру в QT Designer-е. Это сильно разные вещи.

Почти во всех программах на Qt форму описывают программно. Примерно так: https://github.com/pgeorgiev98/qTorrent/blob/master/app/ui/mainwindow.cpp

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

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

monk ★★★★★
()
Ответ на: комментарий от monk

Вот как раз сложный интерфейс даже в 1С делают полностью программно через Элементы.Добавить.

И в остальном мире либо давно ушли от дизайнера форм к декларативной разметке, либо переходят.

Microsoft: WPF (2006), MAUI

Qt: QML

GTK: Glade мертв, вместо него разметка BluePrint

Web: Я вообще не помню дизайнера форм, но последние несколько лет активно используется декларативная разметка React, Vue, Angular.

MOPKOBKA ★★★★★
()
Ответ на: комментарий от Rodegast

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

monk ★★★★★
()
Ответ на: комментарий от monk

ДокументОбъект.ПриходныйОрдер наследуется от ДокументОбъект.

Может всё-таки Документы.ПриходныйОрдер. Создать()

AleksK ★★★
()
Последнее исправление: AleksK (всего исправлений: 1)

Кстати, в lsFusion вообще субконто сделать можно?

То есть свойство, которое может иметь разный тип (в идеале ограничивать тип по значению свойства счёт).

monk ★★★★★
()
Ответ на: комментарий от AleksK

Например?

Типовое пожелание «сделайте, чтобы в наименование не 50 символов, а 100 влазило».

Чуть менее типовой «сделайте, чтобы в поле номенклатура можно было просто строку вводить без создания элемента справочника».

Или «сделайте справочник Магазины и чтобы в поле Склад можно было выбрать или склад или магазин».

monk ★★★★★
()
Ответ на: комментарий от AleksK

Может всё-таки Документы.ПриходныйОрдер. Создать()

Создать — это создание объекта. Класс Документы.ПриходныйОрдер. Наследуется класс, а не объект.

monk ★★★★★
()
Ответ на: комментарий от monk

Типовое пожелание «сделайте, чтобы в наименование не 50 символов, а 100 влазило».

Вообще нет проблем. Делаешь наименование справочника модифицируемым в расширении и ставишь его длину сколько тебе надо.

https://ibb.co/FQ68zrs

Чуть менее типовой «сделайте, чтобы в поле номенклатура можно было просто строку вводить без создания элемента справочника».

Даже не буду спрашивать зачем оно надо. Но сделать тип реквизита составным через расширение тоже проблем не составит.

https://ibb.co/fVY3009K

Или «сделайте справочник Магазины и чтобы в поле Склад можно было выбрать или склад или магазин».

Для этого в УНФ сделали склады и магазины одним справочником.

AleksK ★★★
()
Ответ на: комментарий от monk

Создать — это создание объекта. Класс Документы.ПриходныйОрдер. Наследуется класс, а не объект.

Вот твоя строка

ДокументОбъект.ПриходныйОрдер

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

AleksK ★★★
()
Ответ на: комментарий от AleksK

Для этого в УНФ сделали склады и магазины одним справочником.

Бывает надо, чтобы у нового справочника была своя форма списка и выбора. Или свои права доступа.

Вообще нет проблем. Делаешь наименование справочника модифицируемым в расширении и ставишь его длину сколько тебе надо.

Благодарю. Вроде раньше было нельзя.

А удалять подсистемы из объекта, чтобы объект скрыть из интерфейса теперь тоже в расширении можно?

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от AleksK

ДокументОбъект.ПриходныйОрдер - это тип. То есть класс.

ТипЗнч(Документы.ПриходныйОрдер.Создать()) = Тип("ДокументОбъект.ПриходныйОрдер")

Также классами являются ДокументСсылка.ПриходныйОрдер и ДокументМенеджер.ПриходныйОрдер.

monk ★★★★★
()
Ответ на: комментарий от Rodegast

С чего ты это взял? В 1С никакого ООП нет.

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

https://курсы-по-1с.рф/articles/%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0-%D0%B8-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0/

Платформа 8.3 вышла в 2013 году и остаётся до сих пор. Да, появился EDT, для какого нибудь РАРУС-а может он и актуален, но для простых сметных нет.

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

Версия 8.3.1 (осень 2012):

  • Появились новые конструкции для обработки исключений (Исключение, Попробовать). Это позволило сделать обработку ошибок более структурированной и удобной.
  • Увеличилось количество типов значений, появились дополнительные методы для работы с ними.

Версия 8.3.3 (весна 2013):

  • Начали активно развиваться механизмы многопоточности и асинхронного исполнения операций («фоновые задания», «асинхронные запросы»).
  • Были введены новые типы объектов для реализации межсерверного взаимодействия и передачи данных по сетям.

Версия 8.3.5 (лето 2014):

  • Интеграция языка с новыми технологиями хранения данных (PostgreSQL, MySQL), появилась поддержка внешнего подключения к другим источникам данных (ODBC).
  • Новая версия формата сериализованных данных и документов, облегчающая обмен информацией между системами.

Версия 8.3.8 (осень 2015):

  • Изменения в синтаксисе функций для работы с массивами и коллекциями данных, добавлены новые операторы для фильтрации и сортировки.
  • Дополнительные команды для описания бизнес-процессов и управление выполнением сценариев.

Версия 8.3.10 (осень 2016):

  • Масштабирование обработчиков событий, усовершенствования триггеров и механизмов синхронизации данных.
  • Новый оператор Параметры позволяет создавать динамические параметры для форматов отчетов и алгоритмов обработки данных.

Версия 8.3.12 (осень 2017):

  • Обновленный синтаксис операторов цикла и условий, введена поддержка множества путей исполнения в рамках одного условия.
  • Работа с временными таблицами стала проще благодаря новым конструкциям типа временных выборок и виртуальных полей.

Версия 8.3.14 (осень 2018):

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

Версия 8.3.16 (осень 2019):

  • Введение мощных инструментов рефлексии (метаданных), позволяющих получать информацию о структуре программы прямо внутри самой программы.
  • Созданы новые типы классов и интерфейсов для облегчения работы с системой шаблонов и расширениями модулей.

Версия 8.3.18 (осень 2020):

  • Стало возможным применять современные техники проектирования (паттерны проектирования), такие как Dependency Injection (DI) и внедрение зависимостей.
  • Был значительно переработан API и система управления правами доступа, введен новый уровень защиты данных и доступов к объектам метаданных.

Последние версии (после осени 2020):

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

А если почитать изменения в самой платформе. То там её уже не один раз по новой переписали за время существования.

AleksK ★★★
()
Ответ на: комментарий от AleksK

Вот для примера, что выдал GigaChat:

Галлюцинации…

По существу, конечно, появилось много. От фоновых заданий до расширений. Вот, например, для 8.3.18.

monk ★★★★★
()
Ответ на: комментарий от monk

А удалять подсистемы из объекта, чтобы объект скрыть из интерфейса теперь тоже в расширении можно?

Удалять было бы полнейшей глупостью. А редактировать командный интерфейс можно.

AleksK ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.