|
Печать реестра сертификатов | ☑ | ||
---|---|---|---|---|
0
neo-55555
13.08.15
✎
14:53
|
Добрый день, друзья. Написал внешнюю печатную форму для печати сертификатов в УТ 10.3. Выдает только первый товар из накладной. Как сделать, чтобы выводился весь товар. Помогите пожалуйста.
Код: Функция Печать() Экспорт ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Сертификат"); ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьДанные = Макет.ПолучитьОбласть("Данные"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапки.Параметры.ТекстЗаголовка = "Товарная накладная " + СсылкаНаОбъект.Номер; ТабДок.Вывести(ОбластьШапки); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка = &Ссылка"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры, Выборка); Товар = Выборка.Номенклатура; Запрос1 = Новый Запрос; Запрос1.Текст = "ВЫБРАТЬ | СерииНоменклатуры.Сертификат |ИЗ | Справочник.СерииНоменклатуры КАК СерииНоменклатуры |ГДЕ | СерииНоменклатуры.Владелец = &Номенклатура"; Запрос1.УстановитьПараметр("Номенклатура", Товар); Выборка = Запрос1.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ОбластьДанные.Параметры.Сертификат = Выборка.Сертификат; КонецЦикла; ТабДок.Вывести(ОбластьДанные); КонецЦикла; Возврат ТабДок; КонецФункции |
|||
1
ДенисЧ
13.08.15
✎
14:54
|
Самое главное в выводе таблицы в табдок - выводить область строки после цикла... Зачем время тратить?
|
|||
2
neo-55555
13.08.15
✎
15:00
|
или может у кого есть готовая внешняя печатная форма?
|
|||
3
Nuobu
13.08.15
✎
15:03
|
Пока Выборка.Следующий() Цикл
ОбластьДанные.Параметры.Сертификат = Выборка.Сертификат; ТабДок.Вывести(ОбластьДанные); КонецЦикла; |
|||
4
neo-55555
13.08.15
✎
15:48
|
Теперь вообще не выводит ничего
|
|||
5
neo-55555
13.08.15
✎
15:54
|
Я знаю, что нужно Выводить область нужно в цикле перебора номенклатуры. Но как это прописать не знаю
|
|||
6
alex_shkut
13.08.15
✎
15:56
|
Пока Выборка.Следующий() Цикл
Запрос1 = Новый Запрос; КонецЦикла И сколько раз ты Новый объект создавать собираешься? Запасись оперативкой... |
|||
7
alex_shkut
13.08.15
✎
15:58
|
Точнее - попкорном. Плохой код. Вынеси все за цикл, а в цикле меняй только значение Параметра.
|
|||
8
alex_shkut
13.08.15
✎
15:59
|
И назови вторую Выборку другим именем, она затирает верхнюю, потому только один сертификат.
|
|||
9
alex_shkut
13.08.15
✎
16:00
|
Пока Выборка.Следующий() Цикл
и внутри Выборка = Запрос1.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл затирает первую |
|||
10
neo-55555
13.08.15
✎
16:46
|
Спасибо большое, попробую!
|
|||
11
Михаил Козлов
13.08.15
✎
18:45
|
Можно одним запросом (чтобы не выполнять запрос в цикле) с итогами и обходом результата запроса по группировкам.
Что вроде этого: ВЫБРАТЬ РТиУ.Номенклатура, серии.Сертификат КАК Сертификат ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РТиУ ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК серии ПО РТиУ.Номенклатура = серии.Владелец ГДЕ РТиУ.Ссылка = &Ссылка ИТОГИ ПО РТиУ.Номенклатура Зачем ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры, Выборка), если в выборке всего 1 поле (Номенклатура)? |
|||
12
sFAQer
14.08.15
✎
02:18
|
Кто нибудь уже кинул в него тапком за запрос в цикле?
|
|||
13
sFAQer
14.08.15
✎
02:20
|
(11) Вот к этому нафиг джойн, серии в табличной части дока лежат...
|
|||
14
Михаил Козлов
14.08.15
✎
15:29
|
(13) Может человек хочет распечатать все серии по номенклатуре?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |