Торг12. Итоги на каждой странице, при изменении размера строк. #772330


#0 by toran1
Доброго. Платформа 8,2, толстый клиент, УПП1,3. Есть док, расходная накладная. К нему внешняя печатная форма. Пока наименование товара влезает в одну строку все хорошо, в коде есть необходимый блок подсчета строк и вывода красиво. Но если, название товара не помещается в одну строку, то становится весело. Шапка на одной странице, итог на другой. Потом вторая страница. И так далее. В общем как с этим бороться?
#1 by NikVars
Вычислять высоту строк.
#2 by toran1
Логично. Тогда как? Свойства ячейки - установлено переносить.
#3 by NikVars
Самый верный ответ.
#4 by NorthWind
я бы предусмотрел место исходя из максимально возможного количества строк, скажем 2 или 3 строки. И фиксированное количество таких строк на странице. Если есть желание поизвращаться, то можно корректировать количество строк, исходя из количества символов в наименовании. Допустим, поэкспериментировать и определить для себя, что если в строке 50 символов, то наименование влезет в строку, больше 50 - не влезет. Понятно, что для строк '11111' и 'ЖЖЖЖЖ' будут разные результаты по длине написания, но с учетом того что в текстах экстремальные варианты не встречаются - нечто среднее вывести можно.
#5 by NikVars
А если использовать моноширинный шрифт?!
#6 by Масянька
Для семерки делала: 1. количество символов в строке (сколько помещается). 2. наименование номенклатуры разбивается по п. 1 (тупо разбивается, переносится на след. строку). 3. подсчет срок по п. 1 и 2. 4. вывод строк в соответствии с п. 3 (кол-во строк на странице (первой, след. и последней (с подписями и печатью)) - подбираешь и задаешь).
#7 by NikVars
Вот видишь, для 7.7 - вообще проблемы нет. А в восьмерке ... :))
#8 by Масянька
Есть проблемы. И там, и там. Просто мои на снеговика забили - печатает и хорошо. Глюков и так хватает.
#9 by rozer76
используй "ПроверитьВывод"
#10 by aleks_default
+1 в любую типовую заглянте уж наконец
#11 by Злопчинский
в клюшках просто тупо делаешь вывод в черновик - если количество страниц не изменилось - выводишь строку в чистовик... я у себя все печформы переделал по счф так. все работает.
#12 by toran1
Нарыл по вашим наводкам. Для некоторых отчетов необходимо, чтобы в конце страницы содержалась некоторая область, которая бы сообщала информацию о содержимом страницы. Это может быть, например, информация о сумме по странице, количестве строк на странице и т.п. Во встроенном языке 1С:Предприятия предусмотрены специальные средства для разбиения табличного документа на страницы. В данном разделе рассказывается, каким образом можно организовать постраничный вывод при выводе информации в табличный документ. Метод табличного документа ПроверитьВывод Объект ТабличныйДокумент имеет метод ПроверитьВывод, предназначенный для того, чтобы проверить, поместится ли список областей на текущую страницу. В случае если метод вернет значение Истина, вывод областей, переданных в метод, не приведет к созданию новой страницы, иначе, для того, чтобы вывести области, в табличном документе будет создана новая страница. Данный метод работает с учетом настроек печати документа, у которого вызывается метод. Рассмотрим пример. Пусть нам необходимо создать отчет "Платежная ведомость". Требуется, чтобы на первой странице был заголовок, отображающий информацию о ведомости в целом, на остальных страницах - заголовок, содержащий только шапку таблицы ведомости. В подвалах страницы необходимо иметь информацию о сумме по странице. В подвале последней страницы необходимо иметь итоговую информацию по всей ведомости. Для того чтобы реализовать подобный отчет нам потребуется использовать метод ПроверитьВывод. Пример алгоритма отчета будет выглядеть так: 1. выводим в результирующий табличный документ область - заголовок первой страницы; 2. для каждой строки из ведомости: 2.1. проверяем, вмещается ли на текущую страницу область со строкой ведомости и область итога по странице; 2.2. если области помещаются на странице - выводим строку области; 2.3. иначе - выводим подвал страницы, выводим горизонтальный разделитель страницы, выводим шапку страницы, выводим строку ведомости; 3. выводим подвал отчета. Ниже приведен пример того, как подобный алгоритм может быть реализован на встроенном языке 1С:Предприятия 8: Метод табличного документа ПроверитьПрисоединение Метод табличного документа ПроверитьПрисоединение работает аналогично методу ПроверитьВывод, с тем отличием, что данный метод проверяет, изменится ли количество страниц по горизонтали при выводе в отчет областей при помощи метода Присоединить.
#13 by Изучаю1С8
В какой черновик?
#14 by Масянька
На фига мне "тупо выводить в черновик"? А сразу посчитать и вывести, как надо - не кошерно? :)
#15 by Злопчинский
объясняю для... сразу посчитать и вывести - в общем случае не получится или будет офигеть как сложно (для разных размеров шрифтов например). а вывод в черновик - это по сути и есть восьмерочная "ПроверитьВывод"
#16 by Злопчинский
.. и реализуется небольшим количеством строк
#17 by Злопчинский
...кода и работает универсально
#18 by Смотрящий
Покаж
#19 by Масянька
Не надо объяснять для ... Я тебе объясню: - разные шрифты: в накладных, актах, сф и пр. - на фига? У меня (как в типовых - один шрифт, разный размер, обычный + жирный + курсив). - параметры листа (кол-во строк шапки, заголовка таблицы, подвала) - для каждого макета (накладная, сф и пр.) задаются в обработке. - один раз для каждого макета считается кол-во символов в строке (номенклатуры). Задается там, где задаются параметры. - при выводе строки: строка разбивается (параметры уже заданы), считается кол-во строк (выведенных ранее + сколько сейчас хотим вывести), обрабатывается - продолжаем вывод или новую страницу делаем. Все. А твой "черновик" может и проще (не спорю), но ни чем не лучше.
#20 by Злопчинский
Я тебе объясню*2: - в _общем случае_ шрифты в разных документах (а их может быть множество всяких) - совершенно разные; - "параметры листа (кол-во строк шапки, заголовка таблицы, подвала) - для каждого макета (накладная, сф и пр.) задаются в обработке" - ты не поверишь, но например ТОРГ12 можно печатать и портрет и ландшафт. и даже на разных форматов листов. затрахаешься считать и описывать.. - см. п.1 - я при выводе нихрена ни считаю: плюнул на вывод - получил ответ "влезло на страницу/не влезло". . мой черновик "лучше" тем, что он - универсален и не требует подготовительных действий, связанных с какими-то расчетами. То есть в принципе можно оформить "универсально" . но вообщем, как ты написала - каждый сам выбирает как делать - можно гланды у отоларинголога вырезать, а можно и проктолога пригласить...
#21 by Aleksey
ну к примеру покупатель может быть на одной строке, а может и в 3 строки не влезть Товар аналогично, количество строк от 1 до 3. Предлагаешь лишнее обрезать, или сразу делать макет с ячейками под 4 строки, чтобы наверняка? Не совсем понял как ты определяешь влезло/невлезло? P.S. ПроверитьВывод в 8-ке кстати тоже не панацея, иногда ошибается
#22 by Злопчинский
блин ну все же просто мозги напрягите - вывести документ, "посмотреть" - влезло или нет. не влезло - сделать новую страницу, потворить "процедуру"
#23 by Aleksey
Посмотреть это кто? Человек или машина?
#24 by Злопчинский
#25 by Aleksey
хм, спасибо, что то этот метод как то мимо меня прошел
#26 by Злопчинский
он медленный. и для правильной работы еще надо правильно макет определить - поиграться выводом строк-секций "вместе со следующим". . если будешь себя хорошо вести - дам живой пример (счф например)
#27 by Джордж1
перейти на УПД?
#28 by Масянька
Чтобы ты признал, что ты сделал не "универсально"... Можно и в Москву через Владик прокатиться. А можно и левой рукой левое ухо почесать через затылок. Разные шрифты и форматы - это тебе не бантики, а документы. Кстати, и ТОРГ-12 сф унифицированные формы (да, ТОРГ-12 уже исключили, но память осталась). И, наверное, "черновик" открывается и закрывается? Аналогично номенклатуре. Не трудно посчитать, сколько строк займет покупатель, продавец и пр. в шапке. Это - универсально? :)))
#29 by 73с
"Не трудно посчитать, сколько строк займет покупатель, продавец и пр. в шапке. " Ну не сказал бы, что нетрудно, заранее знать сколько займёт например покупатель - проблематично. А главное - зачем считать, когда программа посчитает все сама ? Кстати, предложенный метод через черновик реализован в типовой бюджетной 7ке
#30 by toran1
Контрагенты не хотят УПД.
#31 by NikVars
Тогда допил отчета. Это интересная задача: простая, но с нюансами.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С