|
Внешняя печатная форма | ☑ | ||
---|---|---|---|---|
0
buketovav
28.03.22
✎
14:58
|
Всем доброго дня, Уважаемые Форумчане!
Столкнулся с тем, что не знаю как реализовать алгоритм вывода и формирование областей для внешней печатной формы. На скриншоте попытался обрисовать ситуацию. - https://prnt.sc/S-8Xg630f0am Есть табличный документ, ОриентацияСтраницы.Ландшафт. Таблица занимает примерно половину страницы слева, при выводе данных в табличный документ надо, чтобы система выводила строки в левой части до тех пор пока помещаются строки на странице, а если не помещается, то переходит на правую сторону этой же страницы таб дока и заполняет до тех пор пока помещаются строки в правую часть. Когда не будет хватать места, то вставляем горизонтальный разделитель страниц и снова заполняем сначала левую часть и затем правую. Ну а подписи вставляем с той стороны, где закончится вывод. Прошу помощи и подсказки, как это возможно реализовать. Заранее всем благодарен. Хорошего всем дня! |
|||
1
vicof
28.03.22
✎
15:01
|
Экономите бумагу?)
|
|||
2
buketovav
28.03.22
✎
15:01
|
да, и в конце печатной формы опечатка, ошибся с нумерацией строк
|
|||
3
buketovav
28.03.22
✎
15:02
|
(1) нет, так хочет пользователь
|
|||
4
vicof
28.03.22
✎
15:03
|
А если в правой части строки разъедутся и повлияют на левую, что будем делать?
|
|||
5
Kassern
28.03.22
✎
15:04
|
(0) высота строк фиксированная?
|
|||
6
DGorgoN
28.03.22
✎
15:04
|
Это конечно бред бредовый. Придётся сначала загнать в тз, потом тз разделить на страницы и только потом печатать.
Есть еще вариант 2 экземпляра на страницу при выводе на печать. |
|||
7
VladZ
28.03.22
✎
15:04
|
(0) Если высота строк в таблице будет разной - есть вероятность "не попасть".
А если делать одинаковой - наименование будет обрезаться. Общий смысл понятен, но идея так себе. |
|||
8
Kassern
28.03.22
✎
15:06
|
(5) если фиксированная то просто проверяете на вывод, если не влазит, то присоединяете правый кусок с заранее известным фиксированным количеством строк. А после новый лист и горизонтальный разделитель. Как-то так наверное
|
|||
9
Kassern
28.03.22
✎
15:07
|
но имхо, лучше использовать портретную ориентацию и не парить мозг, не думаю, что так вы много сэкономите
|
|||
10
buketovav
28.03.22
✎
15:08
|
(5) высота строки зависит от наименования, бывает длинное, бывает короткое
|
|||
11
Kassern
28.03.22
✎
15:09
|
(10) и как вы собираетесь решать задачу, если слева будет короткое наименование, а справа будет длинное?
|
|||
12
buketovav
28.03.22
✎
15:09
|
это не надо решать (11)
|
|||
13
Kassern
28.03.22
✎
15:10
|
и в чем тогда будет экономия, если для короткой строчки вы сделаете большую высоту, так как справа будет длинная строчка?)
|
|||
14
buketovav
28.03.22
✎
15:10
|
(11) об этом пользователь уже знает, что будет не очень красиво
|
|||
15
buketovav
28.03.22
✎
15:10
|
(13) сложно ответить на этот вопрос... точнее сказать у меня нет ответа на него... просто сказали сделать так
|
|||
16
vicof
28.03.22
✎
15:11
|
(15) ты можешь передать этот вопрос пользователю)
|
|||
17
buketovav
28.03.22
✎
15:12
|
(16) хотят именно так и все...
|
|||
18
unbred
28.03.22
✎
15:14
|
в (8) решение.
сабж : задача из разряда "от нех** делать" |
|||
19
buketovav
28.03.22
✎
15:15
|
Вы, конечно, помощники еще те)))) xDDDD
Если бы я хотел порассуждать о том, насколько нужная это задача, я бы так и написал. Если есть идеи, то подскажите, пожалуйста. |
|||
20
Kassern
28.03.22
✎
15:16
|
(15) (17) да не вопрос, попробуйте через А5 реализовать. Типа 2 ТД создаете и проверяете их на вывод, если не влазять то объединяете их в новый ТД. Возможно так сканает сделать с разной высотой колонок. Но это все извращения конечно же)
|
|||
21
buketovav
28.03.22
✎
15:16
|
(20) хм... спасибо, попробую
|
|||
22
buketovav
28.03.22
✎
15:16
|
еще есть идеи у кого-нибудь? )
|
|||
23
Йохохо
28.03.22
✎
15:25
|
(22) не объединять тд, печатать на а5, и попробовать заставить 1с запомнить 2 страницы на 1 лист через ключ параметров печати
выводить в файл шаблон либры |
|||
24
buketovav
28.03.22
✎
15:30
|
(23) очень интересно, но ничего не понятно...
|
|||
25
Йохохо
28.03.22
✎
15:33
|
(23) 1. принтер сам умеет то что ты хоченшь, но запомнит ли это 1с в параметрах страницы
2. делаем файлик одф в либреофис с нужным перетеканием текста, заполняем как умеем |
|||
26
ptiz
28.03.22
✎
15:39
|
(22) Печатать "по 2 страницы на лист" в настройках принтера.
|
|||
27
ejikbeznojek
28.03.22
✎
17:28
|
Может быть сначала проверять вывод левой части у временного ТД
Который получается из присоединения самой к себе левой части. Как перестало помешаться, начинать формировать правую часть, проверяя вывод после каждой строчки. |
|||
28
Tatitutu
28.03.22
✎
17:43
|
Сделай проще
3 макета листа 1 - шапка и подписи - влезает 18 позиций 2 - одни позиции по 13 всего 26 3 - "закрывашка" с подписью - 20 позиций Собрал ТЗ и условиями разделил как заполнить - шаблоны тоже не проблема Номенклатура[х] Количество[х] и гоняй циклом |
|||
29
Kassern
28.03.22
✎
18:00
|
(28) с плавающей высотой колонок из-за наименований так вряд ли получится
|
|||
30
Вафель
28.03.22
✎
18:15
|
проще всего перейти на портрет
|
|||
31
buketovav
28.03.22
✎
18:59
|
(27) такой вариант сейчас и реализую.. но есть проблема..
При выводе таб дока все красиво, а при предварительном просмотре некоторые страницы переползают на следующую |
|||
32
buketovav
28.03.22
✎
19:34
|
может "Предварительный просмотр" зависит от принтера?
|
|||
33
Мимохожий Однако
28.03.22
✎
19:50
|
(32) да
|
|||
34
rozer76
28.03.22
✎
20:02
|
||||
35
Сияющий Асинхраль
29.03.22
✎
00:12
|
(0) Есть в восьмерке замечательная команда, 1С ее даже кое-где использует. Называется ПроверитьВывод() - она определяет помещается ли на страницу выводимые строки. Синтаксис такой:
ТабличныйДокумент (SpreadsheetDocument) ПроверитьВывод (CheckPut) Синтаксис: ПроверитьВывод(<Таблицы>) Параметры: <Таблицы> (обязательный) Тип: Массив, ТабличныйДокумент. Массив из проверяемых таблиц или табличный документ. Возвращаемое значение: Тип: Булево. Истина - умещаются; Ложь - в противном случае. Описание: Проверяет, умещаются ли переданные табличные документы на страницу при печати. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: При возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение. Следует учитывать, если для табличного документа установлены поля, размер которых меньше размера полей, установленных для принтера, на котором документ будет напечатан, то при печати содержимое некоторых строк может не уместиться на странице, даже если метод возвращает значение Истина. Пример: Т.Добавить(ШапкаДокумента); Т.Добавить(СтрокаДокумента); Т.Добавить(ПодвалДокумента); Если Не ТабДок.ПроверитьВывод(Т) Тогда Сообщить("Документ не умещается на страницу!"); КонецЕсли; См. также: ТабличныйДокумент, метод ПроверитьПрисоединение Использование в версии: Доступен, начиная с версии 8.0. |
|||
36
buketovav
29.03.22
✎
09:40
|
(35) это я использую и если не умещается, то вставляю горизонтальный разделитель.
Дело не в этом. Дело в том, что в самом таб доке все номр, а при предварительном просмотре косяки |
|||
37
Kassern
29.03.22
✎
10:05
|
(36) может отступы в настройках печати вам ТД косячат?
|
|||
38
buketovav
29.03.22
✎
10:12
|
(37)Подскажите, что такое отступы и где и как их проверить?
|
|||
39
Kassern
29.03.22
✎
10:14
|
(38) ТабличныйДокумент.ПолеСлева,ПолеСправа и т.д. Так же при печати можно интерактивно настроить
|
|||
40
buketovav
29.03.22
✎
10:16
|
вот в предварительном просмотре что у меня получается...
https://prnt.sc/3ivWGzFXs3JM https://prnt.sc/DiurGOl3yyKM |
|||
41
buketovav
29.03.22
✎
10:17
|
(39) не, это не помогает, это уже и убирал и ставил другие значения. В моем случае не работает
|
|||
42
Сияющий Асинхраль
29.03.22
✎
11:03
|
(40) И в чем проблемы то? Я на скринах проблем не вижу...
|
|||
43
Сияющий Асинхраль
29.03.22
✎
11:07
|
И да, любая печать зависит от конкретного принтера. Даже если ты возьмешь один и тот же файл в ворде, но посмотришь его на разных компах с разными принтерами (может быть даже одна версия ворда), то практически сто процентов получишь разную разбивку по страницам, если текст достаточно длинный. Единственный способ получить совершенно одинаковую форму на разных компах - либо иметь совершенно одинаковую технику на обоих, либо иметь дело с файлами PDF, вот они даже на разной технике будут одинаковыми...
|
|||
44
buketovav
29.03.22
✎
11:12
|
(43) понял, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |