|
Печать документа точно по размеру страницы(чтобы реквизиты всегда были внизу) | ☑ | ||
---|---|---|---|---|
0
kIR
11.06.13
✎
10:35
|
Доброго времени суток!
Печатаем сопроводительные письма к документации и необходимо,чтобы независимо от текста письма,реквизиты всегда находились внизу. Пытался эту проблему решить функцией "ПроверитьВывод" но она всегда выдает ложь,даже если в тексте мы печатаем 1 слово вот текст обработки: Процедура КнопкаВыполнитьНажатие(Кнопка) Печать(); КонецПроцедуры Функция ПечатьСопрЛиста() ТабДок = Новый ТабличныйДокумент(); ТабДок.АвтоМасштаб = Истина; Макет = ПолучитьМакет("СопроводительноеПисьмо"); КоличествоСтраниц = 1; НомерСтраницы = 1; ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ШтрихКодЛого = ОбластьЗаголовок.Рисунки.ШтрихКодЛого.Объект; // ШтрихКодЛого.text = ФормированиеПечатныхФорм.СформироватьТекстДляШтрихкода(ЭтотОбъект, Неопределено, НомерСтраницы, КоличествоСтраниц); ШтрихКодЛого.alphabet = 25; ОбластьЗаголовок.Параметры.Контрагент = Контрагент; Если НЕ КонтактноеЛицо.Пустая() Тогда ОбластьЗаголовок.Параметры.КонтактноеЛицо = "" + КонтактноеЛицо.Должность + " " + КонтактноеЛицо; КонецЕсли; ОбластьЗаголовок.Параметры.ЗаголовокПисьма= ЗаголовокПисьма; ОбластьЗаголовок.Параметры.Дата = Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy"); ТабДок.Вывести(ОбластьЗаголовок); ОбластьТекст = Макет.ПолучитьОбласть("Текст"); ОбластьТекст.Параметры.текст = Текст; ТабДок.Вывести(ОбластьТекст); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьПодвал.Параметры.ТипИП = "ИП"; ОбластьПодвал.Параметры.ИП = "Кузнецов А.В."; ТабДок.Вывести(ОбластьПодвал); ОбластьРеквизиты = Макет.ПолучитьОбласть("Реквизиты"); ОбластьРеквизиты.Параметры.НаименованиеОрганизации = Организация.НаименованиеПолное; ОбластьРеквизиты.Параметры.ИНН = "ИНН " + Организация.ИНН; ОбластьРеквизиты.Параметры.ОГРН = "ОГРН " + Организация.ОГРН; ОбластьРеквизиты.Параметры.Банк = Организация.ОсновнойБанковскийСчет.Банк; ОбластьРеквизиты.Параметры.РСчет= "р/счет " + Организация.ОсновнойБанковскийСчет.НомерСчета + " БИК " + Организация.ОсновнойБанковскийСчет.Банк.Код; ОбластьРеквизиты.Параметры.КСчет= "к/счет " + Организация.ОсновнойБанковскийСчет.Банк.КоррСчет; ТабДок.Вывести(ОбластьРеквизиты); массивСтрокСИтогом = Новый Массив; массивСтрокСИтогом.Очистить(); массивСтрокСИтогом.Добавить(ОбластьЗаголовок); массивСтрокСИтогом.Добавить(ОбластьТекст); массивСтрокСИтогом.Добавить(ОбластьПодвал); массивСтрокСИтогом.Добавить(ОбластьРеквизиты); Вывод = ТабДок.ПроверитьВывод(массивСтрокСИтогом); Пока Вывод Цикл ОбластьРеквизиты = Макет.ПолучитьОбласть("Реквизиты"); ОбластьРеквизиты.Очистить(); ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока"); ТабДок.Вывести(ОбластьПустаяСтрока); ТабДок = ВывестиНизТабДокумента(ТабДок,Макет); массивСтрокСИтогом.Очистить(); массивСтрокСИтогом.Добавить(ТабДок); Вывод = ТабДок.ПроверитьВывод(массивСтрокСИтогом); КонецЦикла; Возврат ТабДок; КонецФункции Функция ВывестиНизТабДокумента(ТабДок,Макет) ОбластьРеквизиты = Макет.ПолучитьОбласть("Реквизиты"); ОбластьРеквизиты.Параметры.НаименованиеОрганизации = Организация.НаименованиеПолное; ОбластьРеквизиты.Параметры.ИНН = "ИНН " + Организация.ИНН; ОбластьРеквизиты.Параметры.ОГРН = "ОГРН " + Организация.ОГРН; ОбластьРеквизиты.Параметры.Банк = Организация.ОсновнойБанковскийСчет.Банк; ОбластьРеквизиты.Параметры.РСчет= "р/счет " + Организация.ОсновнойБанковскийСчет.НомерСчета + " БИК " + Организация.ОсновнойБанковскийСчет.Банк.Код; ОбластьРеквизиты.Параметры.КСчет= "к/счет " + Организация.ОсновнойБанковскийСчет.Банк.КоррСчет; ТабДок.Вывести(ОбластьРеквизиты); Возврат ТабДок; КонецФункции Процедура Печать(ИзАвтоВыставления = Ложь) Экспорт ТабДок = ПечатьСопрЛиста(); ТабДок.КоличествоЭкземпляров = 1; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; /// ТабДок.РазмерСтраницы="A4"; // буква А должна быть английской ТабДок.АвтоМасштаб = Истина; // Вот сюда, пусть рассчитает масштаб заново :) ФормаПечати = ПолучитьОбщуюФорму("ПечатьДокументов",, Новый УникальныйИдентификатор); ФормаПечати.ОбъектПечати = Неопределено; ФормаПечати.ПечатныйДокумент = ТабДок; ФормаПечати.Заголовок = Заголовок; ФормаПечати.Защита = УправлениеДопПравамиПользователей.ЗащитаТаблиц(); ФормаПечати.Открыть(); КонецПроцедуры Что сделать,чтобы все было красиво?спасибо |
|||
1
kIR
11.06.13
✎
10:49
|
Извините за панику,Все реализовалось красивее
бла-бла-бла... ОбластьРеквизиты = Макет.ПолучитьОбласть("Реквизиты"); ОбластьРеквизиты.Параметры.НаименованиеОрганизации = Организация.НаименованиеПолное; ОбластьРеквизиты.Параметры.ИНН = "ИНН " + Организация.ИНН; ОбластьРеквизиты.Параметры.ОГРН = "ОГРН " + Организация.ОГРН; ОбластьРеквизиты.Параметры.Банк = Организация.ОсновнойБанковскийСчет.Банк; ОбластьРеквизиты.Параметры.РСчет= "р/счет " + Организация.ОсновнойБанковскийСчет.НомерСчета + " БИК " + Организация.ОсновнойБанковскийСчет.Банк.Код; ОбластьРеквизиты.Параметры.КСчет= "к/счет " + Организация.ОсновнойБанковскийСчет.Банк.КоррСчет; ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПУстаяСтрока"); массивСтрокСИтогом = Новый Массив; массивСтрокСИтогом.Очистить(); массивСтрокСИтогом.Добавить(ОбластьПустаяСтрока); массивСтрокСИтогом.Добавить(ОбластьРеквизиты); Пока ТабДок.ПроверитьВывод(массивСтрокСИтогом) Цикл /// Далее следует простая проверка на возможность уместить массив из областей на листе. ТабДок.Вывести(ОбластьПустаяСтрока); КонецЦикла; ТабДок.Вывести(ОбластьРеквизиты); Возврат ТабДок; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |