Имя: Пароль:
1C
1С v8
Табличный документ.Напечатать()
,
0 YHVVH
 
21.06.13
17:44
Если установить режим использовать диалог печати, каким образом можно отловить событие - если пользователь нажал отмена?
1 YHVVH
 
21.06.13
18:04
ну вот докатились .... даже не спрашивают зачем.
2 Утконос
 
21.06.13
18:05
а что такое Диалог, режим, событие ?
3 YHVVH
 
21.06.13
18:10
Табличный документ можно сразу отправить на печать используя метод Напечатать(), а можно чтоб перед печатью выводилось окно выбора принтера. вот если использовать так

ТД.Напечатать(РежтимИспользованияДиалогаПечати.Использовать)

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

так вот вопрос, как мне узнать какую кнопку нажал пользователь в диалоге печати отмену или ок?
4 YHVVH
 
21.06.13
18:11
окошка = окошко
5 zladenuw
 
21.06.13
18:11
зачем?
6 Утконос
 
21.06.13
18:13
(3) "так вот вопрос, как мне узнать какую кнопку нажал пользователь в диалоге печати отмену или ок?"
7 YHVVH
 
21.06.13
18:14
(5) чтоб прервать дальнейшее выполнение программного кода, в зависимости от выбора пользователя. если нажал ок - то программа будет выполняться дальше, а если отмена , то "выход";
8 Утконос
 
21.06.13
18:14
(6) 1. Стоишь у принтера и смотришь, если печатается значит ОК , иначе Отмена
2. Ложишь пачку бумаги, вечером пересчитываешь, если совпадает то значит Отмена, отмена, отмена.
9 zladenuw
 
21.06.13
18:22
10 YHVVH
 
21.06.13
18:28
(9) мне бы не хотелось так сильно углубляться.
11 mehfk
 
21.06.13
20:10
(1) Считаешь распечатанные экземпляры?
12 YHVVH
 
21.06.13
20:15
(11) нет, проблема в (7)
13 mehfk
 
21.06.13
21:08
(12) Достаточно взять отладчик уровня пользователя (3-го уровня) и... при наличии некоторого упорства и знаний WINAPI можно даже ВК сочинить :)

Удачи!
14 YHVVH
 
21.06.13
22:21
(13) спасибо
15 Лефмихалыч
 
21.06.13
22:24
(7) выкинь свой код в мусор. если пользователь нажал "ок", то это ни чего не значит. Не должно ни чего выполняться ни до, ни после отправки на печать, поскольку даже, если пользоватеьл нажал "0к", то это не значит вообще ни чего.
16 YHVVH
 
21.06.13
23:03
(15) представь ситуацию у тебя несколько ТД , тебе надо их распечатать? каким образом будешь делать?
17 zladenuw
 
21.06.13
23:11
(16) выводишь отдельно список документов и флаг и кнопку печать без просмотра. ну и по клику открывать макет печати для документа.
18 YHVVH
 
21.06.13
23:16
(17) у меня кнопка печать комплекта одного документа, в комплект входит куча видов начичная от сФ и заканчивая сертификатами...

в цикле формирую ТД и посылаю на печать вроде все просто, но перед печатью надо чтоб пользователь выбрал принтер, и вот тут самое интересное начинается.

решается  проблема просто, в типовых комплект формируется в одной ТД. но меня это не устраивает.
19 lEvGl
 
гуру
21.06.13
23:17
мож чего не понимаю, но все таки: открыть окно ДиалогВопроса(или что подобное) спрашиваешь напечтать ? ну и да - печать, нет - не печать; показать форму с тремя кнопками ПечатьНаПринтерПоУмолчанию, ВыборПринтера(вызвать Винд. диалог), отмена
20 YHVVH
 
21.06.13
23:17
интересное заключается в том, что если пользователь закроет окно печати - отмена, то печать пойдет дальше.
21 Лефмихалыч
 
21.06.13
23:19
(16) Сделаю свою форму для выбора принтера и настройки всех настроек. Буду ее вызывать ДО формирования выходных форм и отправлять на печать безо всяких диалогов
22 YHVVH
 
21.06.13
23:20
(19) все правильно понимаешь, как вызвать диалог ВыборПринтера(вызвать Винд. диалог)?
23 lEvGl
 
гуру
21.06.13
23:20
обработай как надо - продолжить/не продожить, в чем проблема то
24 Лефмихалыч
 
21.06.13
23:21
(22) ни как. Его можно только сэмулировать.
EnumPrinterConnections() http://msdn.microsoft.com/en-us/library/zhds6k80(v=vs.84).aspx
25 YHVVH
 
21.06.13
23:22
(21) делать свою форму выбора принтера - вариант.
я думал об этом, но прежде спросил
26 YHVVH
 
21.06.13
23:24
(24) спасибо, подумаю
27 YHVVH
 
21.06.13
23:29
дурацкая конечно ситуация , что пользователь нажимает кнопку печать комплекта, затем выбирает состав комплекта , жмет печать и потом до него доходит что надо отменить. но все может быть. хотелось обойти малой кровью, поэтому и задал вопрос.
28 lEvGl
 
гуру
21.06.13
23:30
(22) сам же написал - ТД.Напечатать(РежимИспользованияДиалогаПечати.Использовать)
29 YHVVH
 
21.06.13
23:32
(28) если я его вызову , то он без вариантов пойдет дальше по программе в цикле печатать другие ТД
30 lEvGl
 
гуру
21.06.13
23:37
(24)кого там эмулировать; надо обработать варианты печати в 1с, зачем тут АПИ(или что там по ссылке)
(29)никто никуда не идет, окно виндовое, но висит как модально
31 YHVVH
 
21.06.13
23:40
(30) долго висеть будет?
32 YHVVH
 
21.06.13
23:41
+(31) оно висит пока юзер не выберет ок или отмена
33 lEvGl
 
гуру
21.06.13
23:41
(31)ну чуть не понял... вопрос надо задать 1сными средствами и обработать
34 YHVVH
 
21.06.13
23:41
нажмет ок пойдет печать документа и адльше по циклу, нажмет отмена документ не распечататься но в цикл пойдет дальше
35 YHVVH
 
21.06.13
23:42
(33) лучше 1сными
36 lEvGl
 
гуру
21.06.13
23:44
форма, на ней три кнопки ПечатьНаПпринтерПоУмолчанию, ПечатьНа: поле выбора принтера, Отмена
37 YHVVH
 
21.06.13
23:47
(36) это я понял, я написал про это в (25)

....делать свою форму выбора принтера - вариант.
38 YHVVH
 
21.06.13
23:48
но это надо формировать список принтеров, потом как то печатать именно на определенный принтер
39 YHVVH
 
21.06.13
23:50
в 7.7. было у меня так

в реестра узнавал текущий принтер

менял потом его на выбранный

после печати опять возвращал старый

может в 8.2 как то распечатать на нужный принтер?
40 lEvGl
 
гуру
21.06.13
23:53
Попытка
       Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
   Исключение
       Сообщить(ОписаниеОшибки());
       Отказ = Истина;
   КонецПопытки;
   
   ServicesSet = Locator.ConnectServer(".");
   ObjectSet = ServicesSet.InstancesOf("Win32_Printer");
   СЗ = Новый СписокЗначений;
   Для каждого Item Из ObjectSet Цикл
       ЭлементыФормы.СписокПринтеров.СписокВыбора.Добавить(Item.Caption, Item.Caption);
   КонецЦикла;

Ну да, не без скриптов (24);)
И ТД.ИмяПринтера
41 YHVVH
 
21.06.13
23:54
(40) спасибо друг
42 lEvGl
 
гуру
21.06.13
23:55
вот не пойму - для чего вы это делаете, 100% же в курсе дела
43 YHVVH
 
21.06.13
23:56
(42) не понял, что ?
44 YHVVH
 
21.06.13
23:57
блин домой пора, извини друг. Всем спасибо.