Пятница, 11.10.2024, 15:20
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Пожелание: уменьшение количества попыток
unichkinДата: Пятница, 19.06.2020, 10:42 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 200
Репутация: 37
Статус: Оффлайн
Добрый день. Много есть операций, выполняющихся через попытка-исключение, что очень неудобно при работе в режиме отладки. Например в портативных, в модуле ирОбщий, стр. 22100, метод НастроитьЭлементыФормыЛкс(ЭтаФорма):
Попытка
ОсновнойРеквизит = ЭтаФорма[ИмяОсновногоРеквизита];
Исключение
КонецПопытки;

Можно же через метод "ЕстьРеквизитИлиСвойствоОбъекта" проверить. Т.е.
Если <ИмяМодуля>.ЕстьРеквизитИлиСвойствоОбъекта(ЭтаФорма, ИмяОсновногоРеквизита) Тогда
ОсновнойРеквизит = ЭтаФорма[ИмяОсновногоРеквизита];
КонецЕсли;

И т.п., я таких мест много видел. 
Еще вопрос - а есть ли групповая разработка в ИР? Я имею в виду, что сам бы поправил такие места, если б доступ был. Однократно в своей локалной версии нет смысла править, обновляю постоянно.
 
tormozitДата: Пятница, 19.06.2020, 22:39 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Групповой разработки нет, т.к. для обычных форм нет удобных решений. Во всяком случае я таких не встречал. Но можно же просто выкладывать измененный модуль и указывать версию или даже прикладывать его оригинал.

Неудобства от применения попыток понятны. Я и сам от них страдаю. Все их устранить вообще не получится, а бОльшую часть не получится устранить без замедления работы кода. Например функция для безпопыточной проверки наличия свойства объекта в 5-10 раз медленнее, чем прямое обращение
Код
Функция ЕстьСвойствоОбъектаЛкс(Объект, Свойство) Экспорт
    УникальноеЗначение = "м86ыщшру5аа7шлв9823454";
    Структура = Новый Структура(Свойство, УникальноеЗначение);
    ЗаполнитьЗначенияСвойств(Структура, Объект);
    Результат = Структура[Свойство] <> УникальноеЗначение;
    Возврат Результат;
КонецФункции
В следующей версии я заменю ровно то место, которое ты обозначил на безпопыточный вариант. Оно выполняется лишь один раз при создании формы. Поэтому такое замедление будет незначительным. Сделаю я это затем чтобы продемонстрировать, что за этой попыткой будет еще куча других, включая не имеющих безпопыточных решений. В итоге должно стать понятно, что это тупиковый путь. Хотя мне и самому это не нравится и неудобно, но приходится включать фильтр для остановки по ошибке. Немного дополнительных действий, но зато останавливаешься почти всегда точно на нужной ошибке.

Прикрепления: 4175575.png (15.0 Kb)
 
  • Страница 1 из 1
  • 1
Поиск: