Скануємо без сканера або mxl to jpg

Багатьом компаніям, які продають, в основному, через інтернет-магазин, доводиться висилати своїм клієнтам рахунки на оплату по електронній пошті. Для цього вони друкують рахунок, несуть його на підпис, ставлять печатку і, нарешті, сканують готовий до відправки документ.

Весь процес в середньому займає близько 5 хвилин, що при обороті компанії в 8000 рахунків в рік з відділом продажів з 4 чоловік і 8 годинний робочий день, шляхом нехитрих обчислень може обернутися в місяць роботи. Тобто, якби менеджери займалися тільки скануванням рахунків, то у них на це пішов би майже місяць! Тепер порахуйте, скільки компанія платить за місяць роботи чотирьом менеджерам.

Після всього вищесказаного приходить тільки одна думка - як прискорити цей процес. Спочатку ми просто зберігали документ в формат Excel з вшитими всередину зображеннями печаток і підписів. Однак, незабаром, стало ясно, що деякі клієнти не можуть відкрити такий популярний формат xls. Тоді прийшла в голову думка: JPG - один з найпоширеніших форматів зображень в світі - потрібно використовувати його.

Нічого нового я не придумав, однак я вирішив, що варто про це написати. Завантажуємо і встановлюємо віртуальний принтер "PDFCreator". Щоб наші відскановані документи мали печатку і підпис, необхідно вставити їх оригінал в форматі PNG в макети потрібних документів, і найголовніше, встановіть властивість "Виводити на друк = БРЕХНЯ", щоб простий висновок на принтер був без зайвого сміття. Тепер, щоб все запрацювало, відкриваємо Конфігуратор -> Загальні форми -> ПечатьДокументов. Створюємо кнопку "Сканувати". Далі в обробці події після натискання пишемо наступний код:

спроба
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);
ЕлементиФорми. ПолеТаблічногоДокумента. Надрукувати ();
// *********************
виняток
Повідомити ( "Помилка");
КонецПопиткі;

Взагалі кажучи, я трохи удосконалив цю систему, додавши функцію автоматичної відправки пошти вже з вкладеним "сканом" документа. Для цього вам потрібно скористатися ось цієї обробкою - її необхідно вставити в конфігурацію і назвати СоздатьПісьмо. Тепер трохи додамо до вищеописаного коду:

Форма = Обробки. СоздатьПісьмо. Створити (). ПолучітьФорму ();
Підпис = "Стандартна підпис".

Форма. ЕлементиФорми. ПолеТекст. УстановітьТекст (Підпис);
Форма. Тема = "Рахунок на оплату." ;
Форма. ОткритьМодально ();

Тепер, в коді основної форми обробки "СоздатьПісьмо" пишемо:

Процедура відкриття ()
Повідом = Новий ПочтовоеСообщеніе;
Попередження ( "Скануємо. Чи не закривайте це вікно!". 15); // Даємо час щоб PDFCreator встиг відсканувати
Рядок = Вкладення. Додати ();
Рядок. Имяфайла = "document.jpg";
Рядок. Шлях = "C: \ Temp_1C \ document.jpg";
КонецПроцедури

На цьому все. Тепер, при натисканні створеної нами кнопки, документ буде автоматично скануватися і вставлятися у вкладення відправляється пошти. Вам необхідно лише дописати текст і додати схему проїзду у вкладення.