С апреля (ИР адаптер 2.07) я перешел на собственную функцию https://turboconf.ru/Tasks/10190 получения перечислимого типа элемента интерфейса, которая опирается на ПолучитьНазваниеТипаТекущегоЭлемента(), которая возвращает локализованное имя. Но из-за этого она некорректно работает на нерусских локалях ОС.
Вот пример https://turboconf.ru/Tasks/10305 - там вместо "документ" возвращает "document". В результате у пользователя адаптер практически вообще не работает.
Поэтому прошу добавить параметр "Локализованный" в метод ПолучитьНазваниеТипаТекущегоЭлемента(), чтобы получать ControlType вместо LocalizedControlType. Тогда я буду проверять всегда английское имя и не будет зависимости от локали ОС.
Функция ПолучитьТипТекущегоЭлемента()
//ТипЭлементаИнтерфейса = ТурбоКонф.ПолучитьТипТекущегоЭлемента(); // Вероятно ошибка OScript https://turboconf.ru/Tasks/8430, https://turboconf.ru/Tasks/10190
ТипЭлементаИнтерфейса = ТурбоКонф.ПолучитьНазваниеТипаТекущегоЭлемента();
Если ТипЭлементаИнтерфейса = "документ" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Документ;
ИначеЕсли ТипЭлементаИнтерфейса = "кнопка" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Кнопка;
ИначеЕсли ТипЭлементаИнтерфейса = "меню" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Меню;
ИначеЕсли ТипЭлементаИнтерфейса = "неизвестный" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Неизвестный;
ИначеЕсли ТипЭлементаИнтерфейса = "панель" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Панель;
ИначеЕсли ТипЭлементаИнтерфейса = "поле" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Поле;
ИначеЕсли ТипЭлементаИнтерфейса = "поле со списком" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.ПолеСоСписком;
ИначеЕсли ТипЭлементаИнтерфейса = "список" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Список;
ИначеЕсли ТипЭлементаИнтерфейса = "таблицу" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Таблица;
ИначеЕсли ТипЭлементаИнтерфейса = "флажок" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Флажок;
ИначеЕсли ТипЭлементаИнтерфейса = "элемент меню" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.ЭлементМеню;
ИначеЕсли ТипЭлементаИнтерфейса = "элемент списка" Тогда
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.ЭлементСписка;
Иначе
ТипЭлементаИнтерфейса = ЗначенияТипЭлемента.Неизвестный;
КонецЕсли;
Возврат ТипЭлементаИнтерфейса;
КонецФункции
#1, 04 июня 2025 07:40
напоминаю
tormozit изменил статус на Открыто