|
Печать договора | ☑ | ||
---|---|---|---|---|
0
pv94384
03.08.11
✎
15:35
|
Может кто сталкивался с токой проблемой... Вообщем в УТ 8.1 есть договор "Доверенность", так вот при печати он печатается на страницу А4 в одном экземпляре.
Итак, уважаемые знатоки, вопрос: Как сделать так, чтобы на одном листе А4 печаталось 3 таких договора, а то и 4? |
|||
1
Жан Пердежон
03.08.11
✎
15:42
|
а что не получается: в настройки печати зайти или в коде чего поменять?
|
|||
2
rrunover
03.08.11
✎
15:42
|
1. В любой конфигурации подобный вопрос решается переделкой кода, а заодно и макета. Через Вывести(СекцияДоговора), Присоединить(СекцияДоговора), Вывести, Присоединить и т.д... повторять до изнеможения.
2. ЕМНИП, то многие принтеры позволяют компоновать несколько экземпляров на один лист. |
|||
3
pv94384
03.08.11
✎
15:44
|
(1) В том-то и дело, что в коде запутался, думал всё намного проще...
(2) В данном отчете макет отсутствует... |
|||
4
pv94384
03.08.11
✎
15:49
|
(2) Конец рабочего дня дает о себе знать... Туплю, макет есть...
|
|||
5
pv94384
04.08.11
✎
07:45
|
тема актуальна... подниму
|
|||
6
rrunover
04.08.11
✎
08:51
|
В чем загвоздка-то?
|
|||
7
pv94384
04.08.11
✎
08:57
|
Сделать так, чтоб при печате на одном листе выводилось сразу 4 договора... Программно сжать договора так, чтобы влезли и соответственно настроить, чтобы их выводилось 4 штуки
|
|||
8
_
vovanidze_3412341 04.08.11
✎
09:01
|
Людей пожалейте..которые эти ваши договора читать пытатся будут
|
|||
9
butterbean
04.08.11
✎
09:01
|
(7) ужать макет и 4 раза Вывести()
|
|||
10
_
vovanidze_3412341 04.08.11
✎
09:05
|
(9)так он тогда вниз 4 раза полезет...присоединять нада
|
|||
11
pv94384
04.08.11
✎
09:07
|
(8)(9)Вот в этом-то и дело... надо 2 столбца и 2 строки
|
|||
12
butterbean
04.08.11
✎
09:09
|
(10,11) ну Вывести(), Присоединить(), Вывести(), Присоединить()... в чем проблема-то??
|
|||
13
hhhh
04.08.11
✎
09:14
|
(11) ну сделайте новый макет из 4-х макетов. Это же 15 секунд у вас займет. И код менять не придется.
|
|||
14
pv94384
04.08.11
✎
09:49
|
(13) макет можно печатать 2х видов: весь на одной странице и двустороннюю печать, т.е. некоторые области должны выводиться на другой стороне и для этого случая вариант из 4х макетов не подходит...
|
|||
15
rrunover
04.08.11
✎
10:06
|
(14) всё равно не вижу проблем:
1. Весь на одной странице - макет номер раз 2. Двусторонняя печать - макет номер дваз 3. Вариант из 3-4-х макетов - макет номер три-з всё про всё вместе с настройкой и подгонкой для "покрасивше" занимает максимум 6 часов неторопливыми пальцами. А. Про третий вариант подробнее: получаешь секцию, в которой у тебя мелким почерком переписан (читай - сде-лан за-но-во) оригинальный вариант макета из первого варианта, далее по коду пишешь Вывести(СекцияДоговора), Присоединить(СекцияДоговора), Вывести(СекцияДоговора), Присоединить(СекцияДоговора). Б. Получится так: [1 шаг] [2 шаг] [3 шаг] [4 шаг] В. ????Г Г. Profit! |
|||
16
rrunover
04.08.11
✎
10:08
|
+ к (14) про варианты вывода я писал в (2), его же упомянули в (12). Что именно не получается?
|
|||
17
pv94384
04.08.11
✎
10:25
|
(16) Сделал через "Присоединить", всё нормально присоединяет, только присоединяет под макет, а не справа от него...
Есть ли смысл уменьшать ширину макета или не в этом причина? |
|||
18
butterbean
04.08.11
✎
10:34
|
(17) не в этом, код покажи
|
|||
19
pv94384
04.08.11
✎
10:37
|
Функция ПечатьДоверенности(НазваниеМакета)
Запрос = Новый Запрос(); Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр("ДатаСреза", Дата); Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо.Ссылка); Запрос.Текст = "ВЫБРАТЬ | Номер КАК НомерДокумента, | Дата КАК ДатаДокумента, | Организация КАК Руководители, | Организация, | ФизЛицо, | Контрагент КАК Поставщик, | БанковскийСчетОрганизации КАК БанковскийСчет, | ВЫБОР | КОГДА ВЫРАЗИТЬ(НаПолучениеОт КАК СТРОКА(100)) = """" ТОГДА Контрагент.НаименованиеПолное | ИНАЧЕ НаПолучениеОт | КОНЕЦ КАК ПоставщикПредставление, | ДатаДействия КАК СрокДействия, | ПоДокументу КАК РеквизитыДокументаНаПолучение, | Товары.( | НомерСтроки КАК Номер, | НаименованиеТовара КАК Ценности, | НаименованиеТовара КАК ЦенностиПредставление, | ЕдиницаПоКлассификатору КАК ЕдиницаИзмерения, | ЕдиницаПоКлассификатору.Представление КАК ЕдиницаИзмеренияПредставление, | Количество | ) |ИЗ | Документ.Доверенность КАК Доверенность |ГДЕ | Доверенность.Ссылка = &ТекущийДокумент | |УПОРЯДОЧИТЬ ПО | Товары.НомерСтроки |"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Доверенность_М2"; Макет = ПолучитьОбщийМакет("М2"); ФамилияИмяОтчествоФизЛица = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ФизЛицо, Шапка.ДатаДокумента); ФамилияИмяОтчествоДоверенного = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество; ДолжностьДоверенного = Должность; Если НазваниеМакета = "М2" тогда ОбластьМакета = Макет.ПолучитьОбласть("Отрез"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект); ОбластьМакета.Параметры.ФИОДоверенного = СокрЛП(Должность) + " " + ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоДоверенного); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.Присоединить(ОбластьМакета); // НазваниеФормы = "Типовая межотраслевая форма № М-2"; Иначе НазваниеФормы = "Типовая межотраслевая форма № М-2а"; КонецЕсли; Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.ДатаДокумента); Руководитель = Руководители.Руководитель; Бухгалтер = Руководители.ГлавныйБухгалтер; ПаспортФизЛица = ОбщегоНазначения.ПаспортныеДанные(Шапка.ФизЛицо, Шапка.ДатаДокумента); СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента,, Шапка.БанковскийСчет); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект); ОбластьМакета.Параметры.НазваниеФормы = НазваниеФормы; ОбластьМакета.Параметры.ОрганизацияПредставление = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,ИНН,КПП, ЮридическийАдрес,Телефоны,"); ОбластьМакета.Параметры.РеквизитыСчета = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НомерСчета,Банк,БИК,КоррСчет,"); ОбластьМакета.Параметры.РеквизитыПотребителя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,"); ОбластьМакета.Параметры.ОрганизацияКодПоОКПО = СведенияОбОрганизации.КодПоОКПО; ОбластьМакета.Параметры.ДолжностьДоверенного = ДолжностьДоверенного; ОбластьМакета.Параметры.ФамилияИмяОтчествоДоверенного = ФамилияИмяОтчествоДоверенного; ОбластьМакета.Параметры.ПаспортСерия = ПаспортФизЛица.Серия; ОбластьМакета.Параметры.ПаспортНомер = ПаспортФизЛица.Номер; ОбластьМакета.Параметры.ПаспортВыдан = ПаспортФизЛица.Выдан; ОбластьМакета.Параметры.ПаспортДатаВыдачи = ПаспортФизЛица.ДатаВыдачи; ОбластьМакета.Параметры.ДатаДокумента = Формат(Шапка.ДатаДокумента,"ДФ = ""дд ММММ гггг """"г."""); ОбластьМакета.Параметры.СрокДействия = Формат(Шапка.СрокДействия,"ДФ = ""дд ММММ гггг """"г."""); ТабДокумент.Вывести(ОбластьМакета); // ТабДокумент.Присоединить(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.Присоединить(ОбластьМакета); // Пока ВыборкаСтрокТовары.Следующий() Цикл ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.КоличествоПрописью = ?(ВыборкаСтрокТовары.Количество = 0, "", Строка(ВыборкаСтрокТовары.Количество) + " (" + ФормированиеПечатныхФорм.КоличествоПрописью(ВыборкаСтрокТовары.Количество) + ")"); ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.Присоединить(ОбластьМакета); // КонецЦикла; ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.Заполнить(Шапка); Если ЗначениеЗаполнено(Руководитель) Тогда ОбластьМакета.Параметры.ФИОРуководителя = Руководитель; ОбластьМакета.Параметры.Руководитель = Руководитель; КонецЕсли; Если ЗначениеЗаполнено(Бухгалтер) Тогда ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер; ОбластьМакета.Параметры.ГлавныйБухгалтер = Бухгалтер; КонецЕсли; ТабДокумент.Вывести(ОбластьМакета); ТабДокумент.Присоединить(ОбластьМакета); // Возврат ТабДокумент; КонецФункции |
|||
20
rrunover
04.08.11
✎
10:40
|
Столько всего, что не знаю, с чего начать...
|
|||
21
butterbean
04.08.11
✎
10:41
|
(19) все проще - выводишь в один ТабДокумент свой договор, потом делаешь ИтоговыйТабДокумент, и в него уже ИтоговыйТабДокумент.Вывести(ТабДокумент)
ИтоговыйТабДокумент.Присоединить(ТабДокумент) ..... и т.д. |
|||
22
pv94384
04.08.11
✎
11:50
|
(20) С самого начала
(21)А если не искать других путей, а добить тему с "Присоединить" |
|||
23
pv94384
04.08.11
✎
13:35
|
Подниму...
Так почему он присоединяет мне вниз, а не справа? |
|||
24
Kookish
04.08.11
✎
13:42
|
Потому что не используешь вертикальные области.
|
|||
25
pv94384
04.08.11
✎
13:45
|
(24) не совсем понял... давайте с этого места по подробнее
|
|||
26
Kookish
04.08.11
✎
14:04
|
В макете могут быть как горизонтальные, так и вертикальные области. Горизонтальные видно слева, вертикальные сверху. Горизонтальные присоединяются (или просто выводятся) друг за другом сверху вниз. Вертикальные можно присоединять слева направо. В тексте области разделяются вертикальной чертой.
То есть строка: ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); задаст прямоугольную область, ограниченную "ШапкаТаблицы" по горизонтали и "НомерСтроки" по вертикали. Затем ее можно как вывести (внизу от уже выведенного), так и присоединить (справа от уже выведенного). С нюансами разбирайся сам. |
|||
27
rrunover
04.08.11
✎
14:05
|
Присоединяюсь к предыдущему оратору.
И порекомендовал бы для начала создать простенький макет с пересечениями областей и поиграться с Вывести и Присоединить. |
|||
28
pv94384
04.08.11
✎
14:17
|
Гугл не помогает найти теорию по областям, поэтому спрошу здесь...
Т.е. мне надо выделить колонки, которые содержат область макета и путем ctrl + shift + N дать имя? Буду благодарен за ссылку на литературу по данной теме. |
|||
29
pv94384
04.08.11
✎
14:34
|
Получилось! Но просьба о ссылке до сих пор актуальна )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |