Имя: Пароль:
1C
1C 7.7
v7: Таб.Напечатать() - отправляет печать на принтер по умолчанию а не на заданный
0 evgpinsk_
 
29.03.25
18:02
Добрый день

ИмяПринтера="Чековый принтер";
Таб.ПараметрыСтраницы(1,,,0,0,0,0,,,1,,ИмяПринтера);
Таб.Напечатать(0);

почему-то данный код отправляет печать не на "Чековый принтер" а на принтер который задан по умолчанию.

Есть варианты решения?
1 evgpinsk_
 
29.03.25
18:09
После того как руками распечатать на нужный "Чековый принтер" 1с это запоминает и отправляет далее печать уже на этот принтер
2 Злопчинский
 
29.03.25
18:09
Для начала:
Приводим в порядок код.
1. Указать Таб.Опции, в них указать Опции Печати
2. За название принтера - расстрелять с особой жестокостью. Исправить.
3. После 1,2 - пробуем. Проверяем внематочно чтоб ыимя принтера заданное было стопудово тем именем принтера, которое пристуствует в списке принтеров.
4. Пробуем Таб.Напечатать(1) - проверяем. Устанавливаем нужные параметры в диалоге. Пробуем напечатать с диалога.
5. проверяем тщательно установку в системе этого принтера, бывает что установлен под админом, а для пользователя клинится из-за незаданных параметров.
6. Пробуем снова по п.3
7. Докладываем результат
3 evgpinsk_
 
29.03.25
18:28
(2) Добавив Таб.Опции();

проблема не решилась.

код
Таб.ПараметрыСтраницы(1,,,0,0,0,0,,,1,,имяПринт);

запоминает принтер на который последний раз была отправлена печатать, и затем если я меняю в переменной имяПринт на любой другой принтер из системы и пробую печатать, 1с печатает не на новый принтер а на тот на который последний раз печатала.

п.с. ИмяПринтера="Чековый принтер";
это было для примера. по факту пробовал
ИмяПринтера="TSC TE200";
и
ИмяПринтера="TSC_TE200";
естественно меняя названия этого принтера в системе
4 evgpinsk_
 
29.03.25
18:31
Т.е. у меня стоит задача чтобы в обработке в поле Принтер юзер прописал нужный ему принтер и 1с послала печать на этот выбранный принтер.

По факту 1с сначала отправляет печатать на принтер установленный в системе по умолчанию, или отправляет на тот на который последний раз печатала этот отчёт.

и не реагирует на принтер, который указан в Таб.ПараметрыСтраницы(,,,,,,,,,,,имяПринт);
5 mishaPH
 
29.03.25
18:49
(0) никогда в названии не используйте пробелов и желательно называйте на англ языке.
6 Bigbro
 
29.03.25
19:12
вы описываете как 7ка себя по умолчанию ведет, значит она не видит ваш принтер, который указываете.
7 Злопчинский
 
29.03.25
19:45
(4) попробуй формексом получить список принтеров
8 Builder
 
29.03.25
20:30
(0) Был такой прикол у клюшек. Помню был код, устанавливал в реестре для 1с (или  для всей винды даже) имя этого принтера по умолчанию, тогда все печаталось норм. Надо поискать.
п.с.
Точнее даже так - получаем принтер винды по умолчанию, запоминаем. Устанавливаем нужый, печатаем, возвращаем как было.
9 mishaPH
 
29.03.25
20:39
х.з. всегда причина была только в том, что имя принтера было не косо.
10 Guk
 
29.03.25
21:10
(5) на фейхоа? нормально семерка кирилицу и пробелы воспринимает. просто надо уметь их готовить...
11 evgpinsk_
 
30.03.25
09:30
(5) Дело не в пробелах, в (3) написал что пробовал и без пробелов
(7) Зачем? Формекс увидит тот же список что я вижу глазами в Пуск/Принтеры
12 Ёпрст
 
30.03.25
10:55
(0) на вот, занимайся
https://cloud.mail.ru/public/1DRp/2vGd7sp1p
13 evgpinsk_
 
30.03.25
12:19
(12) Спасибо.
Проблема оказалась в опциях, нужно указывать 5й параметр
Таб.Опции(1,1,,,"Нужно указать имя опции печати");

п.с.
я и пробовал использовать опции, и вроде даже указывал 5й параметр, но получается гдето чтото делал не так
14 mishaPH
 
30.03.25
13:27
(13) аа. ну да.. он же должен запомнить по моему все это
15 Chai Nic
 
30.03.25
18:37
(10) Семерка не юникодная, может быть всякая фигня с разными кодовыми страницами
16 Злопчинский
 
30.03.25
21:11
(13) я тебе еще в (3) сказал
AdBlock убивает бесплатный контент. 1Сергей