Такая задача, как получение таблицы значений для всех элементов текущего динамического списка, может появиться, когда надо каким-то образом обработать элементы динамического списка.
Например, может потребоваться:
- работать со списком по очереди и тогда после текущей активной задачи нужно переключаться на следующую
- вывести итоговые данные для всех элементов, что находятся сейчас в динамическом списке, например, сумму всех документов
Хотим предупредить, что для динамических списков большого размера (десятки тысяч строк и более) выполнять такую операцию не рекомендуется.
Платформа 1С 8 для динамических списков большого размера подгружает информацию только о тех строках, что сейчас находятся на виду (и еще соседние тоже для ускорения переключения на них). Благодаря этому оперативная память сервера 1С используется более оптимально.
При выполнении запроса ко всем строкам динамического списка в таблицу значений попадет информация обо всех них.
Но если есть уверенность в необходимости такой операции, используйте следующий код:
&НаСервере
Функция ПреобразованиеСпискаВТаблицуЗначений()
СхемаКомпоновки = Элементы.ТекущийДинамическийСписок.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
НастройкиКомпоновки = Элементы.ТекущийДинамическийСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ТаблицаРезультат = Новый ТаблицаЗначений;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
Возврат ТаблицаРезультат ;
КонецФункции
В приведенном программном коде основные переменные следующие:
- ТекущийДинамическийСписок - имя элемента формы с искомым динамическим списком.
- ТаблицаРезультат - переменная с таблицей значений, куда попадает все содержимое динамического списка