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