Форум Кладовочки АЛьФ`а

Общие вопросы => 7.7 => Тема начата: MWW_Ruza от 08 июня 2024, 19:12

Название: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 08 июня 2024, 19:12
Обнаружил у себя пробел в знаниях...
Ну, за все годы не приходилось ничего такого делать, а тут вдруг решил, и облом...  ???

Хотелка - в зависимости от длины строки в ячейке таблицы, менять размер шрифта.
Казалось бы - все есть, через Область...
Вот так попробовал:

ОблФирм = Таб.Область("R1C2:R1C2");
ОблФирм.РазмерШрифта(8);

И не работает так, как мне надо:

Без этого:
(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-560.jpg)

С этой добавкой:
(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-562.jpg)

В конфигураторе:
(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-561.jpg)

Не могу понять, что я не так делаю?

PS Нет, я конечно понимаю, что это можно сделать отдельными секциями, с разными размерами шрифта для разной длины строки... Но, лениво... Думал, так проще получится. А оно вон как >:(
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 08 июня 2024, 21:18
сделай отдельный макет
на макете установи строку (куда выводишь наименование) тоц высоты - макимальной фиксированной, какой она на твоей этикетке. Эта строка будет единственной секцией.
.
размеры "листа" вывода сделай ровно такими как эта секция. (большое поле на а; или аналогично на этикетку).
.
выводи эту секцию в черновик на этот "лист". Если количество страниц (метод есть!) =2 значит секция не влезла, уменьшай шрифт в секции и выводи повторно.
.
на ИС у меня есть разработка точо такая 
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 08 июня 2024, 21:19
https://infostart.ru/marketplace/181223/
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 08 июня 2024, 21:35
Все правильно делаешь
Обл = Таб.Область(...);
Обл.РазмерШрифта(РазмерШрифта);
.
только не "..в зависимости от длины строки в ячейке таблицы, менять размер шрифта.", а в зависимости от количества страниц того, что должно умещаться на одной странице
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 08 июня 2024, 21:37
"Не могу понять, что я не так делаю?"
-отсюда не видно почему у тебя без добавки и с добавкой - ширина колонки различная...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 08 июня 2024, 21:38
проверяй какой макет выводишь
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 07:04
Хм... Странно все это... Сам вижу, что делаю вроде все правильно - там есть то "три сосны", "заблудиться" негде  >:(

Что касается определения "влезло/не влезло" не по длине строки, а через отдельный вывод "черновика и подсчета получившихся страниц", я понял, идея интересная, попробую.

Но, до этого у меня поки и не дошло - я для эксперимента, просто добавил в процедуру вывода ПФ две строчки, так, как не делал такого раньше, как-то не было необходимости... Просто захотел попробовать, как размер шрифта "рулится" программно. Размер в тексте модуля ставлю вручную - сейчас там 8, как задано в макете, пробовал 10, 11, 12 - пофик. В выводимой форме в этой области ничего не меняется, а в следующей за ней все ломается, и ширина меньше делается...
На скриншоте видно.
Попробую сделать отдельную обработку для проверки/демонстрации этого "эффекта"...

PS У меня уже "крамольная" мысль - может дллка, отвечающая за вывод мокселя, в платформе так отрабатывает?
У меня она там не совсем стандартная - я использую решение с инфостарта, которое позволяет "в одну строку" подменять сохранение ПФ вместо xls в xlsx, а вместо txt в pdf(интеракиивно, из меню "Сохранить как") - ???
У меня это давно и успешно везде работает, очень удобно, косяков не замечал...
Но, может "кривая" работа с областями, это побочный эффект этой доработки, просто областями ранее не пользовался и не видел такого?
 
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 08:01
В общем, идея насчет "кривой работы" моксель.длл настолько понравилась, что решил проверить.
На "чистый" компьютер, установил "чистую" 1С, взял ту-же базу, попробовал...
Все то-же самое.
Так, что, с длл все нормально, причина в чем-то другом.

Напишу обработку тестовую, моксель использую из боевой, только процедуру свою, что-бы не зависила от конфигурации, и выложу... Может я чего-то очевидного не замечаю, х.з...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 09:12
Вот, исходная обработка, переделанная так, что-бы работала в любой конфе, даже пустой:
Ссылка на архив в облаке майл.ру (https://cloud.mail.ru/public/WiMq/LySQXXpJu)
При открытии задает вопрос про размер шрифта. Если не трогать и оставить 0, то эти строчки не отрабатывают, работает штатно, без проблем.
Если ввести любое число, отличное от 0, то эффект, как на скриншотах в начале темы.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 09:33
Хм... Похоже, что-то не так делаю с определением области для изменения размера шрифта...
В исходной таблице(макете, в терминах снеговика), область R1C2, а при выводе на печать, почему-то на строку вниз "съезжает", и пустая строка первая добавляется:

(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-563.jpg)

Похоже, все-таки я что-то делаю не так :-\
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Djelf от 09 июня 2024, 10:08
Ты указываешь координаты области и ее оформление до ее фактического вывода в таблицу в этом случае ширина колонок неопределена,  содержание области тоже неопределено, вылезает лишняя строка, остальные строки вслед за ней корёжатся по ширине.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 10:30
Понятно...

Да, перенес в:
            Таб.ПрисоединитьСекцию("Товар|Ценник");
           
            //    Отладка 09.06.2024
            Если ЗадаемРазмШрифта > 0 Тогда
                ОблФирм = Таб.Область("R1C2:R1C2");
                ОблФирм.РазмерШрифта(ЗадаемРазмШрифта);
            КонецЕсли;       


КонецПроцедуры // ДобавитьЦенник()

после добавления секции, все заработало.
Спасибо за подсказку, буду знать  :)
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 13:42
В общем, Сергей, твой вариант определения критерия, по которому нужно менять размер шрифта, безусловно интересный, но имеет смысл, когда в ячейке включен перенос по слогам, т.е. в ячейке(и соответственно в области), многострочный текст...
В моем-же конкретном случае, строка точно одна - заголовок... Больше, просто не имеет смысла для этой задачи. И размеров  шрифтов для этого ценника больше двух не будет - 8 и 10...
Поэтому, не стал заморачиваться с вспомогательной таблицей, сделал по длине строки:
СтрЗаг = СокрЛП(Строка(РабочаяДата()) + "            " + ПечФирма);
ПечСтрЗаг = СтрЗаг;
Таб.ПрисоединитьСекцию("Товар|Ценник");
// Отладка 09.06.2024
Если ТипЦенника = 2 Тогда
ДлинаСтроки = СтрДлина(СтрЗаг);
Если ДлинаСтроки - 6 >= 33 Тогда
РазмШрифта = 8;
Иначе
РазмШрифта = 10;
КонецЕсли;
  ДлОтступа = Мин(33 - СтрДлина(ПечФирма + РабочаяДата()), 12);
  Отступ = "";
  СчОтст = 0;
  Для СчОтст = 1 По Длотступа Цикл
  Отступ = Отступ + " ";
  КонецЦикла;                
  СтрЗаг = СокрЛП(Строка(РабочаяДата()) + Отступ + ПечФирма);
ПечСтрЗаг = СтрЗаг;
ОблФирм = Таб.Область("R1C2:R1C2");
ОблФирм.РазмерШрифта(РазмШрифта);
ОблФирм.Текст = ПечСтрЗаг;
КонецЕсли;
Конечно, не так универсально, как в твоем варианте, но, для конкретной задачи - вполне :)

Всем СПАСИБО! :)
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 13:54
Там было вывод даты печати ценника и фирмы в одной ячейке, шаблоном... Делал не я, это было так в исходнике, на основе чего делал... Переделывать лень, оставил так, просто вместо шаблна формлу сделал и в модуле формирую строку печати, с необходимым отступом между частями этого заголовка(от 6 до 12, в зависимости от длины всей строки)...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 09 июня 2024, 14:23
Вообще, в очередной раз убеждаюсь - семерка "неисчерпаема", никогда не пользовался областями печатных форм(когда например нужно было подкрасить красным что-то на печати, делал отдельную секцию с "раскрашенными" ячейками, которую выводил вместо основной по условию), а тут понял, что можно было и через области делать. И вообще, там у области куча всего...
Вот так, век живи, век учись, и все равно дураком подохнешь.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 09 июня 2024, 18:20
Цитата: MWW_Ruza от 09 июня 2024, 13:42В моем-же конкретном случае, строка точно одна - заголовок... Больше, просто не имеет смысла для этой задачи. И размеров  шрифтов для этого ценника больше двух не будет - 8 и 10...
можно и так...
но что-то мне подсказывает.. что... ;-) никогда такого не было и вот .. опять.. ;-)
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 11 июня 2024, 22:00
для печатной формы СЧФ/УПД - недопущение повисшего подвала(или его части) - делается штатно для плавающей высоты строки. Настройкой секций. как в принципе для любой аналогичной печатной формы где нет итогов по странице. С итогами по странице - например, для ТОРГ12 с плавающей высотой строки - уже придется аналогично с (черновиком) с мелкой хитростью (вывести в черновик сначала болванку итога по странице, а потом уже набивать строками для контроля перехода на новый лист)
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 12 июня 2024, 15:13
Цитата: MWW_Ruza от 09 июня 2024, 13:42для конкретной задачи - вполне :)

Все "ф топку!" :(

Для одного ценника работает идеально, а когда их несколько печатается - в несколько колонок и несколько рядов - то все ломается, так, как дя готовой ПФ, координаты области уже выведенных полей печати, будут отличаться от тех, что в исходной таблице...
Тут, через область не получится рулить содержимым ячейки, или вычислять координаты областей перед  указанием параметров области... Гиморой... Проще будет отдельной секцией сделать для разных размеров шрифта, как всегда и делал :(  Хотел "как лучше, а получилось как всегда"...

(https://content.foto.my.mail.ru/mail/m_w_w/_mypagephoto/h-564.jpg)

Первый, выделенный рамкой - как было задумано, а остальные "поплыли" - в первой колонке, начиная со второй строки вообще нет заголовка, а в остальных - шрифт 8, вместо 10...
Получается, при выводе каждого следующего, он в первом параметры области устанавливает, а все последующие выводит по умолчанию, как в исходной таблице задано.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Djelf от 12 июня 2024, 15:52
Для "тонкого" регулирования есть Йоксель.
Это не спасение, размер все равно считается через то самое место на котором мы обычно сидим.
Видимо ошибка очень старая и сидит в mfc, а починить нельзя, иначе все сломается вообще нахрен.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 12 июня 2024, 22:43
Цитата: MWW_Ruza от 12 июня 2024, 15:13
Цитата: MWW_Ruza от 09 июня 2024, 13:42для конкретной задачи - вполне :)

Все "ф топку!" :(

Для одного ценника работает идеально, а когда их несколько печатается - в несколько колонок и несколько рядов - то все ломается


А у меня совершенно аналогичный вывод - не ломается! См. Ссылку что я, выше давал. И всё совпадает по областям. Делай как надо, а как не надо - не делай.
.
Ценник - статичный макет. По всему областям марта! Кроме одной области, которая динамическая - область названия товара. Всё. Всё надписи кроме названия товара - фиксированный шрифт. И подбирается шрифт в ЧЕРНОВИКЕ для одной единственной области - для области названия. !!Черновик состоит только из одной секции!! - секции наименования. Всё. В черновике нет ни цен, ни дат и прочего. - одна единственная секция названия. Если эта одна секция не влезла на "лист" - уменьшаешь а черновике шрифт пока не влезет. И всё этикетки выводимые  на а4 в ряды и колонки - абсолютно симметричные и ничто никуда не слезает и не сдвигается.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 12 июня 2024, 22:47
Можно черновик сделать и полностью аналогичной этикеткой. И если на листе а4 секция названия имеет фиксированную высоту - то в черновике - куда выводится одна единственная этикетка - секция названия - авто высота.
.
Напиши в личку контакт в телеге - скину обработку.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 12 июня 2024, 23:00
Отправил в личку
Видео как это работает
http://video.mail.ru/mail/tomba/_myvideo/2.html
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 12 июня 2024, 23:01
Тонкости подбора шрифта в том, что например может не оказаться шрифта с размером 13 и обработка подсунет 12.5...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 13 июня 2024, 05:27
Цитата: MWW_Ruza от 12 июня 2024, 15:13или вычислять координаты областей перед  указанием параметров области..
ну, елки-палки, два оператора для вычисления строки и колонки секции, куда подсунуть подобранный размер шрифта...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 13 июня 2024, 10:15
"ну, елки-палки, два оператора для вычисления строки и колонки секции, куда подсунуть подобранный размер шрифта..."

Во... И я про это. Нужно для области задавать не координаты области в исходной таблице, а координаты области в выводимой, результирующей таблице.

А что касается определения и подбора размера шрифта через вспомогательную таблицу, то, как я уже выше писал - очень интересная идея.

Но в моем конкретном случае - не совсем то... У меня не на товар нужно подбирать шрифт, а на заголовок, в котором в исходной обработке шаблон, в который выводится РабочаяДата + "куча пробелов" + "НаименованиеДляПечати фирмы"... Мне это не нравится, но так было в исходной конфе сделано, и переделывать моксель лениво... Тем более, там ниже второй вариант ценника, как я понял, для всяких "уценок/переоценок", я пока даже не вникал, где и как используется. Поэтому, сделал по определению длины строки - в зависимости от длины строки, меняю количество "кучи пробелов", что-бы строка умещалась по горизонтали полностью... Их там в исходнике 12, решил - вычисляю сколько их может быть, что-бы уместилась, минимум до 6 уменьшаю, вместилась - хорошо, нет, делаю шрифт меньше.
По хорошему, конечно нужно делать эту секцию из трех ячеек по горизонтали, в крайних выравнивание по краям - в первой по левому, в третьей по правому, а среднюю, вторую, оставлять пустой, вместо пробелов. И размер шрифта подбирать только в третьей секции, где наименование фирмы, по скольку у разных клиентов оно может быть разной длины... Но, переделывать, то, что не мною сделано и уже десяток лет работает - как-то не охота. Никто этого не оценит.

"Отправил в личку" - ааа... В какую конкретно личку? 
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 13 июня 2024, 11:01
Во блин!
Только сейчас увидел, что здесь на форуме личка есть :)
Не обращал внимания.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 13 июня 2024, 11:16
Вот:
Обл = Таб.Область("R"+НомерСтрокиВывода+"C"+НомерКолонкиВывода+":R"+НомерСтрокиВывода+"C"+НомерКолонкиВывода);То, что я упустил...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: MWW_Ruza от 13 июня 2024, 11:36
А с наименованием товара, идея хорошая, может под настроение и переделаю у себя :-)

Просто с заголовком, вылез косяк - менеджер одной ИПшки позвонила, типа, "а нельхя сделать что-бы на ценнике №2 дата печаталась?"??? Говорю, почему нельзя, все можно... Полез смотреть, и выяснилось, что там в одну строку дата с наименованием, и просто не влезает. Поэтому и озадачился переделкой. До этого просто никогда туда не лазил, работало и работало, никто не жаловался, я туда и не лазил.
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Djelf от 13 июня 2024, 12:23
Цитата: MWW_Ruza от 13 июня 2024, 11:36а нельхя сделать что-бы на ценнике №2 дата печаталась
Креативные менеджеры... И еще котенка туды в виде цыпленка...
Название: Re: Область таблицы(печатной формы) и размер шрифта?
Отправлено: Злоп от 13 июня 2024, 13:14
Цитата: MWW_Ruza от 13 июня 2024, 10:15РабочаяДата + "куча пробелов" + "НаименованиеДляПечати фирмы"...
Рабочая дата и наименование фирмы - все равно лежат "отдельно" от наименования для печати. ну засунуть их в отдельную строку мокселя (даже не секцию) - что там такого сложного что моксель переделывать не хочется?! ;-) И тогда все что надо - подобрать размер шрифта для строки наименования как описывал выше.
.
Так не, мы, бляха-муха, насоздаем себе проблем, а потом а че так криво...?  ;-)