Сканируем без сканера или MXL to JPG
Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.
- Описание
- Подробнее
Описание
Предисловие.
Многим компаниям, продающим, в основном, через интернет-магазин, приходится высылать своим клиентам счета на оплату по электронной почте. Для этого они печатают счет, несут его на подпись, ставят печать и, наконец, сканируют готовый к отправке документ.
Весь процесс в среднем занимает около 5 минут, что при обороте компании в 8000 счетов в год с отделом продаж из 4 человек и 8 часовом рабочем дне, путем нехитрых вычислений может обернуться в месяц работы. То есть, если бы менеджеры занимались только сканированием счетов, то у них на это ушел бы почти месяц! Теперь посчитайте, сколько компания платит за месяц работы четырем менеджерам.
Рождение идеи.
После всего вышесказанного приходит только одна мысль — как ускорить этот процесс. Сначала мы просто сохраняли документ в формат Excel с вшитыми внутрь изображениями печатей и подписей. Однако, вскоре, стало ясно, что некоторые клиенты не могут открыть столь популярный формат xls. Тогда пришла в голову мысль: JPG — один из самых распространенных форматов изображений в мире — нужно использовать его.
Технология работы.
Ничего нового я не придумал, однако я решил, что стоит об этом написать. Скачиваем и устанавливаем виртуальный принтер «PDFCreator«. Чтобы наши отсканированные документы имели печать и подпись, необходимо вставить их оригинал в формате PNG в макеты нужных документов, и самое главное, установите свойство «Выводить на печать=ЛОЖЬ», чтобы простой вывод на принтер был без лишнего мусора. Теперь, чтобы все заработало, открываем Конфигуратор -> Общие формы -> ПечатьДокументов. Создаем кнопку «Сканировать». Далее в обработке события по нажатию пишем следующий код:
//Разрешаем вывод печатей и подписей
ЭлементыФормы.ПолеТабличногоДокумента.Защита = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(1).ВыводитьНаПечать = Истина; //Печать
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(0).ВыводитьНаПечать = Истина; //Подпись 1
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(2).ВыводитьНаПечать = Истина; //Подпись 2
Попытка
PDFCreator = Новый ComОбъект(«PDFCreator.clsPDFCreator»);
PDFCreator.cStart(«/NoProcessingAtStartup» );
PDFCreator.cClearcache();
PDFCreator.cPrinterStop = false;
//PDFCreator.cDefaultprinter = «PDFCreator»;
Если Не PDFCreator.cProfileExists(«Печать 1С») Тогда
PDFCreator.cAddProfile(«Печать 1С», PDFCreator.cStandardOptions);
КонецЕсли;
///Настройки
PDFCreatorOptions = PDFCreator.cReadOptions(«Печать 1С»);
//PDFCreatorOptions.NoConfirmMessageSwitchingDefaultprinter = Истина;
PDFCreatorOptions.UseAutosave = 1;
PDFCreatorOptions.UseAutosaveDirectory = 1;
PDFCreatorOptions.AutosaveFormat = 2;
PDFCreatorOptions.AutosaveDirectory = «С:\Temp_1C\»;
PDFCreatorOptions.AutosaveFilename = «document»;
PDFCreatorOptions.JPEGResolution = 200; //dpi
PDFCreatorOptions.JPEGQuality = 100; //коэффициэнт качества
PDFCreatorOptions.AutosaveStartStandardProgram = 0;
PDFCreator.cSaveOptions(PDFCreatorOptions,«Печать 1С»);
PDFCreator.cOptionsProfile = «Печать 1С»;
PDFCreator.cOptions = PDFCreatorOptions;
//процесс «сканирования»
ЭлементыФормы.ПолеТабличногоДокумента.ИмяПринтера = Принтер.Item(1);
ЭлементыФормы.ПолеТабличногоДокумента.Напечатать();
//*********************
Исключение
Сообщить(«Ошибка»);
КонецПопытки;
//Снова запрещаем вывод на печать рисунков
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(1).ВыводитьНаПечать = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(0).ВыводитьНаПечать = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(2).ВыводитьНаПечать = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Защита = Истина;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Истина;
Готово. Наш документ отсканирован и сохранен по адресу C:\Temp_1C\document.jpg. Можем его смело отправлять по почте.
Бонус.
Вообще говоря, я немного усовершенствовал эту систему, добавив функцию автоматической отправки почты уже с вложенным «сканом» документа. Для этого вам нужно воспользоваться вот этой обработкой — ее необходимо вставить в конфигурацию и назвать СоздатьПисьмо. Теперь немного добавим к вышеописанному коду:
Форма = Обработки.СоздатьПисьмо.Создать().ПолучитьФорму();
Подпись = «Стандартная подпись».
Форма.ЭлементыФормы.ПолеТекст.УстановитьТекст(Подпись);
Форма.Тема = «Счет на оплату.»;
Форма.ОткрытьМодально();
Теперь, в коде основной формы обработки «СоздатьПисьмо» пишем:
Процедура ПриОткрытии()
Сообщ = Новый ПочтовоеСообщение;
Предупреждение(«Сканируем… Не закрывайте это окно!»,15); //Даем время чтобы PDFCreator успел отсканировать
Строка = Вложения.Добавить();
Строка.ИмяФайла = «document.jpg»;
Строка.Путь = «C:\Temp_1C\document.jpg«;
КонецПроцедуры
На этом все. Теперь, при нажатии созданной нами кнопки, документ будет автоматически сканироваться и вставляться во вложения отправляемой почты. Вам необходимо только дописать текст и добавить схему проезда во вложения.
Надеюсь, кому-то статья пригодится.

