|   |   | 
| 
 | Проблема с выводом табличного документа | ☑ | ||
|---|---|---|---|---|
| 0
    
        _stay true_ 15.08.12✎ 10:45 | 
        Есть обоаботка, на ней реквизит "номенклатура"(поле ввода). При выборе номенклатуры и нажитии "выполнить" выводится отчет из макета в виде табличного документа. Проблема: без разницы какую номенклатуру выбираешь, все равно отчет выводится по всем позициям. Как сделать так чтобы выводился отчет только по выбранному?
  Код Обработки: Процедура КнопкаВыполнитьНажатие(Кнопка) ОсновныеДействияФормыДействие(); КонецПроцедуры Процедура ОсновныеДействияФормыДействие() Номенклатура = ОбработкаОбъект.Номенклатура; ВнНабДан=Новый Структура; ВнНабДан.Вставить("НаборДанных1", Номенклатура); моймакет=ЭтотОбъект.ПолучитьМакет("Макет1"); настройки=ЭтотОбъект.ПолучитьМакет("Макет1").НастройкиПоУмолчанию; КомпМакета=Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомп=КомпМакета.Выполнить(моймакет, настройки); Проц=Новый ПроцессорКомпоновкиДанных; Проц.Инициализировать(МакетКомп, ВнНабДан); ДокументРезультат=Новый ТабличныйДокумент; ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока истина Цикл ЭлементРезультата=Проц.Следующий(); Если ЭлементРезультата=Неопределено тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ДокументРезультат.Показать(); КонецПроцедуры | |||
| 1
    
        _stay true_ 15.08.12✎ 11:16 | 
        ну вот...неужели никто не поможет горе-погромисту?))     | |||
| 2
    
        Лоботряс 15.08.12✎ 11:28 | 
        СКД надо смотреть     | |||
| 3
    
        Лоботряс 15.08.12✎ 11:29 | 
        Как там внешний объект используется     | |||
| 4
    
        _stay true_ 15.08.12✎ 14:35 | 
        Решил пойти более простым путем. Код Обработки:
  Процедура КнопкаВыполнитьНажатие(Кнопка) ВывестиОтчет(ОбработкаОбъект, ); КонецПроцедуры Функция ВывестиОтчет(ОбработкаОбъект, ТабДокумент) ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); Область = Макет.ПолучитьОбласть("Заголовок"); Область.Параметры.ТекстЗаголовка = ОбработкаОбъект; ТабДокумент.Вывести(Область); Область = Макет.ПолучитьОбласть("ШапкаТаблицы"); ТабДокумент.Вывести(Область); Область = Макет.ПолучитьОбласть("Строка"); Запрос = Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | Продажи.Поставщик КАК Поставщик, | Продажи.Покупатель КАК Покупатель, | Продажи.Партия КАК Партия, | Продажи.Период КАК Период, | Продажи.Регистратор КАК Регистратор, | Продажи.Количество КАК Количество, | Продажи.Сумма КАК Сумма, | Продажи.Сумма / Продажи.Количество КАК Цена |ИЗ | РегистрНакопления.Продажи КАК Продажи |ГДЕ | Продажи.Номенклатура = &Номенклатура"; Запрос.УстановитьПараметр("Номенклатура",ОбработкаОбъект.Номенклатура); Рез = Запрос.Выполнить().Выбрать(); Ном = 0; Пока Рез.Следующий() Цикл Ном = Ном+1; Область.Параметры.НомерСтроки = Ном; Область.Параметры.Номенклатура = Рез.Номенклатура; Область.Параметры.Количество = Рез.Количество; Область.Параметры.Цена = Рез.Цена; Область.Параметры.Сумма = Рез.Сумма; Область.Параметры.Период = Рез.Период; Область.Параметры.Поставщик = Рез.Поставщик; Область.Параметры.Покупатель = Рез.Покупатель; Область.Параметры.Регистратор = Рез.Регистратор; ТабДокумент.Вывести(Область); КонецЦикла; ТабДокумент.Показать(); Возврат ТабДокумент; КонецФункции // () Запускаем, выбираем номенклатуру, жмем "выполнить" - выскакивает пустая таблица(разумеется с размеченными полями). Как быть? | |||
| 5
    
        IBTM 15.08.12✎ 14:40 | 
        (4) спасибо запотентую:)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |