|
Отчет на скд. "Висящие" подписи | ☑ | ||
---|---|---|---|---|
0
raytan
09.01.15
✎
09:57
|
Есть работающий отчет на скд. Осталось настройка допилить всякие красивости. Не могу найти решение, чтобы избавится от "висящих" подписей. Т.е. подвал отрывается от основной таблицы. Пробовал в макете в СКД воспользоваться флагом "ВместеСоСледующим", почему то не получилось.
Ища информацию столкнулся с такой, что это уже реализовано ТОРГ-12. |
|||
1
zhig75
09.01.15
✎
10:38
|
(0)Я нихрена не понял!
|
|||
2
Chameleon1980
09.01.15
✎
11:27
|
...подвал отрывается от основной таблицы...
сами макет не доделывали/переделывали? |
|||
3
djekting
09.01.15
✎
11:31
|
скрин ласкаво просимо!
|
|||
4
Chameleon1980
09.01.15
✎
11:48
|
(3) + не помешает, а то я чет тоже не догнал что у кого оторвалось :)
|
|||
5
raytan
09.01.15
✎
12:05
|
Попробую лучше объяснить. Есть основная таблица, где выводятся данные: номенклатура, количество, цены и т.п. А ниже вывожу должность и место для подписи. Вот подписи при печати, если не хватает места на листе, выводятся на следующей странице. Нужно чтобы наследующую страницу переносилась последняя строчка с таблицы и итоги.
|
|||
6
Chameleon1980
09.01.15
✎
12:11
|
во как все повернулось
|
|||
7
Hans
09.01.15
✎
12:14
|
(5) помоему без написания кода этого сделать нельзя.
|
|||
8
Chameleon1980
09.01.15
✎
12:19
|
присоединяюсь.
и наверное с помощью (вроде бы): ТабличныйДокумент (SpreadsheetDocument) ПроверитьВывод (CheckPut) |
|||
9
raytan
09.01.15
✎
12:22
|
код писать не страшно :)) Вопрос, что именно писать и где. Скорее всего надо постобработка табличного документа. Как ее сделать ? И что именно там смотреть?
На СКД отчет полностью рабочий, опять же макет настроен. Я пробовал копать в сторону процессоравывода, но там непонятно как определить, что я сейчас вывожу. Вот такая засада |
|||
10
Chameleon1980
09.01.15
✎
12:26
|
подписи где то же выводите
еще раз повторю - смотрите в сторону метода ПроверитьВывод (CheckPut)для табличного документа. ТабличныйДокумент (SpreadsheetDocument) ПроверитьВывод (CheckPut) Синтаксис: ПроверитьВывод(<Таблицы>) Параметры: <Таблицы> (обязательный) Тип: Массив; ТабличныйДокумент. Массив из проверяемых таблиц или табличный документ. Возвращаемое значение: Тип: Булево. Истина - умещаются; Ложь - в противном случае. Описание: Проверяет, умещаются ли переданные табличные документы на страницу при печати. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: При возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение. Пример: Т.Добавить(ШапкаДокумента); Т.Добавить(СтрокаДокумента); Т.Добавить(ПодвалДокумента); Если Не ТабДок.ПроверитьВывод(Т) Тогда Сообщить("Документ не умещается на страницу!"); КонецЕсли; |
|||
11
raytan
09.01.15
✎
12:29
|
(8) Неплохо. Но сразу же появился вопрос. А если таблица будет на 3 листа ? Тогда получается будет выдавать ЛОЖЬ, а на самом деле на последнем листе вполне все может помещаться ?
|
|||
12
SeraFim
09.01.15
✎
12:32
|
(5)в ЗУПе такой вариант везде используется
|
|||
13
Chameleon1980
09.01.15
✎
12:33
|
тока про типовые хотел намекнуть
смотрим, думаем, учимся |
|||
14
Chameleon1980
09.01.15
✎
12:34
|
начинаем с глобального поиска ПроверитьВывод
хмм. наверное |
|||
15
SeraFim
09.01.15
✎
12:34
|
(12) ай нет, поторопился. Печатные формы так делаются, но без СКД =)
|
|||
16
Chameleon1980
09.01.15
✎
12:36
|
для скд применимо имхо - только покумекать нужно
|
|||
17
Chameleon1980
09.01.15
✎
12:38
|
может кусок поможет (печать торг12 из ут10_3):
Если Ном = 1 Тогда // первая срока ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ОбластьЗаголовокТаблицы); Иначе МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьМакета); МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице); Если Ном = КоличествоСтрок Тогда МассивВыводимыхОбластей.Добавить(ОбластьВсего); МассивВыводимыхОбластей.Добавить(ОбластьПодвала); КонецЕсли; Если Ном <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице; ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице = ИтогоМестНаСтранице; ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице = ИтогоКоличествоНаСтранице; ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице = ИтогоСуммаНаСтранице; ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице = ИтогоНДСНаСтранице; ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице = ИтогоСуммаСНДСНаСтранице; ТабДокумент.Вывести(ОбластьИтоговПоСтранице); // очистим итоги по странице ИтогоМассаБруттоНаСтранице = 0; ИтогоМестНаСтранице = 0; ИтогоКоличествоНаСтранице = 0; ИтогоСуммаНаСтранице = 0; ИтогоНДСНаСтранице = 0; ИтогоСуммаСНДСНаСтранице = 0; НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ОбластьЗаголовокТаблицы); КонецЕсли; КонецЕсли; |
|||
18
raytan
09.01.15
✎
12:39
|
Тогда еще вопрос. Получается мне надо переопределять метод "ПриКомпоновкеРезультата" и там пользоваться не процессоромвывода, а как то получать мои области из макета и выводить их?
|
|||
19
Chameleon1980
09.01.15
✎
12:50
|
блин. гугл потерялся?
http://1cskd.ru/2010/07/programmnyj-vyvod-otcheta/ http://www.cyberforum.ru/1c-standard/thread1211216.html ну и подобные я так понимаю изначально код писали не вы? раз у вас с подписями отчет - вероятно, он уже программно выводится. Может для начала в код этого отчета глянем? |
|||
20
Chameleon1980
09.01.15
✎
12:51
|
для какой конфы отчет?
дайте его уже посмотреть, если не секретный? выложьте куда-нибудь |
|||
21
raytan
09.01.15
✎
13:03
|
Все писал я. Он выводится не программно. Пока что во всяком случае. Эти ссылки я видел.
Мне не совсем понятно как тут http://1cskd.ru/2010/07/programmnyj-vyvod-otcheta/ прикрутить ПроверитьВывод() Если бы я создавал ручками запрос, получал таблицузначений и уже в цикле загонял ее в табдок, то я бы, используя метод ПроверитьВывод, мог бы вовремя вставить РазделительСтраниц (или как точно он называется). Но как прикрутить его к процессоруВывода мне не понятно. ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Пока ЭлементРезультата <> Неопределено Цикл ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ВЭлементеРезультата я не вижу, что я выожу ((( Конфигурация разрабатывается самостоятельно. |
|||
22
raytan
09.01.15
✎
13:11
|
Очень благодарен, что тратите свое время и пытаетесь помочь мне с моей задачкой. В любом случае спасибо :)
|
|||
23
raytan
21.01.15
✎
10:07
|
Возможно кому то будет полезно. Нашел решение своей проблемы. Постобработка табличного документа, еще до метода Показать().
ИмяОбласти = Результат.НайтиТекст("Итого").Имя;//Ищу подвал ЧислоР = Сред(ИмяОбласти ,2, Найти(ИмяОбласти, "C")-2); //Из ИмяОбласти получаю номер строки ..... ОбластьЯчеек = Результат.Область(ИмяСтроки); //Где ИмяСтроки представлено в формате "Rномерстрокиначало:Rномерстрокиконец" ОбластьЯчеек.ВместеСоСледующим = Истина; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |