Тип: ПоляНабораДанныхСхемыКомпоновкиДанных. Содержит описания полей (набора данных) динамического списка. Свойства Роль, ВыражениеПредставления, НаборДанныхПроверкиИерархии и ПараметрНабораДанныхПроверкиИерархии не поддерживаются в динамическом списке. Кроме того, при установленной основной таблице: для многих стандартных полей (например, Ссылка, Наименование, ПометкаУдаления) не поддерживается установка значение свойства Поле в Истина, для ключевых полей, стандартных полей сортировки и поля Родитель дополнительно не поддерживается установка значений свойств Условие и Порядок в Истина.
Полное описание, параметры и ограничения
ДинамическийСписок.Поля (DynamicList.Fields)
ДинамическийСписок (DynamicList)
Поля (Fields)
Доступен, начиная с версии 8.3.19 (в режиме совместимости с версией 8.3.19 и последующими).
Использование:
Только чтение.
Описание:
Тип: ПоляНабораДанныхСхемыКомпоновкиДанных.
Содержит описания полей (набора данных) динамического списка.
Свойства Роль, ВыражениеПредставления, НаборДанныхПроверкиИерархии и ПараметрНабораДанныхПроверкиИерархии не поддерживаются в динамическом списке.
Кроме того, при установленной основной таблице:
для многих стандартных полей (например, Ссылка, Наименование, ПометкаУдаления) не поддерживается установка значение свойства Поле в Истина,
для ключевых полей, стандартных полей сортировки и поля Родитель дополнительно не поддерживается установка значений свойств Условие и Порядок в Истина.
Доступность:
Сервер, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.19 (в режиме совместимости с версией 8.3.19 и последующими).
Методическая информация
Практические примеры
Запретить цену в группировке и сортировке, оставив её видимой
Современный способ настройки — свойства описания поля. Это ограничение возможностей редактора списка, не запрет чтения цены.
Где и как запускать
Модуль собственной управляемой формы внешней обработки. Вставляйте готовые процедуры с директивами на уровне модуля; каждый урок — в отдельной копии формы.
Подготовка
В учебной базе 8.5.1.1343 создайте новую внешнюю обработку УчебныйСписок85, пустую управляемую основную форму. Режим совместимости — 8.3.19 или выше. Не переделывайте список рабочей конфигурации.
В реквизитах формы добавьте Список типа ДинамическийСписок. Создайте один элемент ТаблицаФормы с именем ТаблицаТоваров и путём к данным Список. Колонки вручную не добавляйте: их создаёт код. Это не ТаблицаЗначений и не коллекция строк для Добавить().
В событиях формы назначьте ПриСозданииНаСервере одноимённой процедуре из примера. Не используйте одновременно другой обработчик заполнения этого списка.
При открытии код задаёт произвольный запрос из четырёх константных строк. Основная таблица не указана; таблицы базы, файлы и внешние сервисы не используются. Запись данных отсутствует.
Каждый раз открывайте отдельную копию формы. Автоматическое сохранение настроек отключено: старый пользовательский отбор не должен вмешиваться в упражнение.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Список.ПроизвольныйЗапрос = Истина;
Список.ОсновнаяТаблица = "";
Список.ДинамическоеСчитываниеДанных = Ложь;
Список.АвтоЗаполнениеДоступныхПолей = Истина;
Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь;
Список.ВидКлюча = ВидКлючаДинамическогоСписка.ЗначениеПоля;
КлючевыеПоля = Новый Массив;
КлючевыеПоля.Добавить("УчебныйНомер");
Список.ПоляКлюча = Новый ФиксированныйМассив(КлючевыеПоля);
Список.ТекстЗапроса = "ВЫБРАТЬ
| 1 КАК УчебныйНомер,
| ""Книга"" КАК Наименование,
| ""Канцелярия"" КАК Категория,
| 3 КАК Количество,
| 250 КАК Цена
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ 2, ""Ручка"", ""Канцелярия"", 1, 30
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ 3, ""Чай"", ""Продукты"", 2, 150
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ 4, ""Вода"", ""Продукты"", 0, 70";
Элементы.ТаблицаТоваров.ТолькоПросмотр = Истина;
ОписаниеЦены = Список.Поля.Найти("Цена");
Если ОписаниеЦены = Неопределено Тогда
ВызватьИсключение "В описании списка не найдено поле Цена";
КонецЕсли;
ОписаниеЦены.Заголовок = "Цена, руб.";
ОписаниеЦены.ОграничениеИспользования.Группировка = Истина;
ОписаниеЦены.ОграничениеИспользования.Порядок = Истина;
ОписаниеЦены.ОграничениеИспользования.Условие = Ложь;
ОписаниеЦены.ОграничениеИспользования.Поле = Ложь;
ОписаниеЦены.Оформление.УстановитьЗначениеПараметра("Формат", "ЧДЦ=2");
Сообщить(ОписаниеЦены.ПутьКДанным = "Цена");
Сообщить(ОписаниеЦены.ОграничениеИспользования.Группировка);
Сообщить(ОписаниеЦены.ОграничениеИспользования.Порядок);
Сообщить(Не ОписаниеЦены.ОграничениеИспользования.Условие);
Сообщить(Не ОписаниеЦены.ОграничениеИспользования.Поле);
Для Каждого ИмяПоля Из СтрРазделить("УчебныйНомер,Наименование,Категория,Количество,Цена", ",") Цикл
Колонка = Элементы.Добавить("Товары" + ИмяПоля, Тип("ПолеФормы"), Элементы.ТаблицаТоваров);
Колонка.Вид = ВидПоляФормы.ПолеВвода;
Колонка.ПутьКДанным = "Список." + ИмяПоля;
Колонка.Заголовок = ИмяПоля;
КонецЦикла;
КонецПроцедуры
Разбор по шагам
Найти возвращает описание поля по пути к данным. Не подменяем всю коллекцию Поля новым объектом: свойство только для чтения, элементы настраиваются.
Истина у Группировка/Порядок означает запрет использования в этих настройках. Ложь у Поле/Условие оставляет выбор поля и отбор доступными.
Редактор списка должен убрать цену из доступных группировок и сортировок, но показывать значение и разрешать отбор. Это разные функции.
Как проверить результат
Пять проверок дают Истина.
В настройках списка Цена не предлагается для новой группировки и сортировки, но доступна для отбора. В строке Книги остаётся 250,00.
Ожидаемый результат
Адресное ограничение редактора списка при сохранении показов цены.
На что обратить внимание
Ограничения СКД не являются RLS и не защищают секретные поля.
Для стандартных и ключевых полей при основной таблице есть дополнительные ограничения платформы; этот урок использует собственный запрос без основной таблицы.
Не используйте Роль и ВыражениеПредставления описания поля в этом списке: они не поддерживаются.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.