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