Динамическими списками называются списки, использующие при обращении к базе данных механизм динамической выборки. Особенностью механизма динамической выборки является то, что данные считываются не полностью, а блоками, уменьшая время загрузки всего списка и размер отводимой для него памяти. Примерами динамических списков являются списки справочников, документов, регистров.
При считывании блока данных динамический список выполняет обращение к базе данных. Табличное поле для уменьшения объема выбираемых данных управляет набором полей, считываемых из базы данных. Считываются только те поля таблицы, которые связаны с соответствующими видимыми колонками табличного поля, поля, по которым выполняется упорядочивание, и поля, используемые табличным полем для отображения картинки и контроля удаления (поля ЭтоГруппа, ПометкаУдаления).
Отметим следующие особенности работы табличного поля с колонками динамических списков:
Следовательно, связанный с табличным полем динамический список содержит в себе только те поля базы данных, которые связаны с видимыми колонками табличного поля, а также поля, необходимые для отображения картинки и других служебных целей.
Иногда может потребоваться обратиться к колонкам динамического списка, не связанными с видидимыми только колонки Номенклатура и Сумма (будет заполняться при обработке события табличного поля ПриВыводеСтроки). Так как по умолчанию табличное поле устанавливает в динамический список только видимые колонки, то динамический список не будет содержать колонки Количество и Цена. Следовательно, при обработке события ПриВыводеСтроки возникнет ошибка времени выполнения. Для решения этой проблемы предлагаются следующие способы:
Процедура ПриОткрытии() СправочникСписок.Колонки.Добавить("Цена", Ложь); СправочникСписок.Колонки.Добавить("Количество", Ложь); КонецПроцедуры