Иногда требуется изменить значение многих полей "в одно касание".
Здесь я набросал проект, который позволяет это делать. Буду рад, если он окажется полезным в вашей работе.
Администраторам
Данный класс формирует список всех значений всех полей всех таблиц в три временные таблицы, с которыми можно работать динамически: исключать некоторые группы, фильтровать списки таблиц, полей и значений по первым буквам их имён, делать выборку значений, а главное - задавать новые значения полей.
Кроме того, присутствуют некоторые сервисные возможности, такие, например, как открытие таблицы в дереве АОТ, просмотр её значений стандартным броузером или просмотр текста текущего SQL-запроса.
Программистам
Программистам будет интересно заглянуть внутрь единственного класса этого проекта, в котором динамически создаются все объекты, включая методы объектов формы диалога, которые динамически же перегружаются. Комментарии в коде - к вашим услугам.
Замечания:
- Если класс при запуске ругается на то, что временные таблицы уже существуют в АОТ, это значит, что либо работает другой экземпляр класса, либо в результате аварийной ситуации эти таблицы остались в виде "ошмётков", и их нужно удалить из АОТ вручную: __tmpTablesTable, __tmpFieldsTable, __tmpValuesTable.
- Если таблица это позволяет (например, если не запрещены дубликаты), то заданное значение заместит ВСЕ (!) значения, выбранные в запросе - будьте осторожны!
Развитие
В дальнейших планах есть мысль прикрутить возможность экспорта в Excel значений выбранных полей.
Буду очень рад, если вы предложите свои идеи по усовершенствованию; замечания по недочётам тоже очень приветствуются!
Благодарности
Большое спасибо
Евгению за помощь в тестировании!