Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 09:19

Выгрузка табличной части с отбором 1с8.2

Автор ABES, 11 янв 2013, 12:36

0 Пользователей и 1 гость просматривают эту тему.

ABES

Добрый день !
Хочу поместить табличную часть из формы отбора с товарами, где количество>0, во временное хранилище. Делаю так:
&НаСервере
Процедура ЗаписатьПодборВХранилище();
Отбор = Новый Структура;
Отбор.Вставить("ВидСравнения", ВидСравнения.Больше);
Отбор.Вставить("Количество", 0);
    ОтборУсловие=Новый Структура("Отбор",Отбор);
ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
КонецПроцедуры

в итоге пишет
Ошибка при вызове метода контекста (Выгрузить)
ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
по причине:
Неизвестная колонка

А как правильно задать отбор ?

Dethmontt

Удали сначала из таблицы все строки не соответствующие отбору и сохраняй всю таблицу во временное хранилище
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

MihMyh

Добрый день,

Синтакс-помощник пишет на метод "Выгрузить":
Выгрузить(<ПараметрыОтбора>, <Колонки>)
Параметры:
<ПараметрыОтбора> (необязательный)

Тип: Структура.
Ключ структуры - идентификатор колонки, а значение структуры - значение отбора.

скорее всего в данном случае возможен отбор только по равенству значения. Кстати метод выгрузить возвращает тип "ТаблицаЗначений", а не "ТабличнаяЧасть". Как вариант можно объявить новую таблицу значений и при обходе добавлять в неё строки по условию.

Klyacksa

ЦитироватьВариант синтаксиса: Выгрузить по отбору
Синтаксис:

Выгрузить(<ПараметрыОтбора>, <Колонки>)
Параметры:

<ПараметрыОтбора> (необязательный)
Тип: Структура.
Ключ структуры - идентификатор колонки, а значение структуры - значение отбора.

Тип=Структура, а не Отбор. Элементы структуры имеют только пару Ключ+Значение, то есть отбор можно наложить только конкретными значениями колонок.
Вы же пытаетесь наложить отбор на две колонки: "ВидСравнения" и "Количество", ествественно, ВидСравнения он не находит.

Тут могут быть несколько вариантов, например отобрать нужные строки отдельно, и только потом с ними работать, или удалить ненужные (как советовали выше, но имхо не очень хороший вариант - Вам же наверняка еще нужна будет сама таблица Товаров)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

ABES

Цитата: Dethmontt от 11 янв 2013, 12:52
Удали сначала из таблицы все строки не соответствующие отбору и сохраняй всю таблицу во временное хранилище
ОтборУсловие=Новый Структура("Количество",1);
   ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
проходит на ура. во временное хранилище попадают все записи, где кол-во=1, а как задать условие >0 ?
Добавлено: 11 янв 2013, 13:23


Цитата: Klyacksa от 11 янв 2013, 13:02ОтборУсловие=Новый Структура("Количество",1);
   ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);

ОтборУсловие=Новый Структура("Количество",1);
ПоместитьВоВременноеХранилище(Товары.Выгрузить(ОтборУсловие),АдресТоваровДокумента);
Это то, что нужно. Помещает во ВХ все записи, где кол-во=1. Но как правильно установить условие отбора колво>0 ?

Klyacksa

Никак.
ИЛИ ДО помещения в хранилище удалить все строки с 0, а потом оставшиеся кидать в хранилище
ИЛИ создать новую таблицу, перекидать в нее все нужные строки, и уже новую таблицу кидать в хранилище
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Похожие темы (5)

Рейтинг@Mail.ru

Поиск