Имя: Пароль:
1C
1С v8
Прямой вывод отчёта из документа
0 Mamont_SXI
 
22.01.12
11:47
Привет всем!
Есть свой написанный отчёт на СКД по документу Поступление товаров и услуг с отбором выбора документа и параметром "дата документа", как сделать что бы из самого документа я мог при нажатии получить результат отчёта. То есть как будто я выбрал необходимые параметры и сформировал.

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

начало такое
       Отчет = Отчеты.ОтчётПоПоследнемуПриходу.Создать();
   Форма = Отчет.ПолучитьФорму();
   Форма.Открыть();

Как мне передать значения?
в програмировании новичёк
1 ДенисЧ
 
22.01.12
11:48
форма.Параметр1 = Значение1;
....
Форма.Открыть()
2 Mamont_SXI
 
22.01.12
11:50
щас попробую
3 Mamont_SXI
 
22.01.12
11:53
чёт не катит
4 ДенисЧ
 
22.01.12
11:54
а у отчёта эти реквизиты есть? Или они просто на форме выложены?
5 Mamont_SXI
 
22.01.12
11:54
мне на одном сайте писали что то типа

СКД = ПолучитьОбщийМакет("МакетСКД");
НастройкаСКД = СКД.НастройкиПоУмолчанию;
НастройкаСКД.ПараметрыДанных.Элементы[0].Значение = Дата;
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = Компоновщик.Выполнить(СКД, НастройкаСКД);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);
ТабДок = ЭлементыФормы.ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличны­йДокумент;
ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);

только я в этом никак не разберусь
6 Mamont_SXI
 
22.01.12
11:56
у отчёта это в скд один параметр "КонецПериода" и условие отбора "ДокументПоступления"
7 Mamont_SXI
 
22.01.12
11:56
щас запрос отчёта выложу
8 Mamont_SXI
 
22.01.12
11:58
ВЫБРАТЬ
   ПоступлениеТоваровУслугТовары.Ссылка КАК ДокументПоступления,
   ПоступлениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
   ПоступлениеТоваровУслугТовары.Номенклатура,
   ПоступлениеТоваровУслугТовары.Цена,
   ПоступлениеТоваровУслугТовары.ЦенаБезТранспортныхРасходов,
   ПоступлениеТоваровУслугТовары.ПредыдущаяЦена,
   ПоступлениеТоваровУслугТовары.Ссылка.Дата КАК ДатаДок,
   ВложенныйЗапрос.ДокументЗакупки КАК ДокументЗакупки,
   ВложенныйЗапрос.ДокументЗакупкиДата КАК ДокументЗакупкиДата,
   ВложенныйЗапрос.ЦенаПоступления,
   ВЫБОР
       КОГДА ВложенныйЗапрос.ЦенаПоступления ЕСТЬ NULL
           ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
       ИНАЧЕ ВложенныйЗапрос.ЦенаПоступления
   КОНЕЦ КАК ЦенаПредыдущегоПоступления,
   ВЫБОР
       КОГДА ВложенныйЗапрос.ДокументЗакупки ЕСТЬ NULL
           ТОГДА ЦеныНоменклатурыСрезПоследних.Регистратор
       ИНАЧЕ ВложенныйЗапрос.ДокументЗакупки
   КОНЕЦ КАК ДокументПредыдущегоПоступления,
   ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаСрез
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецДок, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
       ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
           ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               ПоступлениеТоваровУслугТовары.ЦенаБезТранспортныхРасходов КАК ЦенаПоступления,
               ЗакупкиОбороты.Номенклатура КАК Номенклатура,
               ЗакупкиОбороты.ДокументЗакупки КАК ДокументЗакупки,
               ЗакупкиОбороты.ДокументЗакупки.Дата КАК ДокументЗакупкиДата
           ИЗ
               РегистрНакопления.Закупки.Обороты(&НачалоПериода, &КонецДок, Регистратор, ) КАК ЗакупкиОбороты
                   ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
                   ПО ЗакупкиОбороты.ДокументЗакупки = ПоступлениеТоваровУслугТовары.Ссылка
                       И ЗакупкиОбороты.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
                   ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                       ЗакупкиОбороты.Номенклатура КАК Номенклатура,
                       МАКСИМУМ(ЗакупкиОбороты.ДокументЗакупки.Дата) КАК ДокументЗакупкиДата
                   ИЗ
                       РегистрНакопления.Закупки.Обороты КАК ЗакупкиОбороты
                   
                   СГРУППИРОВАТЬ ПО
                       ЗакупкиОбороты.Номенклатура) КАК ВложенныйЗапрос
                   ПО ЗакупкиОбороты.Номенклатура = ВложенныйЗапрос.Номенклатура
                       И ЗакупкиОбороты.ДокументЗакупки.Дата = ВложенныйЗапрос.ДокументЗакупкиДата
           ГДЕ
               ПоступлениеТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
               И ПоступлениеТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
               И ПоступлениеТоваровУслугТовары.Ссылка.ТранспортУсловн > 0
               И ПоступлениеТоваровУслугТовары.ЦенаБезТранспортныхРасходов > 0) КАК ВложенныйЗапрос
           ПО ПоступлениеТоваровУслугТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
       ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура

УПОРЯДОЧИТЬ ПО
   ЦеныНоменклатурыСрезПоследних.Регистратор УБЫВ
9 Mamont_SXI
 
22.01.12
12:09
что, никто помочь не может
10 Wobland
 
22.01.12
12:15
(9) особо не вникал, но ответь на (4)
11 Mamont_SXI
 
22.01.12
12:28
реквизитов этих нет, они есть в запросе скд
12 Мимохожий Однако
 
22.01.12
12:39
Где в коде ссылка на выбранный документ?
13 Mamont_SXI
 
22.01.12
12:56
ПоступлениеТоваровУслугТовары.Ссылка КАК ДокументПоступления
14 Mamont_SXI
 
22.01.12
12:57
я в параметрах скд сделал настройку отбора по этому элементу
15 sanja26
 
22.01.12
13:38
Тебе же в 5 все показали. Добавь параметр - документ
16 sanja26
 
22.01.12
13:49
(15) вернее отбор укажи при выводе отчета
17 Mamont_SXI
 
22.01.12
14:53
я сделал так


   Отчет = Отчеты.ОтчётПоПоследнемуПриходу.Создать();
   Форма = Отчет.ПолучитьФорму();
   Параметр = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
     Параметр.Значение = Дата;
     Параметр.Использование = Истина;
   Отбор = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить("ДокументПоступления");
     Отбор.ПравоеЗначение = Ссылка;
     Отбор.Использование = Истина;

дату он проставляет, а вот ссылку нет пишет

{Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента(2337)}: Ошибка при вызове метода контекста (Получить): Несоответствие типов (параметр номер '1')
   Отбор = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить("ДокументПоступления");
по причине:
Несоответствие типов (параметр номер '1')
18 sanja26
 
22.01.12
15:39
Схема = Отчеты.СметаНашейОрганизации.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
   Настройки = Схема.НастройкиПоУмолчанию;
   Проект = Настройки.Отбор.Элементы.Получить(0);
   Смета = Настройки.Отбор.Элементы.Получить(1);
   Проект.ПравоеЗначение = ПроектДок;
   Смета.ПравоеЗначение = Ссылка;
   Смета.Использование = Истина;
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки);
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
   ДокументРезультат = Новый ТабличныйДокумент;
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
19 sanja26
 
22.01.12
15:46
Получить() работает по индексу
20 Mamont_SXI
 
22.01.12
15:58
блин, не тот индекс указывал)))
2 + 2 = 3.9999999999999999999999999999999...