Имя: Пароль:
1C
 
Читаем PDF файл в 1С77 без ВК,нужен Acrobat Reader7(можно с 3 но переписать
0 smaharbA
 
01.02.06
19:50
Функция RClipboard()
   oIE = CreateObject("InternetExplorer.Application");
   oIE.navigate("about:blank");
   oIE.visible = 0;
   Пока oIE.ReadyState<4 Цикл
       Состояние("Ждем загрузку...");
   КонецЦикла;
   texts = oIE.Document.parentWindow.clipboardData.getData ("Text");
   oIE.Quit();
   Возврат texts;
КонецФункции    //

//*******************************************
Процедура Сформировать()
   Файл="";
   Каталог="C:\scripts\";
   ФС.ВыбратьФайл(0,Файл,Каталог,"","PDF (*.pdf)|*.pdf","pdf");
   Если ПустоеЗначение(Файл)=1 Тогда
       Возврат;
   КонецЕсли;
   wshshell=createobject("wscript.shell");
   oIE1=CreateObject("InternetExplorer.Application");
   oIE1.FullScreen=-1;
   oIE1.Navigate ("file:///"+Каталог+Файл);
   oIE1.Width=0;
   oIE1.Height=0;
   Пока oIE1.ReadyState<4 Цикл
       Состояние("Ждем загрузку...");
   КонецЦикла;
   oIE1.Visible=-1;
   wshshell.sendkeys("^A");
   wshshell.sendkeys("^C");
   oIE1.quit();
   Сообщить(RClipboard());
КонецПроцедуры
...
Метода тупенькая, но "железная"...
(опять пью...)
1 smaharbA
 
02.02.06
07:53
А что никому не надо ?
Хоть скажите - лажа... Хоть поспорю, да самалюбие потешу свое ;)
2 fabrikant
 
02.02.06
07:56
(1) Лажа
3 smaharbA
 
02.02.06
07:58
(2) Ну вот, спасибо за рецензию...
Зато ВК не надо и попробуй работает...
4 Андрюха
 
02.02.06
07:59
А если IE нету?
5 smaharbA
 
02.02.06
08:10
(4) А что у тебя винда спец поставки ?
6 ВторНик
 
02.02.06
08:16
сейчас испытаем
7 у лю 427
 
02.02.06
08:18
а ИЕ - это по сути не ВК?

(4) попробуй снести ИЕ... если получится - доложи..., как сделал...
8 smaharbA
 
02.02.06
08:33
(7) Ну ВК конечно если уж "дотошно" к этому подбираться ;)
Знаю что метода "аховая", но всеже какойто выход иногда...
9 acsent
 
02.02.06
09:09
(0) Напиши лучше статью: Нестандартное исползование ОЛЕ объекта InternetExplorer
10 evGenius
 
02.02.06
09:11
(0) А напрямую к адобу слабо? А то получается двойной вызов 1С -> IE -> Acrobat
11 smaharbA
 
02.02.06
09:21
(10) Методов ненашел, пошукаю и найду
12 Андрюха
 
02.02.06
09:23
(7) Установка/удаление программ -> Компоненты Windows -> IE
13 lisss
 
02.02.06
09:24
(12)нет, это мы и так знаем, ты давай удали его, пусть у тебя винда на опере например поработает :)
14 smaharbA
 
02.02.06
09:30
(12) И в каком Windows ты это нашел ?
15 lisss
 
02.02.06
09:36
(12)смотри описание компонента: "Удаляет доступ к InternetExplorer с рабочего стола и главного меню"....
Не знаю, как бы это поточнее сказать, но все визуальные эффекты винды - результат работы IE: папки, рабочий стол....
16 Андрюха
 
02.02.06
09:42
(14) XP Pro SP2
17 АЛьФ
 
модератор
02.02.06
09:48
Ммммм... эээээ....
А почему бы не сделать проще?

Процедура Сформировать()
   Файл="";
   Каталог="C:\scripts\";
   ФС.ВыбратьФайл(0,Файл,Каталог,"","PDF (*.pdf)|*.pdf","pdf");
   Если ПустоеЗначение(Файл)=1 Тогда
       Возврат;
   КонецЕсли;
   ЗапуститьПриложение(Каталог+Файл);
КонецПроцедуры
18 smaharbA
 
02.02.06
09:56
(14) И удалится ? В 95 тоже можно было удалять ;)
(17) В (0) окно ИЕ нулевого размера и копируется с него все в буфер, а из буфера в переменную, ты же понимаешь что в (17) не сделать так просто окно реадера таким ;)
19 Пролдд
 
02.02.06
09:58
(17) неафтоматизировано получится.

Кто знает, как из Акробата скинуть в Word, не через буфер обмена?
20 АЛьФ
 
модератор
02.02.06
10:04
2(18) Аааа... Прости, тормознул.
21 smaharbA
 
03.02.06
02:42
Максимально упростил...;)
Процедура Сформировать()
   Файл="";
   Каталог="C:\scripts\";
   ФС.ВыбратьФайл(0,Файл,Каталог,"","PDF (*.pdf)|*.pdf","pdf");
   Если ПустоеЗначение(Файл)=1 Тогда
       Возврат;
   КонецЕсли;
   wshshell=СоздатьОбъект("wscript.shell");
   oIE=СоздатьОбъект("InternetExplorer.Application");
   oIE.Navigate ("file:///"+Каталог+Файл);
   wshshell.sendkeys("^A^C");
   oIE.Navigate ("");
   Пока oIE.ReadyState<4 Цикл Состояние("Ждем...") КонецЦикла;
   txt = oIE.document.parentwindow.clipboardData.getData("Text");
   oIE.Quit();
   Сообщить(txt);
КонецПроцедуры
22 Sonic_vlad
 
03.02.06
04:13
(0) опять ерундой страдаешь?
23 arta
 
05.02.06
16:52
Не отрабатываются wshshell.sendkeys("^A^C"). Где могут быть грабли?
Вручную после oIE.Visible = 1 Ctrl-A срабатывает, а wshshell.sendkeys("^A") нет...
24 smaharbA
 
06.02.06
08:14
(23) Знаю уже, этоже только пример был, счас рабочий код выложу, с большими файлами лучче постронично читать...
25 arta
 
06.02.06
18:27
Ну вот... а я сидел полночи ошибку в 10 строках искал :)
26 spock
 
06.02.06
18:44
Уважаю (0) за то упорство, которое он проявляет, чтобы доказать, что ВК в 1С не нужны :)
27 arta
 
06.02.06
22:07
А именно ВК и не нужны... Почти все можно реализовать либо через WSH, либо различными ocx/activex.

У меня на данный момент реализовано несколько фич, ну где для них ВК наберешься :)
1. Работа с RFID картами (идентификация сотрудника в документообороте, пусть слабая защита, но там ее и не нужно)
2. Чтение служебной информации с мобильного телефона (конфа сервисного центра)
3. Работа с удаленным со сканером, причем сканер установлен на Linux-тонком клиенте.
4. Проверка фотографий/изображений на соответствие определенным критериям (dpi/размер), кому-то странно, для нас очень важно.
5. Запись сессии пользователя в avi. Можно было и скриншотами, но так оказалось нагляднее :)

Извращаться можно долго, кому то ненужно, а я сам себе ставлю задачи, у меня начальника нету :)

P.S. Про 1C++ конечно молчу, без нее никуды... :)
28 MMF
 
06.02.06
23:37
(24) а ты на 1С напиши работу напрямую: http://www.wotsit.org/download.asp?f=pdfspec
29 arta
 
07.02.06
00:21
Есть много OCX для доступа к pdf, но пока не нашел фришных/крякнутых. Пока ищу - решил через копи/пасте и парсить :)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший