1C-Code → Как сделать → Как выгрузить колонку таблицы значений в массив
Методом ВыгрузитьКолонку. Чаще всего это делают, чтобы отдать список в параметр запроса и не ходить в базу по одной строке.
Товары = ТЗ.ВыгрузитьКолонку("Номенклатура");
Запрос.УстановитьПараметр("СписокТоваров", Товары);
// в тексте запроса: ГДЕ Цены.Номенклатура В (&СписокТоваров)
Если товар встречается в таблице десять раз, в массиве он будет десять раз. Для параметра запроса это не ошибка, но лишний объём. Свернуть можно через соответствие или ОбщегоНазначенияКлиентСервер.СвернутьМассив из БСП.
Элементы идут в том же порядке, что строки таблицы. Это пригождается, когда надо сопоставить результат обратно по номеру.
Незаполненные ссылки уедут в массив пустыми ссылками, а не пропадут. В параметре запроса они безобидны, а вот в цикле по массиву дадут обращение к пустой ссылке.
Массив в параметре запроса хорош до нескольких тысяч элементов. Дальше сам параметр становится тяжёлым, и правильнее положить значения во временную таблицу через ПОМЕСТИТЬ и соединиться с ней прямо в запросе.
Задача на это. Прочитать приём и применить его — разные умения. В тренажёре есть задача «Разбить список на порции для запроса»: что делать, когда список для параметра слишком длинный: порции нужного размера, и края не теряются. Решение проверяется скрытыми тестами, в том числе на краевых случаях, о которых в условии не сказано.