|
Проблема с выводом табличного документа | ☑ | ||
---|---|---|---|---|
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) спасибо запотентую:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |