Удобный выбор из таблицы/дерева в УФ

12.08.19

Разработка - Инструментарий разработчика

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

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

Наименование Файл Версия Размер
Удобный выбор из таблицы/дерева в УФ:
.epf 7,10Kb
12
.epf 7,10Kb 12 Скачать

Нажимали мы на "педальку" в поле ввода, и надо было нам выбрать значения...
Раньше у нас был метод "ВыбратьСтроку", открывавший модальное окно таблицы или дерева. В УФ ради этого приходилось делать отдельные формы, или сводить всё к выбору из списка.
С помощью нововведения последних релизов - "всплывающей" группы элементов - это можно эмулировать, и весьма неплохо.

Ранее у группы элементов было два поведения - обычное и свёртываемая. Теперь добавилось "всплывающая". Она может раскрываться, как и свёртываемая, по иконке или по гиперссылке; обязательно должна иметь непустой заголовок и установленный флаг "Отображать заголовок", по масштабированию не зависит от остальных объектов формы, и отображается как всплывающая мини-форма с крестиком закрытия; по возможности там, откуда вызвали (иногда, при вызове снизу экрана, выкручивается "вверх"). Одновременно может показываться только одна всплывающая группа. При переключении на родительскую форму исчезает. Свёртываемые формы внутри себя отрабатывает штатно. Всплывающие внутри всплывающих ведут себя как свёртываемые (а не как каскад). Можно использовать методы "Показать()" и "Скрыть()", см. СП в расширении групп формы, но они в нашем случае оставляют маленький, но раздражающий заголовочек, поэтому будем менять видимость.


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


&НаКлиенте
Процедура ПоказатьВсплывающуюГруппу()
    // можно ещё Элементы.ВсплывающаяГруппа.Показать();
	ЭтотОбъект.ТекущийЭлемент=Элементы.ДеревоВыбора;
КонецПроцедуры

&НаКлиенте
Процедура СкрытьВсплывающуюГруппу()
    Если ЭтотОбъект.ТекущийЭлемент()<>Элементы.ДеревоВыбора и Элементы.ВсплывающаяГруппа.Видимость Тогда
        Элементы.ВсплывающаяГруппа.Видимость=Истина;
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура НекоеПолеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	СтандартнаяОбработка=Ложь;
	элДерева=ДеревоВыбора.ПолучитьЭлементы();
	Если элДерева.Количество()=0 Тогда Возврат КонецЕсли;
	Элементы.ВсплывающаяГруппа.Видимость=Истина;
	идстро1=элДерева.Получить(0).ПолучитьИдентификатор();	
	//Элементы.ДеревоВыбора.Развернуть(идстро1,Истина); // если надо
	Элементы.ДеревоВыбора.ТекущаяСтрока=идстро1;
	ПодключитьОбработчикОжидания("ПоказатьВсплывающуюГруппу",0.1,Истина);
	ПодключитьОбработчикОжидания("СкрытьВсплывающуюГруппу",1);
КонецПроцедуры

&НаКлиенте
Процедура ДеревоВыбораПриАктивизацииСтроки(Элемент)
	текдан=Элементы.ДеревоВыбора.ТекущиеДанные;
	Если текдан=Неопределено Тогда Возврат КонецЕсли;
	Если текдан.ПолучитьЭлементы().Количество()=0 Тогда
		НекоеПоле=текдан.Поле1;
		ЭтотОбъект.ТекущийЭлемент=Элементы.НекоеПоле;
		Элементы.ВсплывающаяГруппа.Видимость=Ложь;
	КонецЕсли;	
КонецПроцедуры

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

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

Тестировалось на 8.3.13.1690.

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121542    670    389    

709

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7249    21    6    

38

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3489    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177712    1073    0    

848

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99329    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18095    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28078    3    10    

14

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23589    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1351 12.08.19 13:08 Сейчас в теме
(0) интересно, может пригодиться - сохранил в свою копилку алгоритмов....
Прикрепленные файлы:
dreamcreal; +1 Ответить
5. aximo 2027 12.08.19 16:42 Сейчас в теме
(1) что за система хранения?
dreamcreal; +1 Ответить
6. Yashazz 4709 12.08.19 18:10 Сейчас в теме
(5) Полагаю, некий справочник, такое рисуется за полчаса. У меня тоже есть. С нечётким поиском нужного.
7. RustIG 1351 12.08.19 18:20 Сейчас в теме
(5) вот же, старая как мир обработка https://infostart.ru/public/89310/
AllexSoft; dreamcreal; +2 Ответить
8. Yashazz 4709 12.08.19 18:30 Сейчас в теме
(7) Ну да, можно и её, многие юзают похожее, идея-то одинаковая)
14. s_vidyakin 63 13.08.19 11:08 Сейчас в теме
(8) откройте для себя notion.so
alei1180; +1 Ответить
9. dreamcreal 12.08.19 23:28 Сейчас в теме
(1) СПС, я не поняла сначала почему у Вас шаблоны слева....
2. Yashazz 4709 12.08.19 13:50 Сейчас в теме
Фишка в том, что активация элемента, расположенного на "всплывающей" группе заставляет её принудительно всплыть. Остальное, в общем, примитив и баян.
3. azhilichev 213 12.08.19 15:03 Сейчас в теме
Только ЭтаФорма считается устаревшим свойством. Для управляемой формы актуальное - ЭтотОбъект.
nagaitseff; +1 Ответить
4. Yashazz 4709 12.08.19 15:42 Сейчас в теме
10. K_A_O 538 13.08.19 09:10 Сейчас в теме
Неплохая идея.
Но у группы же есть методы Показать() и Скрыть()
11. Yashazz 4709 13.08.19 10:17 Сейчас в теме
(10) В моём 8.2.12.1685 оно объявлено в СП, но почему-то не работало...
12. Yashazz 4709 13.08.19 10:25 Сейчас в теме
Публикация отредактирована согласно комментариям. Всем спасибо за дополнения!
13. AllexSoft 13.08.19 10:58 Сейчас в теме
Идея крутая, беру не вооружение.
15. nagaitseff 171 16.08.19 12:50 Сейчас в теме
16. nagaitseff 171 16.08.19 18:10 Сейчас в теме
(15) возьму на вооружение себе тоже, спасибо
17. Yashazz 4709 16.08.19 19:50 Сейчас в теме
(15) Ага) Я так и написал в (2), цитирую: "Остальное, в общем, примитив и баян". )))
18. fomix 33 17.08.19 21:45 Сейчас в теме
Попробовал сделать по аналогии. По правде сказать, вид стрёмный! Особенно в режиме запуска 1С в отдельных окнах. Да и практическое применение сомнительно...очередная интерфейсная плюшка!
Оставьте свое сообщение