Дополнительные свойства элемента управления ТаблицаФормы. Расширение предоставляет возможность доступа к свойствам динамического списка. В качестве значений для свойств ТекущаяСтрока, ТекущийРодитель и элемента коллекции, содержащейся в свойстве ВыделенныеСтроки, используются значения ссылок на объекты, которые содержит главная таблица динамического списка. Например, СправочникСсылка.Товары. Также эти свойства могут содержать значения типа СтрокаГруппировкиДинамическогоСписка. Если главная таблица не задана или является виртуальной таблицей регистра, в качестве значений будут использоваться числа, являющиеся идентификаторами строки в выборке динамического списка. Свойство ТекущиеДанные и метод ДанныеСтроки возвращают объект типа ДанныеФормыСтруктура. Их изменение не отразится на данных формы. Имена свойств этого объекта соответствуют путям компоновки данных для полей, отображаемых в таблице.
Полное описание, параметры и ограничения
Расширение таблицы формы для динамического списка (Form table extension for dynamic list)
Расширение таблицы формы для динамического списка (Form table extension for dynamic list)
Доступен, начиная с версии 8.2.
Свойства:
АвтоОбновление (AutoRefresh)
ВосстанавливатьТекущуюСтроку (RestoreCurrentRow)
ВыборГруппИЭлементов (ChoiceFoldersAndItems)
ДополнительныеПараметрыСоздания (AdditionalCreateParameters)
ОбновлениеПриИзмененииДанных (UpdateOnDataChange)
ОтображатьКорень (ShowRoot)
Период (Period)
ПериодАвтоОбновления (AutoRefreshPeriod)
РазрешитьВыборКорня (AllowRootChoice)
РазрешитьПолучатьНавигационнуюСсылкуТекущейСтроки (AllowGettingCurrentRowURL)
РодительВерхнегоУровня (TopLevelParent)
Методы:
ПолучитьИсполняемуюСхемуКомпоновкиДанных (GetPerformingDataCompositionScheme)
ПолучитьИсполняемыеНастройкиКомпоновкиДанных (GetPerformingDataCompositionSettings)
СоздатьЭлементыФормыПользовательскихНастроек (CreateUserSettingsFormItems)
События:
ОбработкаПолученияНавигационнойСсылки (URLGetProcessing)
ОбработкаПолученияСпискаНавигационныхСсылок (URLListGetProcessing)
ПередЗагрузкойПользовательскихНастроекНаСервере (BeforeLoadUserSettingsAtServer)
ПриЗагрузкеПользовательскихНастроекНаСервере (OnLoadUserSettingsAtServer)
ПриОбновленииСоставаПользовательскихНастроекНаСервере (OnUpdateUserSettingSetAtServer)
ПриПолученииДанныхНаСервере (OnGetDataAtServer)
ПриСохраненииПользовательскихНастроекНаСервере (OnSaveUserSettingsAtServer)
Описание:
Дополнительные свойства элемента управления ТаблицаФормы.
Расширение предоставляет возможность доступа к свойствам динамического списка.
В качестве значений для свойств ТекущаяСтрока, ТекущийРодитель и элемента коллекции, содержащейся в свойстве ВыделенныеСтроки, используются значения ссылок на объекты, которые содержит главная таблица динамического списка. Например, СправочникСсылка.Товары. Также эти свойства могут содержать значения типа СтрокаГруппировкиДинамическогоСписка.
Если главная таблица не задана или является виртуальной таблицей регистра, в качестве значений будут использоваться числа, являющиеся идентификаторами строки в выборке динамического списка.
Свойство ТекущиеДанные и метод ДанныеСтроки возвращают объект типа ДанныеФормыСтруктура. Их изменение не отразится на данных формы.
Имена свойств этого объекта соответствуют путям компоновки данных для полей, отображаемых в таблице.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.3.21.
Методическая информация
Практические примеры
Посмотреть исполняемые настройки после поиска в списке
На сервере получаем схему и настройки именно связанной таблицы. Настройки учитывают видимость колонок и установленный поиск, но сами ещё не являются выгрузкой строк.
Где и как запускать
Модуль собственной управляемой формы внешней обработки. Вставляйте готовые процедуры с директивами на уровне модуля; каждый урок — в отдельной копии формы.
Подготовка
В учебной базе 8.5.1.1343 создайте новую внешнюю обработку УчебныйСписок85, пустую управляемую основную форму. Режим совместимости — 8.3.19 или выше. Не переделывайте список рабочей конфигурации.
В реквизитах формы добавьте Список типа ДинамическийСписок. Создайте один элемент ТаблицаФормы с именем ТаблицаТоваров и путём к данным Список. Колонки вручную не добавляйте: их создаёт код. Это не ТаблицаЗначений и не коллекция строк для Добавить().
В событиях формы назначьте ПриСозданииНаСервере одноимённой процедуре из примера. Не используйте одновременно другой обработчик заполнения этого списка.
При открытии код задаёт произвольный запрос из четырёх константных строк. Основная таблица не указана; таблицы базы, файлы и внешние сервисы не используются. Запись данных отсутствует.
Каждый раз открывайте отдельную копию формы. Автоматическое сохранение настроек отключено: старый пользовательский отбор не должен вмешиваться в упражнение.
В Командах создайте ПосмотретьНастройки, действие ПосмотретьНастройки, перенесите команду на форму кнопкой. Для исследования поставьте точку останова в ПосмотретьНастройкиНаСервере после получения настроек.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Список.ПроизвольныйЗапрос = Истина;
Список.ОсновнаяТаблица = "";
Список.ДинамическоеСчитываниеДанных = Ложь;
Список.АвтоЗаполнениеДоступныхПолей = Истина;
Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь;
Список.ВидКлюча = ВидКлючаДинамическогоСписка.ЗначениеПоля;
КлючевыеПоля = Новый Массив;
КлючевыеПоля.Добавить("УчебныйНомер");
Список.ПоляКлюча = Новый ФиксированныйМассив(КлючевыеПоля);
Список.ТекстЗапроса = "ВЫБРАТЬ
| 1 КАК УчебныйНомер,
| ""Книга"" КАК Наименование,
| ""Канцелярия"" КАК Категория,
| 3 КАК Количество,
| 250 КАК Цена
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ 2, ""Ручка"", ""Канцелярия"", 1, 30
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ 3, ""Чай"", ""Продукты"", 2, 150
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ 4, ""Вода"", ""Продукты"", 0, 70";
Элементы.ТаблицаТоваров.ТолькоПросмотр = Истина;
Условие = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Условие.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Количество");
Условие.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
Условие.ПравоеЗначение = 0;
Условие.Использование = Истина;
ПорядокЦены = Список.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ПорядокЦены.Поле = Новый ПолеКомпоновкиДанных("Цена");
ПорядокЦены.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ПорядокЦены.Использование = Истина;
Для Каждого ИмяПоля Из СтрРазделить("УчебныйНомер,Наименование,Категория,Количество,Цена", ",") Цикл
Колонка = Элементы.Добавить("Товары" + ИмяПоля, Тип("ПолеФормы"), Элементы.ТаблицаТоваров);
Колонка.Вид = ВидПоляФормы.ПолеВвода;
Колонка.ПутьКДанным = "Список." + ИмяПоля;
Колонка.Заголовок = ИмяПоля;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПосмотретьНастройки(Команда)
ПосмотретьНастройкиНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПосмотретьНастройкиНаСервере()
ИсполняемаяСхема = Элементы.ТаблицаТоваров.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
ИсполняемыеНастройки = Элементы.ТаблицаТоваров.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
Сообщить(ТипЗнч(ИсполняемаяСхема) = Тип("СхемаКомпоновкиДанных"));
Сообщить(ТипЗнч(ИсполняемыеНастройки) = Тип("НастройкиКомпоновкиДанных"));
КонецПроцедуры
Разбор по шагам
При открытии установлен отбор Количество > 0 и цена по убыванию. Затем пользователь может изменить поиск в самой таблице.
Кнопка обращается к серверу с контекстом формы. Методы расширения вызываются у ТаблицаТоваров, не у реквизита Список.
Проверяем типы схемы и настроек, затем исследуем Отбор и Порядок в отладчике. Получение объектов не выполняет полный отчёт и не сохраняет файл.
Как проверить результат
До поиска показаны Книга, Чай, Ручка; Вода не проходит отбор.
Найдите Книга стандартным поиском таблицы, нажмите Посмотреть настройки: две проверки дают Истина. В отладчике исследуйте ИсполняемыеНастройки.Отбор; результат должен учитывать поиск.
После очистки поиска снова видны три строки. Число строк не выводится через Количество динамического списка.
Ожидаемый результат
Снимок реальной схемы и настроек отображения для диагностики учебной таблицы.
На что обратить внимание
Схема и настройки не равны массиву всех строк. Не заявляйте полную выгрузку на основании этих двух методов.
Обычный запрос по ТекстЗапроса не учитывает автоматически поиск и видимость колонок таблицы.
Всё содержимое пользовательских настроек может быть сложнее одного условия; исследуйте объект, а не ищите текст поисковой строки склейкой.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.