Имя: Пароль:
1C
 
Программа просмотра изображений и факсов
0 Дядя Васька
 
17.03.08
08:49
Есть идея заюзать сабж из 1С. КоммандаСистемы() не катит, так как это dll, поставить какой-нить irfanview конечно можно, но не круто. Да и просто девки к интерморде этой проги привыкли. В принципе цели-то нехитрые, сохранить в справочнике ссылки на сертики, да по документу все их распечатывать. Кто бы скриптик подсказал... Идеально было бы чтобы сразу на предварительный просмотр выводилось.
1 Дядя Васька
 
17.03.08
08:51
+(0) Имеется ввиду встроенная в ХР, shimgvw.dll.
2 Ajbolitov
 
17.03.08
08:54
я сделал базу сканированных сертиков, и в имени картинки заложил код серии и прочее. т.е. по накладной высматриваются коды, выискаваются в папке со сканами, потом скан помещаю в макет 1с и на печать отправляю
3 Ajbolitov
 
17.03.08
08:55
1ска прекрасно сама выплевывает на печать (правда я на 8.1 сижу)
4 Дядя Васька
 
17.03.08
08:55
(2) Да это уже текучка, вопрос о другом...
5 Дядя Васька
 
17.03.08
08:56
(3) 7.7 не выплевывает
6 Ajbolitov
 
17.03.08
09:01
ну, как альтернатива irfanview  или еще видел, что в вордовский документ картинки суют и на печать кидают
7 Дядя Васька
 
17.03.08
09:03
(6) Да это не проблема... Интересена просто сама задача, решаема ли в принципе? Заказ-то несрочный.
8 AndrejFAA
 
17.03.08
09:04
(0) А в каком формате хранятся изображения, что 7.7 не выплевывает?
9 AndrejFAA
 
17.03.08
09:08
У себя я сделал почти также, как сказано в (2). Все отсканированные сертификаты в форматах GIF или JPEG.
10 Дядя Васька
 
17.03.08
09:10
(8) А хрен их знает во что они сканят... Либо jpeg, либо tiff какой-нить, вряд ли bmp. Думаешь просто ЗапуститьПриложение("бла-бла-бла.jpg")? Ща проверим..
11 AndrejFAA
 
17.03.08
09:14
(10) Нет, я так не думаю. :) Я имею ввиду, что 1С сама хорошо все печатает. Т.е. на таблицу навесить объект картинку.
12 AndrejFAA
 
17.03.08
09:17
GIF я решил использовать для черно-белых изображений, т.к. принтеры все равно черно-белые. А JPEG оставил, чтобы снабженцы не мучались со сканированием, а сразу брали с сайта поставщика готовые.
13 Ёпрст2
 
17.03.08
09:18
(11) Это самое неправильное решение.... а при большом количестве картинок - ппц.
14 AndrejFAA
 
17.03.08
09:24
(13) Ну если выводить на предпросмотр кучу изображний, то да.
15 AndrejFAA
 
17.03.08
09:25
У меня нет таких задач, чтобы печатать с предпросмотром кучу сертификатов. В этом случае, думаю, можно и IE задействовать.
16 Дядя Васька
 
17.03.08
09:26
(11) Ну это уж точно изврат. А вот (10) работает, именно в сабже и открывает, даж скучно, думал поизвращаюсь...
17 Ёпрст2
 
17.03.08
09:26
(14) При чем тут предпросмотр? Сама идея пихать в Таблицу - зло...
18 AndrejFAA
 
17.03.08
09:28
(17) И как это зло проявляется? Может я чего-то в своей жизни упустил.
19 AndrejFAA
 
17.03.08
09:28
Просто три года все работает и проблем ниразу не возникло.
20 Дядя Васька
 
17.03.08
09:29
+(16) Как двойной клик фигачит, хошь mp3 открывай, хошь что хошь. Млин, сколько лет эской занимаюсь, а кроме ехешников ничего этой хфункцией открывать не пробовал. Бывает же :)
21 Дядя Васька
 
17.03.08
09:30
(18) Если нужно по документу в сотню строк по каждой строке по серту вывести - будет очень прожорливо.
22 Ёпрст2
 
17.03.08
09:32
(19) Видать не печатал никогда большое количество ...тормоза.
23 AndrejFAA
 
17.03.08
09:35
Потому я у храню все в GIF. Размер файла не более 50 кб.
24 Дядя Васька
 
17.03.08
09:35
Чет у меня идея появилась прям в эску им и сканер прицепить. FineReader по OLE работает?
25 AndrejFAA
 
17.03.08
09:36
А команду "ЗапуститьПриложение" я использую для инструкция. Они хранятся в PDF.
26 AndrejFAA
 
17.03.08
09:36
Есть компонента.
27 Дядя Васька
 
17.03.08
09:37
(26) Где копать, на инфостарте?
28 AndrejFAA
 
17.03.08
09:38
(27) Давайте ящик. Правда я ее у себя не внедрял. А так работает.
29 Дядя Васька
 
17.03.08
09:39
(28) zalexey78(бобака)mail.ru
30 AndrejFAA
 
17.03.08
09:40
Ушло.
31 Дядя Васька
 
17.03.08
09:41
поймал, спасибки
32 AndrejFAA
 
17.03.08
09:49
(22) Большое количество чего: данных или вывод на экран?
33 AndrejFAA
 
17.03.08
09:49
данных = печать данных
34 Дядя Васька
 
17.03.08
09:49
(32) Картинок одновременно. Можно конечно и по одной выводить, но извращение же...
35 AndrejFAA
 
17.03.08
09:54
Об этом зле я знаю. :) Вопрос, возможно, глупый. А зачем выводить большое количество за раз. Их кто-то будет смотреть?
36 Дядя Васька
 
17.03.08
09:55
(35) Просто чтобы сто раз на кнопку не нажимать...
37 Дядя Васька
 
17.03.08
09:55
Кстати да, как бы еще этот вывод замутить, по принципу сразу на принтер...
38 Дядя Васька
 
17.03.08
09:56
+(37) Может правда воткнуть в таблицу и штатно, по одной пускать... Но фиговый вариант, у них уже куча картинок насканена. Хотелось бы поменьше извратов.
39 AndrejFAA
 
17.03.08
09:57
(36) Тогда вообще проблем не вижу. И никакого зла в этом случае не будет, если сразу на принтер послать из 1С.
40 AndrejFAA
 
17.03.08
09:58
(38) Кнопка "Печать (все)". :)
41 Ёпрст2
 
17.03.08
09:58
(35) Сама Таблица и печать её через 1с - зло и мееееедлееенннооо ...
Даже с 1 картинкой Таблица - ппц как меееддддленннооо ...
42 Дядя Васька
 
17.03.08
10:00
вот и думаю.. Должен же быть какой-то скриптец, либо параметр командной строки, чтобы сразу на принтер...
43 AndrejFAA
 
17.03.08
10:00
(41) Не знаю что за картинки Вы вставляете, т.е. какой размер файла. Но три года тормозов не наблюдаю в 10 базах.
44 AndrejFAA
 
17.03.08
10:01
(42) Это шутка. Никак не могу понять, кто Вам запрещает штатно распечатать обработкой все картинки сразу на принтер.
45 Ёпрст2
 
17.03.08
10:02
(43) :))) Ну, заблуждайтесь дальше ...
46 AndrejFAA
 
17.03.08
10:04
При выводе изображения на экран формата А4 тормозов нет, даже не кселеронах в магазинах. Если вывести сразу кучу, то да...
47 Дядя Васька
 
17.03.08
10:05
(44) А я как раз вполне серьезно. Т.е. имеем на данный момент кучу картинок в неизвестно каком формате. То ли оно вставится как картинка, то ли нет - бабушка надвое сказала. Не может быть чтобы в хрюшке скриптом нельзя было их пустить сразу на принтер каким-либо скриптом, используя стандартный просмотрщик. Мучаю гугль короче..
48 AndrejFAA
 
17.03.08
10:05
Вывел прямо сейчас на экран. Все летает. :)
49 AndrejFAA
 
17.03.08
10:05
Тогда может все таки посмотрите в сторону IE.
50 Дядя Васька
 
17.03.08
10:09
(49) Не все форматы понимает
51 AndrejFAA
 
17.03.08
10:10
52 Ёпрст2
 
17.03.08
10:10
(50) Храни всё в djvu ... лучше пока формата нет.
53 Дядя Васька
 
17.03.08
10:14
(52) Дело в том что они с этими сертиками работают не первый день, и не первый год. Есть уже куча насканенных. Поэтому надо идти по пути наименьшего сопростивления. Чтобы просто в справочнике стандартным диалогом выбрали путь к файлу и все. Если же я им скажу что эти несколько тысяч файлов для начала надо в другой формат перегонять, жить мне останется меньше пяти минут :)
54 Дядя Васька
 
17.03.08
10:16
(51) Вообще вариант конечно, но было бы кошернее что-то заточенное под прогу из сабжа, а не IE.
55 Ёпрст2
 
17.03.08
10:16
(53) Ну и что ? Конвертнешь все в djvu и привет ... скопом и все...
56 Ёпрст2
 
17.03.08
10:18
+55 А новые картинки пущай сразу сканят в djvu ... тем более. что как правило, никто не хранит 1 картинку - т.е все используют многостраничные картинки (pdf/tiff) - намного удобнее ...
57 Дядя Васька
 
17.03.08
10:21
(56) Чего ж там удобного-то, если один товар - один серт. В расходной накладной рандомный набор этих товаров. Как я тебе нужную страницу откапывать буду? Наоборот удобнее одна страница, один файл.
58 Ёпрст2
 
17.03.08
10:23
(57) Серты - да, всё остальное (справки там, удостоверения качества)и прочее - нет... , если есть, конечно.
59 Дядя Васька
 
17.03.08
10:26
(58) да есть. Но в чем разница? Серты отдельно, справки отдельно. Нефик мудрить. Что хотят, то и сканят. В произвольном порядке.
60 Ёпрст2
 
17.03.08
10:25
+58 если многостраничные не нужны, то храни в gif/jpeg и печатай вордом - это быстрее чем IE и в разы быстрее чем печать самой 1с-иной через Таблицу ...
61 AndrejFAA
 
17.03.08
10:27
(58) А djvu в сравнении с pdf сильно отличается по размерам конечных файлов? Просто с этим форматом в плотную не работал.
62 Ёпрст2
 
17.03.08
10:28
(59) Гы ...на одну Номенклатуру, у нас кпримеру, 1 сертификаит, и 10 страничек справок + 1 уд.качества ..Ну и нафик мне хранить 12 файлов и их печатать, когда проще всего лишь 2? 1-серты,2-ой - всё остальное ...
63 AndrejFAA
 
17.03.08
10:29
Я лишь предлагал штатные средства. А так с (60) согласен. И скриптик маленький будет. Только вот не везде ворд стоит.
64 Ёпрст2
 
17.03.08
10:32
(61) http://djvu-soft.narod.ru/
разница огромная, собственно почему и перешли на него ...
65 AndrejFAA
 
17.03.08
10:34
(64) Сейчас взгляну. А то решил на pdf делать всю документацию. Даже специально перебрал кущу принтеров и программ, которые дадут минимальный размер конечного файла. :)
66 smaharbA
 
17.03.08
10:34
шо опять ?

//*******************************************
Процедура Сформировать()
   Перем Путь,Имя;
   Если ФС.ВыбратьФайл(0,Имя,Путь,"","Тиф (*.tif*)|*.tif*|Мди (*.mdi)|*.mdi","tif*")=0 Тогда
       Возврат;
   КонецЕсли;
   МодиДок=СоздатьОбъект("MODI.Document");
   МодиДок.Create(Путь+Имя);
   Сообщить(МодиДок.images.count);
   Для к=1 По МодиДок.images.count Цикл
       МодиДок.PrintOut(к,к);
   КонецЦикла;
КонецПроцедуры
67 AndrejFAA
 
17.03.08
10:37
(66) Я же говорил, что и код будет маленьким. :) Зачем подсказали.
68 Дядя Васька
 
17.03.08
10:48
Ну я еще меньше придудумал:
rundll32 shimgvw.dll,ImageView_PrintTo /pt "ИмяФайла" "ИмяПринтера"
:)))
Только есть один недостаток, перед этим надо как-то узнать это самое имя...
А за (66) большой респект
69 Chieftain
 
17.03.08
10:50
Если сразу на принтер через сабж
rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo /pt <Полное имя файла> <имя принтера>
70 Chieftain
 
17.03.08
10:51
(68) Фублин, не успел))
71 Chieftain
 
17.03.08
10:52
(66)
EnumPrinterConnections()
Синтаксис:
EnumPrinterConnections()
Назначение:
Возвращает коллекцию сетевых принтеров. Нечётные элементы содержат сетевые имена принтеров, чётные - названия локальных портов.
Параметры:
Нет.
Описание:
Без комментариев.
Пример:
WshNetwork=СоздатьОбъект("WScript.Network");
Printers=WshNetwork.EnumPrinterConnections();
ы=0;
Пока ы <= Printers.Count()-1 Цикл
   Сообщить(Printers.Item(ы)+" - "+Printers.Item(ы+1));
   ы=ы+2;
КонецЦикла;
72 Дядя Васька
 
17.03.08
10:53
(62) Надо подумать... Просто если сканировать из эски буду, подозреваю что 12 файлов все-таки удобнее.
73 Chieftain
 
17.03.08
10:54
+ еще есть объект, поставляемый сабжем: СоздатьОбъект("Preview.Preview")
тока как он работает - это разбираться надо
74 Дядя Васька
 
17.03.08
10:54
(71) Пасиб :)
Кстати, а кто такой MODI из (66)?
75 Chieftain
 
17.03.08
10:55
(74) Microsoft Office Document Imaging Viewer Control
76 Ёпрст2
 
17.03.08
10:56
(72) Чем же ? Нужно девочке "подправить" что-то, думаешь,прощебудет искать в 12-ти файликах чем в 1-ом ? ...Даже просто имена этих 12-ти файликов хранить надо ...тоже
77 Дядя Васька
 
17.03.08
10:57
(73) Чет не прописан у меня такой в реестре...
78 smaharbA
 
17.03.08
11:00
будет только с МСО
79 Дядя Васька
 
17.03.08
11:04
(76) Интересно что ей может потребоваться подправить в скане...
80 Chieftain
 
17.03.08
11:12
(68) Кстати, если сделать так:
rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo /pt <КаталогСКартинками> <ИмяПринтера>
то на печать отправляется все изображения из каталога "Отпечаток на всю страницу"
81 Chieftain
 
17.03.08
11:12
+(80) Надо, кстати у себя так сделать, наверное
82 Дядя Васька
 
17.03.08
11:17
(78) Не гут. Тогда наверное лучше по варианту (68).
83 Дядя Васька
 
17.03.08
11:17
(80) Ну весь каталог-то мне незачем...
84 Дядя Васька
 
17.03.08
11:18
Кстати, через ЗапуститьПриложение() работает, не только через КоммандаСистемы()
85 Chieftain
 
17.03.08
11:20
(83) Надо просто проверить что будет быстрее:
1. Каждый файл отправлять отдельной командой (что при большом количестве картинок наверняка будет медленно)
2. Скопировать нужные во временный каталог и отправить его весь
86 Chieftain
 
17.03.08
11:23
(84) Ессно, причем от "КомандаСистемы()" пока не завершится запускаемое приложение будет висеть окно командной строки
87 Ёпрст2
 
17.03.08
11:25
(79) Не поверишь, каждый день правят ...и по многу.
88 Дядя Васька
 
17.03.08
11:30
(87) Для этого тады лучше им кнопочку сделать, прямо в форме элемента справочника, типа "Редактировать". Еще удобнее будет.
89 smaharbA
 
17.03.08
11:30
вообщето mspaint /p файлы
90 AndrejFAA
 
17.03.08
11:31
(89) Вот об этом не знал. :) Спасибо.
91 Chieftain
 
17.03.08
11:31
(76) Так и для одного тоже надо хранить... Я своих просто заставил при скане указывать имя файла в определенном шаблоне типа номера и даты. сначала поплакали, а сейчас привыкли и радуются
92 Ёпрст2
 
17.03.08
11:32
(91) У нас проще, имя в автоматом присваивается и всего делов ...:)
93 Дядя Васька
 
17.03.08
11:34
(85) Грамотная мысля. Хотя по идее отправлять по одному не должно быть долго. shimgvw.dll скорее всего в кэш запрыгнет, и все будет летать. В лююбом случае отправка на печать второй и последущих страниц будет происходить быстрее чем собственно печать, так что проблем не должно быть. Посмотрим потом, как на реальной базе пойдет..
94 Chieftain
 
17.03.08
11:34
(89) Тока попробуй сколько страниц получится, если у картинки размер будет большой
95 Chieftain
 
17.03.08
11:36
(92) Сканируют ручками, потому как сканер на одной машине, а одинесина на терминале крутится, а с удаленным сканированием не шибко хочется заморачиваться
96 Дядя Васька
 
17.03.08
11:36
(89) Не все форматы понимает. Черт его знает во что они там насканили. Програмкой из сабжа они для печати пользуются, в этом уверен. Соответственно она точно поймет все что у них есть.
97 Дядя Васька
 
17.03.08
11:38
(95) Млин, а у моих ведь так же...
98 Ёпрст2
 
17.03.08
11:38
(95) Так у нас аналогично ... 5-6 сканёров локально, локально же и сканят...в 1с-ине просто указывают на этот файлик - он просто летит с новым именем в нужную папку на серваке и всё ..
99 Дядя Васька
 
17.03.08
11:41
(98) Да эт-то понятно, но хочется сделать красиво, нажала на форме кнопочку сканировать и процесс пошел...
100 Chieftain
 
17.03.08
11:46
(98) Думаешь так проще?
По варианту указания имени файла по шаблону
1. Указать при сканировании имя файла

По варианту указания ссылки на файл
1. Сканировать документ (при этом указать имя файла или осознать какое оно есть и запомнить)
2. Переключиться на терминальный сеанс
3. Указать файл (при этом в большинстве случаев необходимо найти компьютер в сети, и найти там файлик с запомненным именем)

Хотя, конечно можно это упростить... Да и как у тебя сделано тоже не знаю... Рассказывай))
101 Дядя Васька
 
17.03.08
11:47
Фигня, ща какой-нить батник накатаю, в свойствах пользователя путь к нему, по нажатию на кнопку сканировать, запускается батник, который запускает сканирование во временном каталоге, при наличии файла в этом каталоге эска его подхватывает и копирует куда надо.
102 Дядя Васька
 
17.03.08
11:50
который запускает сканирование во временном каталоге, в смысле картинку во временном каталоге сохраняет.
103 Ёпрст2
 
17.03.08
11:52
(100) Указать имя файла по шаблону ? :)) Забодаются + нужно не ошибиться + опять таки скинуть в нужное место...
А так:
1.при сканировании по умолчанию присваивается имя (любое) в любой программе для сканирования
2.Переключится в терминал, ну не долго, он у них и так всегда открыт...:)
3.тупо хранить имя каталога куда сканировать, например в справочнике пользователей ..
104 Chieftain
 
17.03.08
12:09
(103) >> Указать имя файла по шаблону ? :)) Забодаются + нужно не ошибиться + опять таки скинуть в нужное место...
Ну на первых порах ошибались, сейчас привыкли (причем девочка, которая сканит хм... мягко выражаясь - умом не блещет)

1) - тогда нужно после сканирования каждого документа сразу указать в 1С файлик, иначе если отсканирует несколько и потом фик разберется
2) - значит для каждого документа надо будет переключиться на терминал и обратно
3) Вот это верно, но в варианте с указание шаблона достаточно просто хранить список каталогов с сканами и все их скидывать в заранее определеннsq каталог
105 Дядя Васька
 
17.03.08
13:29
Замутил сканирование с помощью ВК от AndrejFAA, пока на 1С, работает машинка. Кому не влом погоняйте на своих сканерах тестовую обработку, а я пока попробую это дело на vbs перевести, чтобы с терминала запускать.
Процедура Сканировать()
   ЗагрузитьВнешнююКомпоненту("1CScan.dll");
   Scanner=СоздатьОбъект("AddIn.ScanManager");
   If Scanner.SelectScanners()=0 Then
       Message("В системе не установлено ни одного сканера");
       Return;
   EndIf;
   
   ScannersList=CreateObject("ValueList");
   
   Scanner.SelectScanners();
   While Scanner.GetScanner()=1 Do
       ScannersList.AddValue(Scanner.ProductName);
   EndDo;
   
   ScannerName="";
   If ScannersList.ChooseValue(ScannerName, "Выберите сканер")=0 Then
       Scanner="";
       Return;
   EndIf;
   
   Scanner.SelectScanners();
   While Scanner.GetScanner()=1 Do
       If TrimAll(Scanner.ProductName)=TrimAll(ScannerName) Then
           Break;
       EndIf;
   EndDo;
   
   If Scanner.Connect()=0 Then
       Message("Не удалось подключиться к сканеру");
       Scanner="";
       Return;
   EndIf;
   
   Scanner.SetParam("PixelType", 0);
   Scanner.SetParam("XResolution", 150);
   Scanner.SetParam("YResolution", 150);
   Scanner.SetParam("Orientation", "Rot0");
   Scanner.SetParam("Rotation", 0);
   Scanner.SetParam("PaperSize", "A4");
   Scanner.SetParam("AutoFeed", 0);
   Scanner.SetParam("Duplex", 0);

   If Scanner.ПолучитьФайлTIFF(КаталогВременныхФайлов()+"TempPic.tiff")=0 Then
       Message("Не удалось отсканировать странцу");
       Scanner.Disconnect();
       Scanner="";
       Return;
   Else
       ФайлСКартинкой=КаталогВременныхФайлов()+"TempPic.tiff";
       If DoQueryBox("Страница успешно отсканирована. Открыть просмотр?", "Да+Нет")="Да" Then
           RunApp("TempPic.tiff")
       EndIf;
       
   EndIf;
   
   Scanner.Disconnect();
   Scanner="";
КонецПроцедуры // Сканировать


сама компонента: http://www.rapidshare.ru/613785
мой шедевр: http://www.rapidshare.ru/613809
106 AndrejFAA
 
17.03.08
13:52
Мне вот все интересно. А как быть в случае при сканировании с автоподатчика.
107 Дядя Васька
 
17.03.08
14:03
(106) Scanner.SetParam("AutoFeed", 1);
108 Дядя Васька
 
17.03.08
14:04
+(107) Ну и цикл потом:
While Scanner.ПолучитьФайлTIFF(КаталогВременныхФайлов()+"TempPic.tiff")=0 Do
EndDo;
109 Дядя Васька
 
17.03.08
14:05
+(108) Тьфу ты:  
While Scanner.ПолучитьФайлTIFF(КаталогВременныхФайлов()+"TempPic.tiff")=1 Do
EndDo;

так в смысле
110 Дядя Васька
 
17.03.08
14:07
+(109) Передавая вместо константы разные имена файлов разумеется.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс