@
Чего не хватает
Часть основных форм задаётся не у объекта метаданных, а у корня конфигурации. В designer-формате это отдельные свойства Configuration.xml:
<Configuration>
<Properties>
<DefaultConstantsForm>CommonForm.Константы</DefaultConstantsForm>
<DefaultReportForm/>
<DefaultReportVariantForm/>
<DefaultReportSettingsForm/>
<DefaultDynamicListSettingsForm/>
<DefaultSearchForm/>
<DefaultDataHistoryChangeHistoryForm/>
<DefaultDataHistoryVersionDataForm/>
<DefaultDataHistoryVersionDifferencesForm/>
<DefaultCollaborationSystemUsersChoiceForm/>
Проверено
javap по mdclasses 0.20.0: у com.github._1c_syntax.bsl.mdclasses.Configuration из «default»-аксессоров есть только getDefaultLanguage() и getDefaultRunMode(). Ни одной конфигурационной основной формы не отдаётся.
Показательно, что виды этих форм в DefaultFormKind уже есть — REPORT_FORM, REPORT_VARIANT_FORM, REPORT_SETTINGS_FORM, DYNAMIC_LIST_SETTINGS_FORM, SEARCH_FORM, — то есть перечисление их знает, а источника данных под них нет: FormOwner.getDefaultFormMap() работает по объекту, а эти формы принадлежат корню.
Зачем
Расширение обычной формы выбирается по её роли у владельца: форма, назначенная основной формой элемента справочника, получает Расширение формы элемента справочника. Для форм, назначенных корнем, эта схема не работает — общая форма, назначенная основной формой констант, ничем не отличается от любой другой общей формы, и Расширение формы констант остаётся неприменённым.
То же касается основных форм отчёта, вариантов и настроек отчёта, настроек динамического списка и формы поиска: их роль известна только из корня.
Достаточно аксессоров на Configuration, возвращающих MdoReference (как getDefaultLanguage()).
Смежное: #670 (ссылка на план счетов у регистра), #671 (источник данных динамического списка).
Найдено при работе над системой типов bsl-language-server.
@
@
Чего не хватает
Часть основных форм задаётся не у объекта метаданных, а у корня конфигурации. В designer-формате это отдельные свойства
Configuration.xml:Проверено
javapпо mdclasses 0.20.0: уcom.github._1c_syntax.bsl.mdclasses.Configurationиз «default»-аксессоров есть толькоgetDefaultLanguage()иgetDefaultRunMode(). Ни одной конфигурационной основной формы не отдаётся.Показательно, что виды этих форм в
DefaultFormKindуже есть —REPORT_FORM,REPORT_VARIANT_FORM,REPORT_SETTINGS_FORM,DYNAMIC_LIST_SETTINGS_FORM,SEARCH_FORM, — то есть перечисление их знает, а источника данных под них нет:FormOwner.getDefaultFormMap()работает по объекту, а эти формы принадлежат корню.Зачем
Расширение обычной формы выбирается по её роли у владельца: форма, назначенная основной формой элемента справочника, получает
Расширение формы элемента справочника. Для форм, назначенных корнем, эта схема не работает — общая форма, назначенная основной формой констант, ничем не отличается от любой другой общей формы, иРасширение формы константостаётся неприменённым.То же касается основных форм отчёта, вариантов и настроек отчёта, настроек динамического списка и формы поиска: их роль известна только из корня.
Достаточно аксессоров на
Configuration, возвращающихMdoReference(какgetDefaultLanguage()).Смежное: #670 (ссылка на план счетов у регистра), #671 (источник данных динамического списка).
Найдено при работе над системой типов bsl-language-server.
@