Вариант для реализации пометок в динамических списках

20.02.26

Разработка - Работа с интерфейсом

В статье рассматриваются варианты с двойным и одинарным кликом, предлагается оптимальное решение с использованием события ПриАктивизацииЯчейки и параметра ВыбранныеСсылки. Приведен полный код запроса, настройки формы и клиентских процедур для удобного выбора элементов списка.

О варианте реализации пометок в динамических списках рассказывает мой коллега Сергей, разработчик 1С

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

Либо одинарный клик, но иногда все равно нужно нажимать дважды. Этот вариант рассмотрен в этой статье «Флажки в динамическом списке с картинками и одинарным кликом, простой вариант».

При сравнении пользовательского восприятия в первом варианте задержки при нажатии на пометки списка менее выражены.

Хитрость такого метода в том, что при клике на флажок фокус перескакивает на поле справа от флажка, и тогда событие ПриАктивизацииЯчейки срабатывает, даже если клик происходит в текущей строке.

Первое, что нужно сделать – добавить поле Выбран в запрос:

 

Запрос списка:

ВЫБРАТЬ
	Контрагенты.Ссылка В (&ВыбранныеСсылки) КАК Выбран,
	Контрагенты.Ссылка КАК Ссылка,
	Контрагенты.Наименование КАК Наименование,
	Контрагенты.ИНН КАК ИНН,
	Контрагенты.ЮрФизЛицо КАК ЮрФизЛицо,
	Контрагенты.Партнер КАК Партнер
ИЗ
	Справочник.Контрагенты КАК Контрагенты

 

Настройка свойств

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


 

Картинка в типовых конфигурациях - это БиблиотекаКартинок.ФлажокБЭД, но если ее нет, то можно взять эту  

 

Код модуля формы

&НаКлиенте
Перем ВыбранныеСсылки;

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	ВыбранныеСсылки = Новый Массив;	
	Список.Параметры.УстановитьЗначениеПараметра("ВыбранныеСсылки", ВыбранныеСсылки);
	УстановитьФокусПослеКолонкиВыбор();		

КонецПроцедуры

// При открытии фокус автоматически устанавливается на первую колонку Выбор
// Это мешает одиночному клику
// Ищем первую видимую колонку после колонки Выбор
&НаКлиенте
Процедура УстановитьФокусПослеКолонкиВыбор()
	
	Индекс = Элементы.Список.ПодчиненныеЭлементы.Индекс(Элементы.СписокВыбран);
	Для Сч = Индекс + 1 По Элементы.Список.ПодчиненныеЭлементы.Количество() - 1 Цикл
		Если Элементы.Список.ПодчиненныеЭлементы[Сч].Видимость Тогда
			Элементы.Список.ТекущийЭлемент = Элементы.Список.ПодчиненныеЭлементы[Сч];
			Прервать;
		КонецЕсли;
	КонецЦикла;

КонецПроцедуры

&НаКлиенте
Процедура СписокПриАктивизацииЯчейки(Элемент)
	
	Если Элемент.ТекущийЭлемент = Элементы.СписокВыбран Тогда
		
		ТекущиеДанные = Элемент.ТекущиеДанные;
		Если ТекущиеДанные = Неопределено Тогда
			Возврат;
		КонецЕсли;		
			
		Если ТекущиеДанные.Выбран Тогда
			СнятьПометку(ТекущиеДанные.Ссылка);
		Иначе
			ПоставитьПометку(ТекущиеДанные.Ссылка);
		КонецЕсли;
		Список.Параметры.УстановитьЗначениеПараметра("ВыбранныеСсылки", ВыбранныеСсылки);
		
		Элементы.Список.Обновить();
		
		УстановитьФокусПослеКолонкиВыбор();
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПоставитьПометку(ДокСсылка)

	Индекс = ВыбранныеСсылки.Найти(ДокСсылка);
	Если Индекс = Неопределено Тогда
		ВыбранныеСсылки.Добавить(ДокСсылка);
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура СнятьПометку(ДокСсылка)

	Индекс = ВыбранныеСсылки.Найти(ДокСсылка);
	Если Индекс >= 0 Тогда
		ВыбранныеСсылки.Удалить(Индекс);
	КонецЕсли;

КонецПроцедуры

 

Указываем события Списка

В свойствах Списка указываем обработчик события ПриАктивизацииЯчейки:

 

 

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

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

пометки динамические списки

См. также

SALE! 10%

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 28548 руб.

27.03.2025    72793    45    35    

58

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.

36600 руб.

28.08.2025    6142    2    2    

6

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

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

6100 руб.

14.01.2016    59505    22    25    

47

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

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

6088 руб.

17.10.2025    1543    3    0    

2

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами (виджетами) в 1С.

5246 руб.

29.06.2020    23872    33    6    

52

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    47090    mrXoxot    44    

138

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    25830    smielka    38    

114

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

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

3 стартмани

10.04.2023    17119    180    acces969    31    

132
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 2115 20.02.26 15:50 Сейчас в теме
Вот только при активизации ячейки пометка будет меняться, даже если мы туда стрелками клавиатуры переместим фокус
Для отправки сообщения требуется регистрация/авторизация