Имя: Пароль:
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) угу.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс