Вывод характеристик и их значений в динамический список

22.02.19

Разработка - Механизмы платформы 1С

Если в запросе динамического списка используется конструкция {ХАРАКТЕРИСТИКИ ...}, то как вывести на форму колонки с характеристиками?

Скачать исходный код

Наименование Файл Версия Размер
Характеристики в динамическом списке.dt
.dt 45,14Kb
10
.dt 45,14Kb 10 Скачать
Поиск по форуму ответов не дал. Пришлось разбираться самому.
Динамический список строится по произвольному запросу:
ВЫБРАТЬ
	НашиОбъекты.Ссылка КАК Ссылка
ИЗ
	Справочник.НашиОбъекты КАК НашиОбъекты
{ХАРАКТЕРИСТИКИ
	ТИП(Справочник.НашиОбъекты)
	ВИДЫХАРАКТЕРИСТИК ПланВидовХарактеристик.СвойстваНашегоОбъекта
	ПОЛЕКЛЮЧА Ссылка
	ПОЛЕИМЕНИ Наименование
	ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
	ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствНашегоОбъекта
	ПОЛЕОБЪЕКТА НашОбъект
	ПОЛЕВИДА Свойство
	ПОЛЕЗНАЧЕНИЯ ЗначениеСвойства }

В свойствах реквизита формы мы видим только одно поле:

 

Его же мы видим и в элементах формы

Динамический список это по сути СКД и у него есть КомпоновщикНастроек. Необходимо в КомпоновщикеНастроек в выбранные поля добавить "свойства" нашего справочника, а затем у элемента формы "Список" создать подчиненные элементы, ПутьКДанным которых будет указывать на добавленные выбранные поля КомпоновщикаНастроек.

Список.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")).Поле = Новый ПолеКомпоновкиДанных("Ссылка." + Свойство);
Элементы.Добавить("Список" + Свойство, Тип("ПолеФормы"), Элементы.Список).ПутьКДанным = "Список.Ссылка." + Свойство;

В результате в динамическом списке отображаются колонки со значениями свойств.

Во вложение маленькая демо-база для платформы 8.3.12.1714, в которой демонстрируется работа данного механизма.

характеристики запрос

См. также

Сервисы интеграции без Шины и интеграции

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    3105    dsdred    16    

63

Как готовить и есть массивы

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    7201    YA_418728146    25    

69

Планы обмена VS История данных

Перенос данных 1C Механизмы платформы 1С Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    7624    dsdred    36    

115

1С-ная магия

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    19961    SeiOkami    46    

124

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Системный администратор Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    13875    human_new    27    

77

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    10225    YA_418728146    7    

147

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

20.08.2023    6943    sebekerga    54    

99
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. w.r. 645 22.02.19 20:19 Сейчас в теме
Нет конфигуратора под рукой - в динамическом списке СписокСвойств это не то, что было создано программно на форме?
2. kasper076 106 23.02.19 09:15 Сейчас в теме
(1) Если имеется в виду элемент формы "СписокСвойств" со скрина, то этот элемент присутствует в демо базе.
Если же речь идёт об элементах формы отображающих данные динамического списка, то им нужно указать ПутьКДанным. А т.к. данных свойств у реквизита формы нет, то это эти элементы просто не отображаются в режиме предприятия.
3. w.r. 645 25.02.19 12:00 Сейчас в теме
(2) Тогда это недоработки платформы. Возможно добавлять характеристики в поля формы появится в будущих версиях платформы
4. Alexwarsis 18.04.22 13:45 Сейчас в теме
А Свойство это наименование элемента? в коде. я имею элемента плана вида характеристик
5. taramaz 63 11.10.23 05:00 Сейчас в теме
Всё круто. Работает. Но вот что, если в имени характеристики есть пробел. Тогда работать перестаёт. Уже всю головушку сломал.

В этом случае имя реквизита "СписокСвойство 3"
Путь к данным "Список.Ссылка.Свойство 3"
и всё ломается.

Недопустимое значение параметра (параметр номер '1')
6. taramaz 63 11.10.23 05:05 Сейчас в теме
Иду в сторону переименования Наименования планаВидовХарактеристик в "Идентификатор" и добавления нового реквизита "НаименованиеПолное" например.
И при записи нового элемента ПВХ генерим идентификатор без пробелов, скобок и прочего.
Что-то похожее в формулах в ЗУПе
7. taramaz 63 11.10.23 05:19 Сейчас в теме
Сделал так


//Есть такая ТЗ у меня там
ТЗ = ТЗСоответствияРеквизитов.Выгрузить();	
ТЗ.Свернуть("Характеристика,НаименованиеПолное");
	
Для каждого СтрТЗ из ТЗ цикл
	Попытка
	Список.КомпоновщикНастроек.Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")).Поле = Новый ПолеКомпоновкиДанных("Ссылка." + СтрТЗ.Характеристика);
	НовЭлемент = Элементы.Добавить("Список" + СтрТЗ.Характеристика, Тип("ПолеФормы"), Элементы.Список);
	НовЭлемент.ПутьКДанным = "Список.Ссылка." + СтрТЗ.Характеристика;
	НовЭлемент.Заголовок = СтрТЗ.НаименованиеПолное;
	
	Исключение
	КонецПопытки;
	
	
КонецЦикла;
Показать


А наименование характеристики "Характеристика"+Код
Оставьте свое сообщение