Имя: Пароль:
1C
1С v8
Отучить запоминать последний принтер, как?
0 Connect
 
16.11.12
10:42
Привет всем! Возможно ли сделать что бы 1с-ка ВСЕГДА использовала принтер, установленный в системе по умолчанию, если явно(ТабДокумент.ИмяПринтера) не был указан другой? А то она после указания другого - запоминает его, а другой принтер нужно использовать только под одним пользователем и при определенном условии. Да, в диалоге печати можно обратно выбрать дефолтовый, но это не подходит.
А то не хочется перелопачивать конфу если ... тогда принетр1 иначе принтер2... Или может быть можно отследить нажатие кнопки "Печть" в Вин-диалоге печати и после этого вернуть дефолтовый принтер?
Платформа 8.2(не УФ)
1 Connect
 
16.11.12
10:48
Неужели нет способа отучить это запоминание принтера? Поиском в гугле и на этом форуме пользовался - ничего путного... Может свежие идеи у кого есть
2 Connect
 
16.11.12
10:55
А такой вариант?
ТабДок.ИмяПринтера = Принтер2;
ТабДок.Показать();
- здесь SLEEP (показываем)
- показали, надеемся что на печать отправили...
ТабДок.ИмяПринтера = Дефолтовый.
но ведь слип заморозит систему, а потом печать сразу полетит на дефолт, хотя нужно было на принтер2
ТабДок.Напечатать() не подходит, нужно именно Показать()
3 Cube
 
16.11.12
10:57
Перед печатью запомнить принтер, что установлен, отправить на нужный, вернуть тот, что был перед печатью. Не?
4 Connect
 
16.11.12
11:00
(3) Не. Я же говорю, нужно не отправить, а показать. Юзер сам нажимает кнопку печать.
ТабДок.ИмяПринтера = п1
ТабДок.Показать()
ТабДок.ИмяПринтера = дефолт

в диалоге печати УЖЕ будет стоять дефолт
5 Cube
 
16.11.12
11:02
(4) Так ты показывай не ТабличныйДокумент, а форму, в которой выведешь свой ТабличныйДокумент. При закрытии формы делй чо хошь...
6 Connect
 
16.11.12
11:04
(5) А как ТабличныйДокумент впихнуть в форму? В какую? Это для каждого документа придется делать? Юзер зашел в этот документ, напечатал на принтер2, документ закрыл. Открывает другой - а у нас принтер2 так и остался, а нужен дефолт уже...
7 Cube
 
16.11.12
11:07
(6) Все стандартные печатные формы формируются в форме, а не просто в табличном документе.
8 Фауст
 
16.11.12
11:08
Попробуй в процедуре печати найти строчку
ТабличныйДокумент.ИмяПараметровПечати = "что то";
и закомментируй ее
9 Connect
 
16.11.12
11:09
(7) Да не стандартные это, конфа измененная.
ТабДок = Новый ТабличныйДокумент
...
ТабДок.Показать()
(8) нету ее - сразу говорю.
(7) А хотя это идея! Сваять формочку специальную и передавать в нее табдок, а ПриЗакрытии() формы возвращать дефолтовый принтер!
10 Cube
 
16.11.12
11:11
(9) "Сваять формочку" - она уже есть, ты просто не искал...
11 Cube
 
16.11.12
11:11
+(10) Хотя, в твоем случае, нужно всё-равно свою рисовать.
12 Connect
 
16.11.12
11:46
Блин... сделал уже, типовая ОФ ПечатьДокументов, ПриЗакрытии ставим дефолт, все хорошо, потом дошло. Последний принтер запоминается только ПОСЛЕ отправки на печать! Без этого никакие возвраты к дефолтовому принтеру не помогут... засада блин!
Придется разбираться каким образом запоминается принтер, надеюсь в реестре, и пытаться повлиять на эту запись после печати.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.