1C-CodeКак сделать → Как выгрузить колонку таблицы значений в массив

Как выгрузить колонку таблицы значений в массив в 1С

Методом ВыгрузитьКолонку. Чаще всего это делают, чтобы отдать список в параметр запроса и не ходить в базу по одной строке.

Код

Товары = ТЗ.ВыгрузитьКолонку("Номенклатура");

Запрос.УстановитьПараметр("СписокТоваров", Товары);
// в тексте запроса:  ГДЕ Цены.Номенклатура В (&СписокТоваров)

Что здесь важно

1. Дубли не убираются

Если товар встречается в таблице десять раз, в массиве он будет десять раз. Для параметра запроса это не ошибка, но лишний объём. Свернуть можно через соответствие или ОбщегоНазначенияКлиентСервер.СвернутьМассив из БСП.

2. Порядок сохраняется

Элементы идут в том же порядке, что строки таблицы. Это пригождается, когда надо сопоставить результат обратно по номеру.

3. Пустые значения тоже попадают

Незаполненные ссылки уедут в массив пустыми ссылками, а не пропадут. В параметре запроса они безобидны, а вот в цикле по массиву дадут обращение к пустой ссылке.

Где обычно спотыкаются

Массив в параметре запроса хорош до нескольких тысяч элементов. Дальше сам параметр становится тяжёлым, и правильнее положить значения во временную таблицу через ПОМЕСТИТЬ и соединиться с ней прямо в запросе.

Задача на это. Прочитать приём и применить его — разные умения. В тренажёре есть задача «Разбить список на порции для запроса»: что делать, когда список для параметра слишком длинный: порции нужного размера, и края не теряются. Решение проверяется скрытыми тестами, в том числе на краевых случаях, о которых в условии не сказано.

Решить задачу

Разобраться глубже

Другие вопросы

Как получить остатки на дату запросом в 1С Как программно провести документ в 1С Как избавиться от запроса в цикле в 1С Как добавить колонку в таблицу значений программно Как свернуть таблицу значений Как найти строку в таблице значений Как превратить массив в таблицу значений Как передать таблицу значений с сервера на клиент Как отобрать строки в таблице значений Как отсортировать таблицу значений Как записать движения регистра накопления программно Чем регистр остатков отличается от регистра оборотов Как контролировать остатки при проведении документа Как добавить реквизит расширением конфигурации Как сравнить две таблицы значений Какие бывают соединения в запросе 1С и чем отличаются Как выгрузить таблицу значений в Excel Чем дерево значений отличается от таблицы значений Как задать условное оформление таблицы на форме