Имя: Пароль:
1C
 
Как в 1с программно очистить буфер обмена Word
0 udmesk
 
17.01.11
11:56
нигде не нашел, может кто знает?
1 Wobland
 
17.01.11
11:59
хм..... зачем такое надо?
2 udmesk
 
17.01.11
13:15
печатаю несколько шаблонов пакетом, беру шаблон, заполняю закладки и складываю все в один документ и его потом показываю, но при закрытии вопрос задает про буфер,что не заполнен, хотелось бы чтобы всякую ерунду не спрашивал у пользователя.
3 udmesk
 
17.01.11
13:16
что в буфере большой кусок типа, оставить его другим приложениям.
4 aleks-id
 
17.01.11
13:16
вообще то это буфер обмена винды...
5 udmesk
 
17.01.11
13:17
суть вопроса не меняет, как почистить?
6 smaharbA
 
17.01.11
13:18
(4) вообщето это буфер обмена офиса
7 Wobland
 
17.01.11
13:18
(2) какой вопрос задаёт? может, про сильно большой буфер? тогда засунь ему (поручики молчать!) что-либо маленькое
8 udmesk
 
17.01.11
13:19
да что большой кусок в буфере
9 udmesk
 
17.01.11
13:21
я так понимаю плюсом же будет что либо маленькое, а большой кусок так и будет его смущать
10 Wobland
 
17.01.11
13:21
+(7) или пустую строку (?)
11 Wobland
 
17.01.11
13:21
(9) плюсом зачем?
12 udmesk
 
17.01.11
13:23
ну в буфер же ложиться плюсом все что ложишь туда, или я не прав?
13 Wobland
 
17.01.11
13:24
(12) код покажи
14 СвинТуз
 
17.01.11
13:27
Довольно тяжело это сделать
Несколько лет назад искал как это сделать из фокспро
ничего не понял
понял только что даже сам офис не имеет методов очистки буфера.
Это чуть ли не какая то внешняя надстройка.
Типа ком объекта ... только без методов
15 Wobland
 
17.01.11
13:28
(14) да может тут ваще без буфера можно будет
16 lxs
 
17.01.11
13:30
17 andrewks
 
17.01.11
13:31
18 zyto
 
17.01.11
13:31
а Application.DisplayAlerts = 0; не помогает?
19 Wobland
 
17.01.11
13:31
(16) спасибо, почитаю на досуге
20 aleks-id
 
17.01.11
13:34
Application.CutCopyMode = False
21 udmesk
 
17.01.11
13:37
Application.CutCopyMode = False

не помогает
22 Wobland
 
17.01.11
13:38
то есть кода мы не дождёмся...
23 aleks-id
 
17.01.11
13:39
(21) это надо сделать после копирования-вставки
24 СвинТуз
 
17.01.11
13:41
(15)
оно связано с буфером виндоуз, но слабо
(22)
там если получится и строчки хватит
какой Вам код
чел просто что писать не знает
25 FN
 
17.01.11
13:46
(0) тупо перед выходом в буфер один символ скопируй - и никаких вопросов не будет
26 aleks-id
 
17.01.11
13:46
Application.CommandBars("Clipboard").Controls("Clear Clipboard").Execute
27 Wobland
 
17.01.11
13:47
(24) как это какой? см (2)
28 udmesk
 
17.01.11
13:48
Для каждого ВыбраннаяСтрока Из СписокШаблонов Цикл
       ИмяФайла = ПолучитьИмяВременногоФайла();
       ДвоичныеДанные = ВыбраннаяСтрока.Значение.ХранилищеШаблона.Получить();
       ДвоичныеДанные.Записать(ИмяФайла);
       
       Попытка
           //открываем файл в WORD-е
           Word.Documents.Open(ИмяФайла);
       Исключение
           Предупреждение("Не удалось открыть файл шаблона!"+Символы.ПС+ОписаниеОшибки());  
           Word.Quit();
           Word=Неопределено;
           Возврат ;
       КонецПопытки;
       
       Док = Word.ActiveDocument;
       Попытка
           ЗаполнитьШаблонWord(Док,НачальноеЗначениеВыбора);
       Исключение
           Сообщить("Возникли ошибки при формировании документа."+
           Символы.ПС+ОписаниеОшибки());
       КонецПопытки;
       Word.Selection.HomeKey(6);
       Word.Selection.TypeText(Символы.ПС);        
       Word.Selection.TypeText(Символы.ПФ);        
       Док.Content.Copy();
       РезДок.Range(РезДок.Content.End - 1, РезДок.Content.End - 1).Paste();
       Док.Close(0);
   КонецЦикла;
   
   Word.Visible = Истина;
   //активируем окно
   Sh=Новый COMОбъект("WScript.Shell");
   Sh.AppActivate("Microsoft Word");    
   
   Word.DisplayAlerts = 0;
   Word.ActiveWindow.WindowState = 0;//активируем
   Word.ActiveWindow.WindowState = 1;//разворачиваем на весь экран (0 - normal, 1 - max, 2 - min)
   Word.ActiveDocument.Save();//чтобы при закрытии не задавал вопросов
   Word.ActiveDocument.Range(0,0).Select();//снимаем выделение (и остемся в начале документа)
29 Wobland
 
17.01.11
14:15
Word.ActiveDocument.Range(0,1).Copy() не спасёт?
30 aleks-id
 
17.01.11
14:16
РезДок.Range(РезДок.Content.End - 1, РезДок.Content.End - 1).Paste();
Word.Application.CutCopyMode = False;
Док.Close(0);

если не прокатит попробуй перед Док.Close(0) впиши
Word.Application.CommandBars("Clipboard").Controls("Clear Clipboard").Execute;
31 udmesk
 
17.01.11
14:24
ща все попробую
32 udmesk
 
17.01.11
14:36
Word.ActiveDocument.Range(0,1).Copy() спасло!
33 udmesk
 
17.01.11
14:38
спасибо за оперативность)))
34 Wobland
 
17.01.11
14:56
(33) ответ был ещё в (7). на здоровье
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший