Имя: Пароль:
1C
 
Как программно задать нестандартный размер страницы ТД?
0 Prog_man
 
20.06.24
10:10
Добрый день,
делаю этикетку, нужен нестандартный размер страницы

указал размер, но на просмотр все равно показывает А4.

делал так

ТабличныйДокумент = Новый ТабличныйДокумент; 
	ТабличныйДокумент.ПолеСверху = 0;
	ТабличныйДокумент.ПолеСлева = 0;
	ТабличныйДокумент.ПолеСнизу = 0;
	ТабличныйДокумент.ПолеСправа = 0;
	ТабличныйДокумент.ПолеСправа = 0;
	ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
	ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;  
	ТабличныйДокумент.РазмерСтраницы="Custom";//нестандартный размер	
	ТабличныйДокумент.ВысотаСтраницы = 40;
	ТабличныйДокумент.ШиринаСтраницы = 58;
1 Волшебник
 
20.06.24
10:10
Задайте КлючПараметровПечати
2 Prog_man
 
20.06.24
11:09
(1)     ТабличныйДокумент.КлючПараметровПечати =  "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка";
так не получилось
3 Волшебник
 
20.06.24
11:12
Теперь задайте размер бумаги в свойствах принтера (окно предварительного просмотра / Параметры страницы)
4 Prog_man
 
20.06.24
11:15
(3) там только А4, А5 и др. произвольного размера нет
5 Kongo2019
 
20.06.24
11:18
(4) Значит принтер другие размеры не поддерживает. Эти данные берутся из драйвера принтера.
6 Garykom
 
20.06.24
11:40
(0) Надо поставить драйвера принтера который умеет "Custom"
7 Prog_man
 
20.06.24
11:50
(6) не знаю какой у клиента принтер этикеток, подключусь проверю.
8 Kongo2019
 
20.06.24
11:52
(7) На принтер этикеток обычно напрямую печатают, они все ZPL поддерживают, или аналог.
9 Garykom
 
20.06.24
12:10
(8) Макеты в ZPL рисовать "сложно"
Почти везде через винпринтер обычно
10 Kongo2019
 
20.06.24
12:15
(9) Фигли его там рисовать, в инете конструкторов валом.
У нас прямо с принтерами ПО нужное идет. Рисуешь этикетку, оно тебе код ZPL
11 DJ Anthon
 
20.06.24
12:16
(7) размер и прочие настройки устанавливаются на параметрах страницы макета прямо на самом принтере. заранее их не подготовишь.
12 Prog_man
 
20.06.24
13:39
(9) а обычный макет из 1с, разве не получится отправить на принтер этикеток?
13 Kongo2019
 
20.06.24
13:43
(12) Получится. Принтер этикеток с точки зрения 1С такой же принтер как и любой другой. Он даже пробную страницу печатает.
14 Garykom
 
20.06.24
13:43
(12) Получится
Но результат придется подгонять для каждого принтера этикеток, его настроек, размера бумаги и даже компьютера/драйвера
15 Garykom
 
20.06.24
13:44
(14)+ Это стандартная проблема когда шаблон макета на компе/сервере разработчика нормально
А при переносе на комп/сервер прода все уезжает
16 Kongo2019
 
20.06.24
13:45
(15) Поэтому я гоняю на них через ZPL. На COMпортовские даже дрова ставить не надо. прямо в порт пишу.
17 Garykom
 
20.06.24
13:49
(16) USB/LAN тоже самое
Как сетевой принтер и просто на него копировать файлик
18 Kongo2019
 
20.06.24
14:02
(17) У меня по постах POS терминалы стоят. Там COM портов хоть попой ешь.
19 Prog_man
 
20.06.24
15:05
подключился, проверил печатает норм. но возникла проблемка,
у клиента штрихкод OZN1566917233, и такой штрихкод не печатается, 1с кроме EAN-13, другие форматы не использует?
если генерирую EAN-13, все норм.
20 Kongo2019
 
20.06.24
15:08
(19) Эти все знает.
    Формат EAN13
    Формат EAN8
    Формат Code 39
    Формат Code 93
    Industrial 2 of 5
    Interleaved 2 of 5
    Codabar
    Code 128
    EAN128
    RSS 14
    Code 16k
    PDF-417
21 lEvGl
 
20.06.24
15:08
(19) использует, тип задается в настройках штрихкода. можно мышой, можно кодом
22 Prog_man
 
20.06.24
15:14
сейчас такой код

    ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
                ПараметрыШтрихкода.Ширина  = 300;
                ПараметрыШтрихкода.Высота  = 100;
                ПараметрыШтрихкода.ТипКода = 1;
                ПараметрыШтрихкода.ОтображатьТекст = Истина;
                ПараметрыШтрихкода.РазмерШрифта   = 0;
                ПараметрыШтрихкода.УголПоворота   = 0;
                ПараметрыШтрихкода.Штрихкод       = Штрихкод;
                ПараметрыШтрихкода.ПрозрачныйФон  = Ложь;
                ПараметрыШтрихкода.Масштабировать = Истина;    
                
                
                
                ИзображениеШтрихкода = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);

                рис=ОбластьМакета.Рисунки.РисунокШтрихкод;
                
                рис.РазмерКартинки=РазмерКартинки.Пропорционально;
                рис.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
                //Вокруг штрихкода не должно быть рамки
                
                рис.Картинка =  ИзображениеШтрихкода.Картинка;
23 Prog_man
 
20.06.24
15:15
какой тип кода указать? чтобы норм печатался
24 lEvGl
 
20.06.24
15:20
(23)в описании к компоненте
https://its.1c.ru/db/metod8dev/content/1838/hdoc
Из плоских Code128 самый вместительный

Свойство содержит идентификатор типа штрихкода. Может принимать одно из следующих значений:
0 (тип кода - EAN8)
1 (тип кода - EAN13)
2 (тип кода - EAN128)
3 (тип кода - CODE39)
4 (тип кода - CODE128)
5 (тип кода - CODE16K)
6 (тип кода - PDF417)
7 (тип кода - Industrial2of5)
8 (тип кода - Interleaved2of5)
9 (тип кода - Code39FullASCII)
10 (тип кода - CODE93)
11 (тип кода - ITF14)
12 (тип кода - RSS14)
13 (тип кода - CodaBar)
14 (тип кода - EAN13 AddOn 2)
15 (тип кода - EAN13 AddOn 5)

Но, вы точно уверены, что EAN не нужен?
25 Prog_man
 
20.06.24
15:19
(24) а без компоненты не получится?
26 Kongo2019
 
20.06.24
15:20
(25) через ZPL
27 lEvGl
 
20.06.24
15:22
(25) как без компоненты, зачем без компоненты? она у вас уже работает, это

ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ИзображениеШтрихкода = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);

только тип кода поменять надо, если не ЕАН нужен
28 Prog_man
 
20.06.24
15:30
получилось вот так
ПараметрыШтрихкода.ТипКода = 99; // авто тип нашел по конфигурации ШтрихкодАвтоТип = (ПараметрыШтрихкода.ТипКода = 99);
29 Prog_man
 
20.06.24
16:21
одну проблемку решил, появилась другая, где то с десяток этикеток печатает норм. потом начинает "съезжать" как это побороть? клиенту нужно эти этикетки тысячами шт. печатать
30 Garykom
 
20.06.24
16:22
(29) На принтере датчик этикетки проверь
31 Garykom
 
20.06.24
16:24
(29) И покажи как выглядит это "съезжать"
Постепенно все последующие сползают или редкие только и последующие нормально
32 Prog_man
 
20.06.24
16:29
(31) постепенно сползают, принтер проверить не могу в другом регионе. но из другой программы печатает норм
33 Prog_man
 
20.06.24
16:30
разделитель страниц есть, т.е каждая этикетка на отдельной странице
34 Kongo2019
 
20.06.24
16:31
(29) Запусти калибровку принтера. Он под бумагу станет.
35 lEvGl
 
20.06.24
16:33
(32) драйвера сбросьте на дефолтные настройки, они всегда такими должны быть, управление бумагой и т д из 1с. Умелые пользователи всегда лезут в настройки и что то там делают, сброс помогает.
Либо да, аппаратный косяк с датчиком разрыва
36 Prog_man
 
20.06.24
16:38
(34) (35) принтер трогать пока не буду, а то могут быть глюки в программе из которой сейчас печатают
37 Garykom
 
20.06.24
16:39
(32) возможно параметры страницы с отключенным датчиком этикеток каким то образом используются из 1С
38 Garykom
 
20.06.24
16:45
(37)+ ИмяПараметровПечати (КлючПараметровПечати) задать уникальное
Вывести в режиме предприятия на том компе где драйвер принтера табдок (с этикетками) на просмотр
И глянуть параметры/настройка принтера через Печать
39 Prog_man
 
20.06.24
16:46
(37) вот и пытаюсь понять почему датчик не срабатывает. может им можно как то из 1с управлять программно ?
40 Prog_man
 
20.06.24
16:47
(38) у принтера этикеток предварительный просмотр не работает и параметры там не доступны, ну или я не нашел.
41 Garykom
 
20.06.24
16:49
(39) из 1С фактически через ИмяПараметровПечати используется заданные в интерфейсном режиме настройки
(40) не в предварительном просмотре, просто Параметры страницы или Печать и там Настройки принтера искать
42 Prog_man
 
20.06.24
16:56
(41) добавить в код ?
    ТабличныйДокумент.ИмяПараметровПечати =  "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка1";
читал что в таком случае слетают остальные параметры
Ширина и Высота страницы