Переименовались кнопки формы после смены режима совместимости
Поднял режим совместимости конфигурации с 8.3.6 до 8.3.12. Поборол серверные вызовы при завершении работы расширением. И наткнулся на непредвиденные грабли.
Был типовой код который обращался к элементам формы и менял их доступность. Например "Элементы.ВыбратьПользователя.Видимость = Ложь". Теперь любое такое обращение вызывает ошибку "Поле объекта не обнаружено". В отладчике теперь нет элемента "ВыбратьПользователя", а вместо него "ВыбратьПользователяКоманда".
Это из-за режима совместимости? Или в другую сторону надо копать? И можно ли это обойти?
Был типовой код который обращался к элементам формы и менял их доступность. Например "Элементы.ВыбратьПользователя.Видимость = Ложь". Теперь любое такое обращение вызывает ошибку "Поле объекта не обнаружено". В отладчике теперь нет элемента "ВыбратьПользователя", а вместо него "ВыбратьПользователяКоманда".
Это из-за режима совместимости? Или в другую сторону надо копать? И можно ли это обойти?
По теме из базы знаний
- EGAIS Helper: помощник ЕГАИС для 1С Розница 2.2/2.3. Инвентаризация, запросы, проверка ТТН
- Расширение "Интерфейс Плюс"
- Тикеты - система учета задач/Service Desk в 1С (+ мобильное приложение)
- Кровь, пот и GIT
- Интеграция Честный Знак и 1C: обмен и синхронизация для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Да, это связано с изменением внутренней реализации формы в версии 8.3.12. В данной версии были внесены изменения в формат хранения элементов формы, и теперь элементы формы могут иметь другие имена, чем в предыдущих версиях.
Чтобы обойти данную проблему, вам нужно найти новое имя элемента формы, на который вы хотите обратиться, и использовать его вместо старого имени. Вы можете использовать отладчик 1С, чтобы найти новое имя элемента формы. Для этого откройте форму, на которой находится элемент, нажмите правой кнопкой мыши на элементе и выберите пункт меню "Свойства элемента". В диалоговом окне свойств элемента вы можете найти новое имя элемента в поле "Имя".
Например, если вместо элемента "ВыбратьПользователя" вы видите элемент "ВыбратьПользователяКоманда", то замените в коде строку "Элементы.ВыбратьПользователя.Видимость = Ложь" на "Элементы.ВыбратьПользователяКоманда.Видимость = Ложь".
Чтобы обойти данную проблему, вам нужно найти новое имя элемента формы, на который вы хотите обратиться, и использовать его вместо старого имени. Вы можете использовать отладчик 1С, чтобы найти новое имя элемента формы. Для этого откройте форму, на которой находится элемент, нажмите правой кнопкой мыши на элементе и выберите пункт меню "Свойства элемента". В диалоговом окне свойств элемента вы можете найти новое имя элемента в поле "Имя".
Например, если вместо элемента "ВыбратьПользователя" вы видите элемент "ВыбратьПользователяКоманда", то замените в коде строку "Элементы.ВыбратьПользователя.Видимость = Ложь" на "Элементы.ВыбратьПользователяКоманда.Видимость = Ложь".
(3)
Это понятно. Но код то типовой, на замке. Режим совместимости то и поднимался исключительно для того, чтобы была возможность подключать расширения конфигурации. Понятно, что все эти места можно исправить через расширение, но:
1. Конфигурация очень большая. Аналог КА. Как отыскать все такие места в коде, когда ошибка возникает только в рантайме?
2. Нет гарантии, что поставщик потом в обновлении не подкинет новых правок аналогичных указанным выше.
Не. Я лучше на 8.3.10 откачусь.
Например, если вместо элемента "ВыбратьПользователя" вы видите элемент "ВыбратьПользователяКоманда", то замените в коде строку "Элементы.ВыбратьПользователя.Видимость = Ложь" на "Элементы.ВыбратьПользователяКоманда.Видимость = Ложь".
Это понятно. Но код то типовой, на замке. Режим совместимости то и поднимался исключительно для того, чтобы была возможность подключать расширения конфигурации. Понятно, что все эти места можно исправить через расширение, но:
1. Конфигурация очень большая. Аналог КА. Как отыскать все такие места в коде, когда ошибка возникает только в рантайме?
2. Нет гарантии, что поставщик потом в обновлении не подкинет новых правок аналогичных указанным выше.
Не. Я лучше на 8.3.10 откачусь.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот