1C-Company / 1c-edt-issues

Пространство для пожеланий и обсуждения ошибок 1C:Enterprise Development Tools
https://edt.1c.ru/
139 stars 9 forks source link

Ошибка при добавления в Расширение предопределенных элементов в заимствованные справочники #1581

Open 1C-AB opened 1 week ago

1C-AB commented 1 week ago

Описание ошибки

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

Проверил на двух справочниках. Кстати потом можно удалить заимствованный предопределенный элемент.

eclipse.buildId=2024.1.2.50
java.version=17.0.12
java.vendor=Azul Systems, Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ru_RU
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -data E:\EDT\UNF2.0

org.eclipse.e4.ui.workbench
Ошибка
Mon Nov 11 15:59:01 MSK 2024
Command 'com._1c.g5.v8.dt.ui.commands.openWizard' failed

org.eclipse.core.commands.ExecutionException: Error executing 'com._1c.g5.v8.dt.ui.commands.openWizard': java.lang.IllegalArgumentException: invalid count: -1
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:179)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:438)
    at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)
    at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4071)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3659)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:648)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1432)
Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.IllegalArgumentException: invalid count: -1
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:68)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:298)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:232)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:174)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:165)
    ... 33 more
Caused by: java.lang.IllegalArgumentException: invalid count: -1
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191)
    at com.google.common.base.Strings.repeat(Strings.java:156)
    at com._1c.g5.v8.dt.md.PredefinedItemUtil.generateUniqueCode(PredefinedItemUtil.java:1144)
    at com._1c.g5.v8.dt.md.PredefinedItemUtil.generatePredefinedItemUniqueCode(PredefinedItemUtil.java:802)
    at com._1c.g5.v8.dt.md.ui.wizards.aef.models.PredefinedItemModel.<init>(PredefinedItemModel.java:94)
    at com._1c.g5.v8.dt.md.ui.wizards.PredefinedItemWizard.createPredefinedItemModel(PredefinedItemWizard.java:129)
    at com._1c.g5.v8.dt.md.ui.wizards.PredefinedItemWizard.getPredefinedObjectModel(PredefinedItemWizard.java:146)
    at com._1c.g5.v8.dt.md.ui.wizards.PredefinedItemWizard.getModelForPageComponent(PredefinedItemWizard.java:113)
    at com._1c.g5.v8.dt.md.ui.wizards.base.aef.DtAefNewWizard$AefPage.initializeComponentModel(DtAefNewWizard.java:109)
    at com._1c.g5.v8.dt.md.ui.wizards.base.aef.DtAefNewWizardPage.createPageControls(DtAefNewWizardPage.java:77)
    at com._1c.g5.v8.dt.ui.wizards.DtNewWizardPage.createControl(DtNewWizardPage.java:58)
    at com._1c.g5.v8.dt.md.ui.wizards.base.DtNewWizard.createPageControls(DtNewWizard.java:217)
    at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
    at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:636)
    at org.eclipse.jface.window.Window.create(Window.java:431)
    at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1094)
    at com._1c.g5.v8.dt.internal.md.ui.aef.actions.predefined.AddPredefinedItemHandler.executeWizard(AddPredefinedItemHandler.java:143)
    at com._1c.g5.v8.dt.internal.md.ui.aef.actions.predefined.AddPredefinedItemHandler.execute(AddPredefinedItemHandler.java:80)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:99)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
    ... 37 more

Как воспроизвести

На видео

Скриншоты

No response

Ожидаемое поведение

Добавление предопределенных элементов без необходимости заимствования предопределенных элементов из основной конфиуграции

Лог рабочей области

log.txt trace.log

Версия 1С:EDT

2024.1.2

Операционная система

Windows

Версия платформы 1С:Предприятие 8

8.3.24.1738

Установленные плагины

1C:Code style V8, 1C:Language Tool

Дополнительная информация

Управление нашей фирмой, редакция 3.0 (3.0.9.191)

vadimeg commented 1 week ago

@1C-AB Добрый день, скорее всего у заимствованного справочника стоит нулевая длина кода. Проверьте, пожалуйста

image

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

image

1C-AB commented 1 week ago

Не понимаю, о каком конфигураторе речь? На видео я все показываю в EDT.

Я не вижу в какой УНФ вы это тестировали и на каком справочнике. В моем примере это ГруппыДоступа, функционал БСП. В нем код 0. Справочник просто добавлен в расширение, ничего не менялось. Вот скриншот. image

UPD: Да если коду указат длину, ошибки нет. Это не нормальное поведение EDT.

vadimeg commented 1 week ago

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

image

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

vadimeg commented 1 week ago

Это не нормальное поведение EDT.

Да, это ошибка, но не критическая. Ошибку исправим.

1C-AB commented 1 week ago

Она была критичная пока я не нашел выход. через заимствование и затем удалении других предопределенных. А так да не критичная для УНФ А если в каком то справочнике нет предопределенных то критичная.