Skip to content

open-sdbl 0.5.5

Choose a tag to compare

@dobpilot dobpilot released this 18 Sep 20:46
· 38 commits to main since this release

Релиз после 0.4.0: регистры бухгалтерии, широкие корпуса двух типовых конфигураций и чтение прав доступа прямо из базы. Каждое изменение поведения — со своей спецификацией OpenSpec.

Регистры бухгалтерии

Виртуальные таблицы РегистрБухгалтерии: Остатки, Обороты, ОстаткиИОбороты, ДвиженияССубконто, ОборотыДтКт. Субконто как аргумент и как поля Субконто1…/СубконтоДт/СубконтоКт, корреспонденция (КорСчет, <Измерение>Кор, КорСубконто), развёрнутые остатки (РазвернутыйОстатокДт/Кт, начальные и конечные), периодичности Регистратор и Запись, Порядок/Первые у движений с субконто, метки составных членов Имя_TYPE. Разыменование через многотипную ссылку в выражениях (Регистратор.Организация = &Орг).

Язык запросов

  • ИЗ &Таблица — таблицы-параметры с типизированными колонками, встроенные как CTE SELECT 1, … UNION ALL …; в консоли литерал ТАБЛИЦА(Код КАК СТРОКА, …)((…), …).
  • Безымянное разыменование получает платформенное имя слитно: Д.Организация.Наименование → ОрганизацияНаименование; ключевое слово после КАК — псевдоним (КАК Конец).
  • Псевдоним.* среди других полей и в соединениях; РАЗЛИЧНЫЕ с сортировкой по спроецированной ссылке; вложенное объединение с ПЕРВЫЕ в каждой ветке; ССЫЛКА над ВЫРАЗИТЬ; разнотипный ВЫБОР в сравнении; псевдоним подзапроса затеняет внешний; МАКСИМУМ(Регистратор) остаётся runtime-typed; член объединения узнаётся по запрошенному имени и при обрезке метки до лимита PostgreSQL.
  • АВТОУПОРЯДОЧИВАНИЕ, АВТОНОМЕРЗАПИСИ(), соединения без якорного равенства, ПОЛНОЕ с прежним правилом.

Корпуса

Бухгалтерия предприятия 3.0 — 613 из 622, УНФ — 674 из 688 запросов модулей и схем компоновки, включая широкую выборку по 200 запросов без регистров на каждую базу. Инструменты корпуса привязывают даты и таблицы-заготовки, а виды колонок заготовок берут из метаданных фикстуры (bind_tables.py --kinds, выгрузка dump_field_kinds).

Права доступа (новая capability access-rights)

  • Роли и права читаются из записей Config (<guid> и <guid>.0): права на объекты и их члены, ограничения на уровне записей с полями, шаблоны, флаги. Right называет стандартные права; таблица гвидов выведена из самой базы и подтверждена ролями-одиночками БСП на 8.3.27. Незаписанное право следует умолчанию setForNewObjects.
  • Пользователи ИБ — v8users, колонка Data (XOR + скобочная запись) даёт имя, полное имя и роли; хеши паролей не отдаются.
  • Разворачивание ограничений (open_sdbl::access): шаблоны БСП с #Параметр(N), #Если/#ИначеЕсли/#Иначе/#КонецЕсли по параметрам сеанса, СтрСодержит, Значение(…ПустаяСсылка); результат — полная форма платформы ТекущаяТаблица [КАК Т] ГДЕ …, которую принимает компилятор, в том числе ТекущаяТаблица.Поле во вложенных запросах условия. read_access объединяет роли пользователя.

CLI

\users, \user, \roles, \role, \rls, \as: пользователи, роли, права и ограничения, а ВЫБРАТЬ РАЗРЕШЕННЫЕ от имени пользователя получает ограничения его ролей на «Чтение». Проверено на демо-базе УНФ вплоть до исполнения запроса через ветвь ключей доступа шаблона ДляОбъекта. Нечитаемые ресурсы Config (двоичные .7) пропускаются с предупреждением, а не срывают чтение метаданных.