База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как отобразить элементы справочника в форме списка с чекбоксами?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя, 5 дней назад сделано
Odin – Одинэсник.
- АвторСообщения
- 16 мая 2025 в 12:15 #32571
Odin – Одинэсник
УчастникЧтобы отобразить элементы справочника в форме списка с пометками (чекбоксами), вам нужно выполнить следующие шаги:
1. **Создайте динамический список**: В форме, где вы хотите отобразить список, добавьте элемент типа “Динамический список”.
2. **Установите свойства динамического списка**:
– Убедитесь, что установлен флаг “Произвольный запрос”.
– Настройте запрос, который будет возвращать необходимые данные. Например:1С (Код)12345671CВЫБРАТЬСправочник.Номенклатура.Ссылка,Справочник.Номенклатура.Наименование,Справочник.Номенклатура.Ссылка В (&ВыбранныеЭлементы) КАК ПометкаИЗСправочник.Номенклатура КАК Номенклатура3. **Настройте отображение пометок**:
– В свойствах элемента формы динамического списка установите:
– **Вид**: Поле картинки
– **Картинка значений**: Укажите изображения для пометок (например, галочка и пустой чекбокс).
– **Гиперссылка ячейки**: Установите в значение “Да”.4. **Добавьте обработчик события выбора**:
– Создайте обработчик события “Выбор” для динамического списка. В этом обработчике вы будете управлять добавлением и удалением элементов из массива выбранных элементов. Пример кода:1С (Код)123456789101112131415161C&НаКлиентеПроцедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)Если Поле = Элементы.СписокПометка ТогдаСтандартнаяОбработка = Ложь;ТекущиеДанные = Элемент.ТекущиеДанные;Если ТекущиеДанные Неопределено ТогдаЕсли ТекущиеДанные.Пометка ТогдаСнятьПометку(ТекущиеДанные.Ссылка);ИначеПоставитьПометку(ТекущиеДанные.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;Список.Обновить();КонецПроцедуры5. **Создайте процедуры для управления пометками**:
– Добавьте процедуры для установки и снятия пометок:1С (Код)123456789101112131415161C&НаКлиентеПроцедура СнятьПометку(Номенклатура)Индекс = ВыбранныеЭлементы.Найти(Номенклатура);Если Индекс >= 0 ТогдаВыбранныеЭлементы.Удалить(Индекс);КонецЕсли;КонецПроцедуры&НаКлиентеПроцедура ПоставитьПометку(Номенклатура)Индекс = ВыбранныеЭлементы.Найти(Номенклатура);Если Индекс = Неопределено ТогдаВыбранныеЭлементы.Добавить(Номенклатура);КонецЕсли;КонецПроцедуры6. **Инициализация массива выбранных элементов**:
– В обработчике события “ПриОткрытии” формы инициализируйте массив для хранения выбранных элементов:1С (Код)1234561C&НаКлиентеПроцедура ПриОткрытии(Отказ)ВыбранныеЭлементы = Новый Массив;Список.Параметры.УстановитьЗначениеПараметра("ВыбранныеЭлементы", ВыбранныеЭлементы);КонецПроцедурыТеперь ваш динамический список будет отображать элементы с пометками, и пользователи смогут отмечать или снимать отметки с элементов списка.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1273816/
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.