Skip to content

[NEW] Ссылка на план счетов у регистра бухгалтерии и на план видов расчёта у регистра расчёта #670

Description

@sfaqer

@

Чего не хватает

У AccountingRegister нет ссылки на план счетов, а у CalculationRegister — на план видов расчёта. В designer-формате они лежат в самом регистре:

<AccountingRegister>
  <Properties>
    <ChartOfAccounts>ChartOfAccounts.Хозрасчетный</ChartOfAccounts>
<CalculationRegister>
  <Properties>
    <ChartOfCalculationTypes>ChartOfCalculationTypes.ОсновныеНачисления</ChartOfCalculationTypes>

Проверено

javap по mdclasses 0.20.0: у com.github._1c_syntax.bsl.mdo.AccountingRegister и CalculationRegister из MdoReference-аксессоров есть только getMdoReference(), getDefaultListForm(), getAuxiliaryListForm(). В общем интерфейсе Register — только getAttributes(), getResources(), getDimensions(). Ни getChartOfAccounts(), ни аналога для плана видов расчёта нет.

Зачем

Платформа объявляет соответствующие члены записи регистра через generic-плейсхолдер, который именем самого регистра не подставляется, — конкретный тип известен только из этой ссылки:

Тип Член Объявленный тип
РегистрБухгалтерииЗапись.<Имя регистра бухгалтерии> Счет, СчетДт, СчетКт ПланСчетовСсылка.<Имя плана счетов>
РегистрРасчетаЗапись.<Имя регистра расчета> ВидРасчета ПланВидовРасчетаСсылка.<Имя плана видов расчета>

Без этой ссылки Движение.Счет и Движение.ВидРасчета остаются необработанным плейсхолдером: не разыменовываются, не дают автодополнения и не участвуют в выводе типов. Тот же плейсхолдер стоит и в списках предопределённых, и в РегистрБухгалтерииСубконто.

Аналогично Регистратор типизируется по Document.getRegisterRecords() — там ссылка со стороны документа есть, и этого достаточно; здесь же обратной связи нет ни с одной стороны.

Найдено при работе над системой типов bsl-language-server.
@

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions