Как получить "выведенные" строки Динамического списка, без переформирования повторного запроса?
Найденные решения
(1) если нужно получение не автоматически по обновлению списка, то как вариант:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Адрес = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("АдресХранилища",Адрес);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПолучитьСтроки(Команда)
Строки = ПолучитьСтрокиНаСервере(Адрес);
СписокСтрок.ЗагрузитьЗначения(Строки);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСтрокиНаСервере(Адрес)
Результат = Неопределено;
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
Результат = ПолучитьИзВременногоХранилища(Адрес);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
Перем Адрес;
Если Настройки.ДополнительныеСвойства.Свойство("АдресХранилища", Адрес) Тогда
ПоместитьВоВременноеХранилище(Строки.ПолучитьКлючи(),Адрес);
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
ТестДинСписок.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) если нужно получение не автоматически по обновлению списка, то как вариант:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Адрес = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("АдресХранилища",Адрес);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПолучитьСтроки(Команда)
Строки = ПолучитьСтрокиНаСервере(Адрес);
СписокСтрок.ЗагрузитьЗначения(Строки);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСтрокиНаСервере(Адрес)
Результат = Неопределено;
Если ЭтоАдресВременногоХранилища(Адрес) Тогда
Результат = ПолучитьИзВременногоХранилища(Адрес);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
Перем Адрес;
Если Настройки.ДополнительныеСвойства.Свойство("АдресХранилища", Адрес) Тогда
ПоместитьВоВременноеХранилище(Строки.ПолучитьКлючи(),Адрес);
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
ТестДинСписок.epf
(5)Без повторного выполнения запроса - никак.
Сделайте как работает платформа:
и накапливайте в МассивСсылок выведенные строки всех итераций.
Если данные не объектные, то придется поизвращаться с ключами записей/набором уникальных выведенных значений.
Сделайте как работает платформа:
Выбрать Первые 50
.........
Из ТАБЛИЦА
ГДЕ
НЕ ССЫЛКА В (&МассивССЫЛОК)
УПОРЯДОЧИТЬ ПО
ССЫЛКА
и накапливайте в МассивСсылок выведенные строки всех итераций.
Если данные не объектные, то придется поизвращаться с ключами записей/набором уникальных выведенных значений.
(10) а проверьте настройки вашего Списка включена ли там возможность выделения сразу нескольких строк
это в конструкторе формы, свойства элемента Список,
должно быть
Режим выделения = Множественный
в процессе работы с клавишей Shift или Ctrl выделяете нужные строчки и нажимаете кнопку Обработать (или что там у вас)
это в конструкторе формы, свойства элемента Список,
должно быть
Режим выделения = Множественный
в процессе работы с клавишей Shift или Ctrl выделяете нужные строчки и нажимаете кнопку Обработать (или что там у вас)
(19) Ну тогда вам, наверное, нужны не выведенные строки, а строки в соответствии с пользовательскими отборами.
Схема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ТипГенератора = Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений");
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки,,, ТипГенератора);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Показать
(22) Ок, из этих 300000 на экран вывелись 30 строк, можно сказать, случайным образом. Вы же понимаете, что в этих 30 строках нет никакого смысла. Потом, например, пользователь прокрутит список на 1 строку вниз и в списке отображаемых строк окажется только одна строка.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот