Менеджер открытых форм

Публикация № 610324

Программирование - Работа с интерфейсом

обработка форма окно менеджер открытая элемент доступность свойство

32
Обработка получает информацию об открытых формах и позволяет ими манипулировать.

Доброго времени суток!

Обработка поможет разработчикам, которым потребовалось в режиме предприятия открыть скрытые элементы формы, поменять временно их свойства или просто подставить нужное значение в недоступный реквизит, но нет желания (или возможности) подменивать эти значения через отладку конфигуратора. Иногда для тестирования такие манипуляции с формами заметно сокращают затраченное время. 

Данная обработка перехватывает все открытые окна, собирает информацию о формах, выводит её в редактор и позволяет выполнять разные манипуляции.

Инструмент протестирован на файловых и серверных базах платформ 8.3.12 и 8.3.14.

История изменений:

Версия Изменения
0.3.5 1. Увеличена скорость запуска и работы
2. Добавлена возможность прямой работы с реквизитами формы
3. Добавлена возможность отображения истории открытия формы
4. Добавлена возможность работы с параметрами формы
5. Расширенные настройки обработки
0.2.2 1. Добавлена возможность работы с сохранёнными настройками форм
2. Добавлены команды обновления для дерева элементов и свойствах формы
3. Добавлена расширенная подсказка к многим элементам формы в виде кнопок
4. Добавлена возможность отключать вывод расширенной подсказки этой обработки в виде кнопки
0.2.1 1. Добавлена подсказка для консоли кода
2. Добавлена поддержка более ранних версий платформы
3. Добавлена кнопка перехода из обработки на страницу Infostart
4. Исправлена прозрачность иконок в дереве элементов
5. Исправлена ошибка получения расширенной подсказки у управляемой формы

 

Ниже приведена инструкция из обработки:

 

Список открытых форм:

 - обновляет список открытых форм

 - активирует выбранную форму

 - обновляет информацию о выбранной форме

 - устанавливает всем элементам формы ТолькоПросмотр = Ложь и Доступность = Истина

- закрывает выбранную форму

 - открывает настройки этой обработки

 - открывает страницу обработки в Инфостарт

 

Настройки обработки:

Для упрощения работы с инструментом (а так же его ускорения) есть возможность отключать ненужный на данный момент функционал и проводить его настройку.

 

О форме:

Содержит информацию о выбранной форме.

Заголовок - заголовок формы

Ключ- Параметр формы "Ключ". Для форм элементов содержит ссылку на сам элемент.

Уникальный идентификатор - уникальный идентфикатор формы. все операции этой обработки оперируют им при определении формы

Навигационная ссылка - ссылка на форму. Справа от поля есть возможность включить\исключить форму в список избранного платформы.

 

Элементы:

Данный функционал доступен, если в настройках установлен флажок "Работа с элементами форм".

Содержит дерево элементов выбранной формы.

Можно изменить свойства: Видимость, ТолькоПросмотр, Доступность.

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

Через соответсвующий пункт в контекстом меню (или нажатии F5) дерево обновляется

 

Свойства:

Данный функционал доступен, если в настройках установлен флажок "Работа со свойствами форм".

Список свойств формы.

Через соответствующий пункт в контекстом меню (или нажатии F5) список обновляется

В списке свойств есть АвтоЗаголовок, Доступность, Заголовок, Модифицированность, ТолькоПросмотр

Имеется возможность установки значения любого произвольного свойства формы в пункте "Произвольная установка"

Реквизиты:

Данный функционал доступен, если в настройках установлен флажок "Работа с реквизитами форм".

Содержит дерево реквизитов

Можно изменять значения реквизитов и таблиц формы.

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

Так же есть возможность в настройках инструмента указать список имен реквизитов, наличие которых будет автоматически проверятся в каждой открытой форме.

 

Параметры:

Данный функционал доступен, если в настройках установлен флажок "Показывать параметры форм".

Список параметров формы, которые доступны после её открытия

 

Консоль кода:

Данный функционал доступен, если в настройках установлен флажок "Работа с консолью кода".

Позволяет выполнить код, оперируя выбранной формой. Выполняется изначально код &НаКлиенте, из которого уже можно вызвать выполнение &НаСервере методом ВыполнитьКодНаСервере(ТекстНаСервере, ДополнительныеПараметры);

&НаКлиенте

//Работает непосредственно с выбранной формой в контексте клиента.
//
//Доступные переменные:
// ТекущаяФорма   - выбранная открытая форма;
// ТекстНаСервере   - текст кода, выполняемого на сервере
// ДополнительныеПараметры - структура для обмена данными между клиентом и сервером
//
//Доступные методы:
// ВыполнитьКодНаСервере(ТекстНаСервере, ДополнительныеПараметры);

&НаСервере

//Код выполняется в контексте сервера, но не имеет возможности обратится к форме. Необходим для получения значений, например, из запросов.
//
//Доступные переменные:
// ДополнительныеПараметры - структура для обмена данными между клиентом и сервером

Дополнительные параметры

Таблица с доп. параметрами, которые будут доступны &НаКлиенте и &НаСервере в виде структуры

 

Настройки из хранилища:

Данный функционал доступен, если в настройках обработки стоит галочка "Работа с настройками форм".

Таблица показывает список настроек из хранилища системных настроек для выбранный формы.


Через соответсвующий пункт в командной панели (или нажатии F5) список обновляется
Имеется возможность добавления\изменения\удаления настроек хранилища.

Редактирование самой настройки происходит в виде строки, полученной методом ЗначениеВСтрокуВнутр(Настройка).

История:

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

Платформенная история открытия текущей формы текущим пользователем

 

Если Вам будет полезна обработка, можете поддержать её развитие комментариями и\или пожертвованиями.

 

32

Скачать файлы

Наименование Файл Версия Размер
Менеджер открытых форм (ver. 0.3.5)
.epf 89,23Kb
23.05.19
6
.epf 0.3.5 89,23Kb 6 Скачать
Менеджер отрытых форм (0.2.2)
.epf 53,52Kb
23.05.19
20
.epf 0.2.2 53,52Kb 20 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. IsiKosta 710 14.04.17 09:20 Сейчас в теме
Опечатка в наименовании. Или так задумано ? :)
2. vdmkvrshn 13 14.04.17 09:48 Сейчас в теме
Интересно, интересно... давно хотел сам такое разработать. Протестим))
4. vdmkvrshn 13 14.04.17 12:11 Сейчас в теме
(2) Недоработок много, но идея хорошая.
6. SeiOkami 1013 14.04.17 20:14 Сейчас в теме
(4) а какие конкретно недоработки? я поправлю.
7. vdmkvrshn 13 15.04.17 00:22 Сейчас в теме
(6) Например:
1) В таблице параметров в событии при окончании редактирования нет проверки на то, что это не отмена редактирования - при нажатии Esc все равно проверяется заполнение и не позволяет отказаться от ввода нового параметра или изменения существующего.
2) Сразу не понял, почему кнопка выполнения кода вызывает только клиентский метод. Где вызов серверного? Я так понимаю, что предполагается его вызывать самому из клиентского? Ну, если так, то надо бы это как-то описать в каком-нибудь хоть небольшом хелпе на закладке серверного кода, а то как-то неочевидно это. Чтобы разобраться надо заглянуть в код. Понятно, что обработка для программистов, но для экономии времени подсказка не помешала бы.
3) Режим совместимости. Про это не слова в описании. В коде используются методы глобального контекста, доступные только с 8.3.6 (или 7) типа СтрНайти, СтрРазбить. У меня, например, базы в режиме совместимости 8.3.5 еще и пришлось это исправлять - в 3 или 4-х местах, только тогда заработало. Я считаю, что можно было вполне обойтись методом Найти и вызовом стандартной для БСП функции СтроковыеФункцииКлиентСервер.РазбитьСтрокуВМассивПодстрок() для большей совместимости. Ну на крайняк можно этот метод себе в обработку скопировать, чтобы не зависеть от наличия модулей БСП.

Учитывая вышесказанное на beta-версию, как написано в самой обработке, не тянет, т.к. "из коробки" не взлетело :)
9. SeiOkami 1013 15.04.17 06:37 Сейчас в теме
(7) 1) Просто, если не делать проверку при отмене редактирования, то можно в существующей строке задать "плохое" имя свойства, а после нажать Esc и оно будет применено. Я как-то не догнал, почему так работает платформа, вот и решил насильно всегда проверять)

2) Да, серверный код по кнопке вызывать нельзя, ибо просто не имеет смысла - на сервер перехваченную форму передать не получится. Нужно будет дополнить описание.

3) Да, я разрабатывал, тестировал и использовал всё на 8.3.8. Поправлю сей момент.
А проблемы были только с СтрРазделить или ещё может какие методы?

Спасибо за комментарий!
10. vdmkvrshn 13 15.04.17 13:32 Сейчас в теме
11. SeiOkami 1013 15.04.17 13:37 Сейчас в теме
(10) ок, на следующей неделе выложу обновлённую версию. может ещё и прикручу чего-нить нового.
3. ResetAtreides 14.04.17 10:21 Сейчас в теме
А принцип получения открытых форм какой? Раньше вроде вообще возможности такой не было
5. the1 362 14.04.17 12:55 Сейчас в теме
(3) на УФ давненько уже

ПолучитьОкна (GetWindows)
Синтаксис:

ПолучитьОкна()
Возвращаемое значение:

Тип: ОкнаКлиентскогоПриложения.

Описание:

Получает окна приложения. Порядок элементов в коллекции не определен.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Показать
12. CheBurator 3389 15.04.17 13:54 Сейчас в теме
Обработка ловит открытые печатные формы?
13. SeiOkami 1013 20.04.17 16:24 Сейчас в теме
Опубликована новая версия. Помимо прочего добавлена возможность работы с настройками форм из системного хранилища
14. kalyaka 489 16.03.18 09:12 Сейчас в теме
Пожелание.
Добавьте, пожалуйста, в перечень свойств элементов формы "Связи параметров выбора", "Параметры выбора".
Видеть эти свойства было бы полезно при анализе работы формы, когда происходит выбор элемента.
Еще было бы полезно видеть в форме свойство УсловноеОформление.
Все эти параметры могут управляться программно и не всегда удается выловить код, который управляет этими свойствами. Также в отладчике просмотр этих свойств менее удобен, чем был бы в Вашей обработке,т.к. в отладчике для их просмотра требуется останавливаться в каждой из исследуемых форм.
15. SeiOkami 1013 06.06.19 21:26 Сейчас в теме
UPD: Обработка теперь более быстрая, гибкая и функциональная. Добавлена возможность редактирования значений реквизитов формы (включая таблицы).

В планах:
1. возможность сохранения сессии открытых окон. Очень полезно, когда ведёшь разработку с отладкой, перезапускаешь постоянно сеанс и открываешь те же самые формочки.
2. возможность открытия любых форм конфигурации с любыми параметрами.
Оставьте свое сообщение