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

Обработки - Универсальные обработки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

О форме:

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

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

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

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

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

Элементы:

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

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

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

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

Свойства:

Список свойств формы с возможностью установки значений.

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

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

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

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

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

&НаКлиенте

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

&НаСервере

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

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

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

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

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


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

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

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

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

Наименование Файл Версия Размер
Менеджер отрытых форм:
.epf 53,52Kb
13.04.17
13
.epf 0.2.2 53,52Kb 13 Скачать

См. также

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

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

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

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

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

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

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

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

Описание:

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

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

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Показать
12. Сергей Коцюра (CheBurator) 3412 15.04.17 13:54 Сейчас в теме
Обработка ловит открытые печатные формы?
13. Виталий Черненко (SeiOkami) 624 20.04.17 16:24 Сейчас в теме
Опубликована новая версия. Помимо прочего добавлена возможность работы с настройками форм из системного хранилища
Оставьте свое сообщение