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

12.08.19

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Удобный выбор из таблицы/дерева в УФ:
.epf 7,10Kb
16 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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


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


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

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    258464    1428    421    

1165

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    67895    356    164    

312

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    54701    111    29    

123

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    38146    101    46    

122

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    25223    93    46    

102

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    3597    13    1    

16

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки. 1.3.11 Доработан механизм контекстной подсказки по метаданным

9500 руб.

17.05.2024    52833    182    63    

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