Имя: Пароль:
1C
1С v8
Как выполнить и вывести запрос в ТаблицуЗначений с использованием компановки?
,
0 denisnursery2101
 
03.12.13
14:16
Функция ПолучитьРезультат (Отчет) Экспорт
// Компновка данных
ТабличныйДокумент=Новый ТабличныйДокумент;
СКД= ПолучитьМакет ("ОсновнаяСхемаКомпоновкиДанных");
текКомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
текНастройки = Отчет. КомпоновщикНастроек. Настройки;  
текМакет = текКомпоновщикМакета. Выполнить (СКД, текНастройки,, , Тип ("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
текПроцессор = Новый ПроцессорКомпоновкиДанных;
текПроцессор. Инициализировать (текМакет, Неопределено, Неопределено) ;
текПроцессорВывода  = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТаблицаЗначений=Новый ТаблицаЗначений ();
текПроцессорВывода. УстановитьОбъект (ТаблицаЗначений) ;
текПроцессорВывода. Вывести (текПроцессор) ;
....
....
КонецФункции
1 Галахад
 
гуру
03.12.13
14:19
И чо?
2 Maxus43
 
03.12.13
14:23
....
ТаблицаЗначений.ВыбратьСтроку();
....
КонецФункции
3 denisnursery2101
 
03.12.13
14:24
(1) Как сделать так чтобы результат запроса вывелся в таблицу? (запрос описан правильно!)
Где здесь может быть ошибка?
4 Галахад
 
гуру
03.12.13
14:25
(3) В таблицу на форме?
5 denisnursery2101
 
03.12.13
14:26
(4) Нет, в "ТаблицаЗначений"
6 denisnursery2101
 
03.12.13
14:27
(2) не помогло таблицазначений - пустая
7 Fragster
 
модератор
03.12.13
14:28
возврат ТаблицаЗначений
8 denisnursery2101
 
03.12.13
14:29
(7) Я через отладку смотрел там пусто...
Бывает так что в компоновке один из параметров не включен и изза этого запрос не выводиться?
9 Галахад
 
гуру
03.12.13
14:34
(8) Бывает. Ты в табличный документ для проверки выведи.
10 Maxus43
 
03.12.13
14:51
ещё бывает что запрос в схеме есть, а настроек схемы нет. непонятно что выводить
11 shlyahtich
 
23.12.13
20:54
Иногда возникает задача отчет запустить из УФ
с параметрами и т.д.
когда разберешься - то все просто


<1c
    ФормаОтчета=ПолучитьФорму("Отчет.НашОтчет.ФормаОтчета.ФормаОтчетаОтчета");
    ФормаОтчета.Заголовок = "Код:"+ЭтаФормаОтчета.Элементы.НашДокумент.ТекущиеДанные.Товары.Код+" Товары:"+ЭтаФормаОтчета.Элементы.НашДокумент.ТекущиеДанные.Товары.Наименование;
    СхемаКомпоновкиДанных = ФормаОтчета.ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки=СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Товары",ЭтаФорма.Элементы.НашДокумент.ТекущиеДанные.Товары.Ссылка);
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки);
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
    
    ДокументРезультат=ФормаОтчета.ЭлементыФормы.Результат;
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    ПроцессорВывода.ЗакончитьВывод();
    
    ФормаОтчета.ОткрытьМодально();
1c/>


Это как бы расшифровка - но вывести так можно любой отчет на СКД

а вот старым способом только вот так постенько можно

<1c

Запрос = Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    Номенклатура.Ссылка КАК Номенклатура
                 |ИЗ
                 |    Справочник.Номенклатура КАК Номенклатура
                 |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Расшифровки КАК Расшифровка
                 |        ПО Номенклатура.Расшифровка = Расшифровки.Ссылка
                 |ГДЕ
                 |    Расшифровки.Ссылка = &Расшифровка";
    Запрос.УстановитьПараметр("Расшифровка",ЭтаФорма.Элементы.Товары.ТекущиеДанные.Расшифровка.Ссылка);            
    Запрос.Выполнить().Выгрузить().ВыбратьСтроку("Код:"+ЭтаФорма.Элементы.ТОвары.ТекущиеДанные.ЕНС.Код+" ЕНС:"+ЭтаФорма.Элементы.Товары.ТекущиеДанные.Расшифровка.Наименование+"""");


1c/>