Имя: Пароль:
1C
1С v8
УТ 11.4 Динамическое выравнивание содержимого на этикетке
0 Config13
 
01.12.21
09:30
Доброго времени суток!!! Обозначу сразу - я не программист 1С, я - сисадмин. Огромная просьба ликбеза. УТ 11.4  Пытаемся , дабы исключить человеческий фактор при работе в Label Designer, наладить печать этикеток для продукции из 1с. То есть в карточке товара заведены характеристики (текст) Подкладка, состав (на основании которого в этикетку подставляются нужные символы по уходу), логотип и т.д. Тестируем вроде пока всё хорошо, но , как всегда - одно НО.  Этикетка вшивается в шов изделия сложенной пополам, то есть должна иметь границу посередине и поля верх и низ, чтобы место было прошить. Если, допустим размер содержимого по 2-3 строки - всё хорошо.
Если по 1 строке - получаются громадные пробелы. Если стоки по 4-5 - всё переезжает, размера не хватает и мучение и боль.  И вот собственно вопрос:  неужели нет в таком гиганте как 1С возможности динамического выравнивания содержимого, ну например как в вэб-верстке используют "резиновые шаблоны" ????  Может быть есть какие-то другие способы генерации этикеток?? Может через Битрикс или ещё как то.  Я уже обращался и к программистам и к франчайзи - результата 0. Но ведь на прилавках куча товаров от больших производителей и что - они так же мучаются??? Сомневаюсь. Подскажите Бога ради в какую сторону посмотреть\почитать. Ну не верю что не решаемо. Заранее благодарю.
1 Kassern
 
01.12.21
09:35
(0) Все решаемо, было бы желание и ресурсы. В вашем случае можно попытаться разбить макет этикетки на области, при заполнении каждой проверять на возможность вывода (влазит или нет) и в зависимости от результата распределять строки по нужным областям, возможно менять шрифт и т.д.
2 Ryzeman
 
01.12.21
09:38
(1) Упрётся в физический размер этикетки. Посчитать размер областей \количество строк можно, конечно, но условно, что он захочет если у него 5 строк выйдет? Уменьшать шрифт?
3 Ryzeman
 
01.12.21
09:41
(0) Но в целом решение видится как пишет (1). Аналог прайс-листа, когда макет не статичный а наборный. По классике если не влезает, то начинается новый лист, а у тебя придётся как-то извращаться и на лету считать\менять размеры либо переформировывать рекурсивно пока не влезет.
4 Kassern
 
01.12.21
09:43
(2) а тут уже надо понимать какой шрифт допустим и сколько максимально строк и какой длиной влазит и уже на основании этого, контролировать заполнение полей первичных объектов. Тогда не будет проблемы напечатать этикетку (все влезет). В противном случае вам кто-нибудь воткнет томик войны и мира в текст к этикете, как выводить будете?)
5 Смотрящий
 
01.12.21
09:44
(0) Кртинку покаж
6 BaZZiL
 
01.12.21
09:48
Печатать этикетку на языке принтера.
7 Config13
 
01.12.21
09:52
(6) Пару раз кто-то это упоминал, но без конкретики. Где можно про это почитать, не подскажите??
8 Злопчинский
 
01.12.21
09:54
(6) в этом случае большой текст можно будет автомасштабировать шрифт?
9 Config13
 
01.12.21
09:55
(3) Я уже думал в сторону того, чтобы обращаться к БД 1С каким-то вэб-продуктом, условно сайтом Битрикс или т.п. и генерить PDF из полученных данных , средствами, например php. В 1с программировании просто я вообще ноль полный
10 Злопчинский
 
01.12.21
09:55
я уже выражал неоднократно недоумение что в 8-ке ниасилили сделать автовписывание текста в ячейку на уровне платформы. Погромисты, блин...
11 Злопчинский
 
01.12.21
09:57
для клюшек здесь: https://infostart.ru/public/181223/
плюс @Альф в Формексе сделал приблуду, которая позволяет в текст на экране сделать масштабирование шрифта.
12 Kassern
 
01.12.21
09:57
(9) у вас разве в штате нет программиста 1с?
13 Config13
 
01.12.21
10:00
(12) Он есть на фрилансе,  но дальше того что есть дело не двигается. А самое ужасное что и во франчайзи, в которые я обращался и в фирмах по 1С-поддержке ответы аналогичные.
14 Kassern
 
01.12.21
10:01
(13) дайте ему почитать эту ветку. Пускай попробует поиграться с проверкой вывода областей и шрифтов.
15 Config13
 
01.12.21
10:01
(11) Я более чем уверен, что в 7-ке (если б на неё работали) давно бы уже всё сделали и намного быстрее, спасибо.
16 Злопчинский
 
01.12.21
10:08
на ИС есть публикация на эту тему. Проверка с вывода областей наверное завязана на установленный принтер. Потому что не всегда предпросмотр перед печатью полностью соответсвует тому что получается вживую при печати на принтере (погрешности пересчета DPI?)
17 Config13
 
01.12.21
10:15
(5) а как сюда картинку приложить?
18 Kassern
 
01.12.21
10:18
(17) вы можете ее на яндекс/гугл диск скинуть и ссылку сюда. Либо воспользоваться другими сервисами выдающие ссылки на картинки.
19 Config13
 
01.12.21
10:21
20 Kassern
 
01.12.21
10:26
(19) это половинка, или данная этикетка на пополам еще будет сложена?
21 Злопчинский
 
01.12.21
10:31
(19) крайне херовый дизайн для этикетки с неограниченным набором символов. куча места неиспользуется, за счет этого не влазит. будьте проще. Типа в "одну строку" объедините
Верх: шерсть-10%, ПЭ-70%, вискоза-10%
Утеплитель: Шерстепон: Шерсть-70%, ПЭ-30%
.
ну и у вас там кукольники сидят или тряхомудией занимаются? почему в одном случае дефис обрамлен пробелами с двух сторон, а в остальных - нет?
22 Злопчинский
 
01.12.21
10:33
размер этикетки в мм еще скажите (чисто интересно)
23 Злопчинский
 
01.12.21
10:35
Я бы вообще все три показателя Верх, Утеплитель. Подкладка - склеил в "одну строку". как раз бы с запасом влезло в верхнюю половину, а пикчи и лого - в нижнюю...
24 Смотрящий
 
01.12.21
10:39
(21) Раздрай у них в свойствах номекнклатуры которые списками значений
(19) А где "половинчатая" ?
25 Config13
 
01.12.21
10:53
(20) Это полный размер этикетки, которая должна складываться
26 Config13
 
01.12.21
10:54
(22) 60х87
27 Config13
 
01.12.21
10:57
(24) я так понял, что она должна складываться по полам в районе между Подкладка и символами ухода. Почему вопрос пишу я - потому что ранее этого вопроса не касаясь, теперь мне выдвинули предположение что что-то не так спринтером похоже :-)
28 Kassern
 
01.12.21
10:59
(25) ну вот для каждой половинки своя область. Пихаете свойства в область макета, если не влазять, то начинаете играться с форматом данных, если и это не помогает, то ругаетесь и даете тык сотрудникам, которые сантабарбару в свойство воткнули. Если у вас 1 принтер и 1 размер этикетки, то можно вычислить, сколько чего в каком формате влазит и точно понимать, как это дело будет выводится при печати.
29 Смотрящий
 
01.12.21
11:03
Короче, приводите в порядок списки свойств - Шерсть-10% меняете на Шерсть 10% с разрелителем ", " если несколько значений и т.р., подменяете дубли
назначаете крайнего в заведении свойств
Шерстепоны, всякие выкидываете из состава, у вас они только место занимают и.к. все равно идет перечисление составляющих
Ну и играетесь с макетом в "Label Designer" на предмет шрифтов, рекомендую кегль 6 и полужирный
30 Смотрящий
 
01.12.21
11:05
сокращения уберите. ПЭ еще понятно - полиэсстер. ПН уже не понятно ...
31 BaZZiL
 
01.12.21
11:17
(7) Нужно смотреть описание языка принтера, какие там есть методы обработки данных и какие способы отправки данных на принтер. Может в нем есть HTTP сервер, а может потребуется по TCP/USB/RS-232 отправлять данные напрямую минуя спулер печати.
Макет этикетки в таком случае будет текстом. Картинки держать как-то отдельно.

(8) Зависит от возможностей языка принтера, как минимум - задать область печати текста в dot, которая обрежет текст и не даст ему никуда уползти.
Например, такая белиберда:

Темплейт = //строка для метода "Выполнить"
"SIZE 58 mm, 40mm //размер этикетки
|GAP 2 mm,0 //расстояние между этикетками на подложке
|DIRECTION 1 // направление печати
|CLS //очистить буфер
//BARCODE X,Y, "code type",height,human readable,rotation,narrow,wide,[alignment,] "content " печать штрихкода
|BARCODE 90,20,""EAN13"",150,2,0,3,3,"""+Штрихкод+""" //Поле штрихкода левый верхний угол XY, тип штрихкода, высота, цифры под штрихкодом, поворот, толщина линий, содержимое,
|BLOCK  10,210,450,220,""ROMAN.TTF"",0,8,8,0,2,0,"""+Наименование+" Артикул ("+АртикулНоменклатурыКонтрагента+")"+"""
|PRINT "+Количество+Символы.ПС;

Где в команде BLOCK (прямоугольная область текста) координаты 10,210,450,220, (левый верхний угол XY, ширина, высота блока XY) можно либо вычислить на стороне 1С, либо на стороне принтера.
И да, в зависимости от величины DPI принтера координаты тоже нужно пересчитать.
32 Config13
 
01.12.21
11:43
(29) https://disk.yandex.ru/i/os1VDHKvbHnKpw
Сможет кто оценить, судя по скрину, может явно какие косяки видны???
Меня смущает жестко заданное как-будто количество строк в текстовых полях
33 Kassern
 
01.12.21
12:11
(32) у вас один размер этикетки под это дело? Уже посчитали сколько строк влазит на одну сторону?
34 Kassern
 
01.12.21
12:14
(33) и сколько символов в строку вмещается. Какие действия проводите, если текст слишком длинный сейчас?
35 Ryzeman
 
01.12.21
12:35
(32) не совсем понятно какой результат в принципе нужен. Взять три пограничных состояния - Минимальное - по 0 или по 1 строчке в каждом поле, оптимальное - столько строк, что бы этикетка была заполнена целиком (хотя это более менее понятно) и избыточное - когда строк сильно больше, чем запланировано (или если известно - максимальное количество строк).

В макете можно обойтись ячейками и параметрами, использовать автоматическое вычисление высоты ячейки по умолчанию, а свойство у ячейки РазмещениеТекста поставить "Переносить". Но это никак не решит проблему пустоты или избыточности строк.

Тут вообще во многом вопрос дизайна. На мой взгляд если количество строк и размер шрифта в этикетках "пляшет", то это очень некрасиво.
36 Смотрящий
 
01.12.21
12:40
(32) Кривая этикетка слепленная находу
Судя по внешнему виду увас или не УГ 11.4 или какой то собственный механизм формирования, без использования стандартного
Смотреть надо ...
37 Злопчинский
 
01.12.21
12:43
(27) что мешает сделать как в (21)?
38 Злопчинский
 
01.12.21
12:44
(26) блин, я в этикетку 58x39 раза в три больше информации впихнул... на таком размере этикетки войну и мир можно написать...
39 Смотрящий
 
01.12.21
12:46
(38) в 30х40 впихивали такое
40 Злопчинский
 
01.12.21
12:50
(32) мудачный макет.
делай проще. и все влезет и еще место останется
https://content.screencast.com/users/Che66/folders/Capture/media/98cfbbd1-c7a3-4ca1-a531-e2c6400804ca/LWR_Recording.png
41 Злопчинский
 
01.12.21
12:52
(29) угу.
если хотят чтобы "Шерсть 10%" не получилось что 10% перенеслось от "шерсть" на другую строку - вместопробела - неразрывный пробел юзать Симв(160).
.
если совсем напряг - то еще читабельно 4 кегль жирный. но не всяким шрифтом.
42 Злопчинский
 
01.12.21
12:54
Секцию верх - я бы вообще одной тсрокой сделал вывод, а в строке формировал бы содержимое типа как в (40).
43 Смотрящий
 
01.12.21
13:02
(41) В переносе % нет ничего страшного если приведут в порядок строки
4 кегль не всякий принтер возьмет, 6 полужирный оптимальнее всего
44 Злопчинский
 
01.12.21
13:04
(43) угу.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший