Имя: Пароль:
1C
 
v8: Как заполнить Табличное Поле из Таблицы Значений?
0 Casper21
 
04.12.15
16:05
Функция ТаблицаРезультатаЗапроса() Экспорт
    Запрос = Новый Запрос;      
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РегСклад.Номенклатура КАК Наименование,
    |    РегСклад.КоличествоОстаток КАК Количество,
    |    РТУ.ЕдиницаИзмерения КАК ЕдиницыИзмерения,
    |    РТУ.Сумма КАК Сума,
    |    Доставка.Перевозчик КАК Перевозчик,
    |    Доставка.Отделение КАК НомерОтделения,
    |    ВЫБОР
    |        КОГДА Доставка.ВидОплаты = ЗНАЧЕНИЕ(Перечисление.ВидыОплаты.Наложенный)
    |            ТОГДА ""H""
    |        ИНАЧЕ NULL
    |    КОНЕЦ КАК НалПлатеж,
    |    Доставка.ТелефонПолучателя КАК Телефон,
    |    Доставка.АдресДоставки КАК АдресДоставки,
    |    Доставка.КонтактноеЛицоПолучателя КАК Получатель,
    |    РТУ.Номер КАК Номер,
    |    РТУ.Дата КАК Дата,
    |    РТУ.ЗаказПокупателяСсылка.Ссылка Как ЗаказП
    |ИЗ
    |    (ВЫБРАТЬ
    |        ТоварыКПередачеСоСкладовОстатки.Номенклатура КАК Номенклатура,
    |        ТоварыКПередачеСоСкладовОстатки.Склад КАК Склад,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи КАК ДокументПередачи,
    |        ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток КАК КоличествоОстаток,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Ссылка КАК ДокументПередачиСсылка,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Номер КАК ДокументПередачиНомер,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Дата КАК ДокументПередачиДата,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументРезерва.Ссылка КАК ДокументРезерваСсылка,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Грузоотправитель КАК ДокументПередачиГрузоотправитель,
    |        ТоварыКПередачеСоСкладовОстатки.ДокументПередачи.Грузополучатель КАК ДокументПередачиГрузополучатель
    |    ИЗ
    |        РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&ДатаВибору, ) КАК ТоварыКПередачеСоСкладовОстатки
    |    ГДЕ
    |        ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток > 0) КАК РегСклад
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            РеализацияТоваровУслугТовары.Ссылка.Ссылка КАК Ссылка,
    |            РеализацияТоваровУслугТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |            РеализацияТоваровУслугТовары.Количество КАК Количество,
    |            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |            РеализацияТоваровУслугТовары.Сумма КАК Сумма,
    |            РеализацияТоваровУслугТовары.ЗаказПокупателя.Ссылка КАК ЗаказПокупателяСсылка,
    |            РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
    |            РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата
    |        ИЗ
    |            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары) КАК РТУ
    |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |                Доставка.ЗаказПокупателя КАК ЗаказПокупателя,
    |                Доставка.Перевозчик КАК Перевозчик,
    |                Доставка.Отделение КАК Отделение,
    |                Доставка.ВидОплаты КАК ВидОплаты,
    |                Доставка.ТелефонПолучателя КАК ТелефонПолучателя,
    |                Доставка.АдресДоставки КАК АдресДоставки,
    |                Доставка.КонтактноеЛицоПолучателя КАК КонтактноеЛицоПолучателя
    |            ИЗ
    |                РегистрСведений.Доставка КАК Доставка) КАК Доставка
    |            ПО РТУ.ЗаказПокупателяСсылка = Доставка.ЗаказПокупателя
    |        ПО РегСклад.ДокументПередачи.Ссылка = РТУ.Ссылка.Ссылка
    |            И РегСклад.Номенклатура = РТУ.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номер,
    |    Дата";
    Запрос.УстановитьПараметр("ДатаВибору",ДатаВибору);
    РезТабл = Запрос.Выполнить().Выгрузить();
    Возврат  РезТабл;
    
КонецФункции

Но пустоЙ!!! Что делать??как передать в табличное поле формы данные с ТС.
Например только 4 поля нужно

Процедура ЗаполнитьНажатие(Элемент)
    ТЗТовари.Очистить();    
    РезультатЗЗапросаТоваров =ТаблицаРезультатаЗапроса();
ЭлементыФормы.ТЗТовариПоле.Значение = РезультатЗЗапросаТоваров;
    ЭлементыФормы.ТЗТовариПоле.СоздатьКолонки();

    
    
КонецПроцедуры
1 Casper21
 
04.12.15
16:47
Для Каждого РезультатИзТЗ Из РезультатЗЗапросаТоваров Цикл
        ЗначениеТЗТоваров = ТЗТовари.Добавить();
        ЗначениеТЗТоваров.Товар = РезультатИзТЗ.Наименование ;
        ЗначениеТЗТоваров.Кількість = РезультатИзТЗ.Количество;
        ЗначениеТЗТоваров.Сума = РезультатИзТЗ.Сума;
        ЗначениеТЗТоваров.ЗамовленняТов = РезультатИзТЗ.ЗаказП;

    КонецЦикла;
2 Михаил Козлов
 
04.12.15
17:03
Если ТЗТовари у Вас табличная часть или таблица значений (реквизит формы) (т.е. колонки ТЗТовари есть и других не должно быть) и ТЗТовариПоле привязано к ТЗТовари, то колонки создавать не нужно.
Достаточно просто ТЗТовари = ТаблицаРезультатаЗапроса();
Независимо от того, куда вы едете — это в гору и против ветра!