Сканируем без сканера или 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";
КонецПроцедуры
На этом все. Теперь, при нажатии созданной нами кнопки, документ будет автоматически сканироваться и вставляться во вложения отправляемой почты. Вам необходимо только дописать текст и добавить схему проезда во вложения.
Надеюсь, кому-то статья пригодится.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Внешние источники данных Разработчик Аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)
Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.
35000 руб.
15.11.2022 33883 53 49
Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)
Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26
22570 руб.
06.10.2023 44409 123 54
Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.
85400 руб.
05.10.2022 14616 17 8
Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)
Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той организации и ответственных лиц, которые указаны в документе.
17080 руб.
13.03.2018 73054 278 80
Печатные формы Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Транспорт, автопарки, такси Бухгалтерский учет Платные (руб)
Учет путевых листов выполнен в виде расширения. Предназначен для учета путевых листов в конфигурации БП 3.0., УТ 11.5 и КА 2.5 Печатная форма: Типовая межотраслевая форма № 3. Утверждена постановлением Госкомстата России от 28.11.97 № 78. Типовая межотраслевая форма № 4-П от 18.09.2008 г. N 152 с учетом изменений указанных в Приказе Министерства транспорта Российской Федерации №368 от 11 сентября 2020 г. №368, Типовая межотраслевая форма № ЭСМ-7, и др. ЭСМ-2, 4-С, 3 спец., 6 спец., ПЛ для Автомобильного крана.
5000 руб.
14.10.2019 48653 350 216
Печатные формы Учет рабочего времени Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Автомобили, автосервисы Транспорт, автопарки, такси Россия Бухгалтерский учет Управленческий учет Платные (руб)
Расширение для 1С:Бухгалтерии 3.0, 1С:УНФ 3.0, 1С:Управления торговлей 11.5 и 11.6, 1С:Комплексной автоматизации 2.5 и 1С:ERP 2.5. Путевые листы по приказу Минтранса № 390, восемь бланков путевых листов (4-С, 4-П, 3, 3 спец., 6 спец., ПГ-1, ЭСМ-2, ЭСМ-7), расход топлива по нормам АМ-23-р, остатки в баке, выручка и начисления водителям. ЭТрН и ЭПЛ — документами самой 1С или файлами в форматах ФНС. Код открыт.
9760 руб.
03.07.2018 46324 230 126
Розничная торговля Внешние источники данных Разработчик Бухгалтер 1С:Предприятие 8 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Бухгалтерский учет Управленческий учет Платные (руб)
Загрузка данных продаж и инкассаций из сервисов Kit Vending/Kit Shop в 1С. Реализовано в виде Расширения. Мониторинг состояний торговых автоматов.
12200 руб.
10.06.2019 34703 49 25
Печатные формы Учет рабочего времени Учет ОС и НМА Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1C:ERP Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)
Программа для автоматизации учета путевых листов в 1С - расширение, добавляющее в конфигурацию "ERP", документ Путевой лист и печатные формы установленных образцов для легковых и грузовых авто, расчет и списание нормативного количества топлива, отчет "Реестр путевых листов" с отбором по автомобилю и по водителю (через настройки) Позволит контролировать расход топлива, потому что сразу будет виден сверхнормативный расход.
25620 руб.
23.07.2025 8025 18 0
Сохранять в pdf ТабличныйДокумент на стороне сервера средствами платформы.
В случае серверной стороны на Win, то предложенный здесь метод будет работать - выполнять, повторюсь, на стороне сервера.
1) Можно не создавать профиль в реестре. Все равно все настройки в коде устанавливаются. Я, по крайней мере, так делаю.
2) Можно сделать выбор в каком формате сохранять, например, .PDF. Тогда конвертация будет более универсальной.
Что-нибудь вроде этого:
ОбъектПринтер.cVisible = ЛОЖЬ;
Опции = ОбъектПринтер.cReadOptions();
Опции.ShowAnimation = 0;
Опции.UseAutosave=1; // автосохранение
Опции.StartStandardProgram = 0; // все равно программа не запускается (работает только в случае, если установить этот флаг непосредственно в PDFCreator)
Опции.UseAutosaveDirectory = 1; // сохранять в
Опции.AutosaveDirectory = Каталог; // путь автосохранеия
Опции.AutosaveFilename = ФайлПечати; // имя файла
Опции.AutosaveFormat = 0; // формат - PDF
Опции.PDFUseSecurity = 1; // защита PDF
Опции.PDFAes128Encryption = 1;
Опции.PDFOwnerPass = 1;
Опции.PDFOwnerPasswordString = Строка(Новый УникальныйИдентификатор);//значение пароля
Опции.PDFDisallowCopy = 1; // защита PDF
Опции.PDFDisallowModifyContents = 1; // защита PDF
Опции.DisableEmail = 1;
Опции.PDFDisallowModifyAnnotations = 1;
Опции.PDFDisallowPrinting = 1;
ОбъектПринтер.cOptions = Опции;
ОбъектПринтер.cDefaultprinter = PDFCreator;
ОбъектПринтер.cClearcache();
ОбъектПринтер.cPrinterStop = Истина;//остановим, пока не получены все задания на печать ПоказатьРодная сохранялка в PDF работает не всегда правильно. Если кто не верит - могу показать.
Вирт. принтер тоже не могу использовать, т.к. его надо устанавливать.
Пока остановился на Yoksel-е, но там тоже проблема нарисовалась.
Неужели не существует ВК, которая преобразовывает MXL в jpg/png/pdf? (pdf хотя бы как картинка)
стандарт де факто - пдф
не говоря уже о том что работая с пдф при решении основной задачи "нередактируемость сохраненного макета" вы получаете
1. стандартный формат
2. выгрузку из любых режимов (толстый тонкий и веб)
3. возможность клиенту копировать куски текста из этого самого ПДФ
а п.3 очень и очень важен.
он означает что ваш клиент получив счет от не матерится на безмозглых дурачков которые ему прислали идиотский скан с которого все реквизиты приходится перебивать с клавиатуры а нормально через копировать/вставить все номера счетов, ИННы и прчие БИКи в свою базу копирует.
потому что в pdf я не смог обойти такую проблему: у меня печать и подпись можно скопировать из создаваемого pdf,
а из png нельзя. И это при установленной защите от копирования текста...
И надо сказать, что база на платформе 8.1.
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(1).ВыводитьНаПечать = Истина; //Печать
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(0).ВыводитьНаПечать = Истина; //Подпись 1
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(2).ВыводитьНаПечать = Истина; //Подпись 2
То есть в макете у меня есть 3 картинки, но они не выводятся на печать. Когда я начинаю их "сканировать", то делаю их доступными для печати.
в целом идея понравилась ... к тому же: Надо было - СДЕЛАЛ !!!
... а кто мешает использовать HTML тОООже ...
... недооценённый формат и читается "всем чем хочешь"... текстовый формат - хорошо "ужимается" в архив ...
... вот ...
не вижу в этом большого неудобства ... зато в одном архиве ... ))) ...
... впрочем, о вкусах не спорят ... путей много ... )))
... вотУДАЧИвот ...
подавай им хотя бы сканкопию или по факсу но чтобы была печать и подпись.
Понятное дело - они потом оригинал затребуют всегда, но для оплаты аванса им таких "отсканированных" печати и подписи за глаза хватает
<img src="data:image/gif;base64, здесь base64 data>
у html другой минус, с ним затрахаешься, чтобы он нормально отображался так как есть, разные браузеры, разная поддержка html привела к бардаку, с которым не очень хочется связываться, если ты не дизайнер html (я вот не дизайнер), то колонки будут не той ширины, то ячеки будут сдвинуты, ну его нафиг. html хорош для сайтов.
п.с. "html хорош для сайтов" ... однако XML пользуемся и ничего (в принципе то же самое) ... ну а браузеры лишь повторяют войну стандартов ...
... вотПРОСТОвот ...
...
1. Есть формат mht (МСовский "веб-архив") - весь html одним файлом. Сделать его из страницы в принципе не сложно: сам формат соответствует MIME секционному файлу, похожим образом файлы писем формируются (подробнее , хотя и замудрено, проще сохранить страницу как mht и посмотреть внутрь - все понятно будет). Поддерживается (естественно!) MSIE, оперой, вроде с недавнего времени - хромом, а лисой - только с соотв. расширением. Если целевой получатель пользуется ИЕ - вполне пойдет.
2. Более интересная вещь: есть протокол "встроенных данных" (data), может быть использован в любом источнике данных (src) html-документа. Выглядит так: "data:<ТипДанных>;<ТипКодировки>,<Данные>", где <ТипДанных> - MIME-тип данных, "<ТипКодировки>,<Данные>" - соответственно текстовое представление данных (в случае двоичных данных - лучше всего в base64) - подробнее .
То есть для картинок будет где-то так:
"data:image/jpeg;base64,"+Base64Строка(ДвоичныеДанные_Из_Файла_Картинки) .
Ограничение - встраиваемый объект не может превышать 32К.
Доб.: Увидел (17) после написания поста
читатель обманывается, хоть и не замечает этого.
Вы не сканируете, вы конвертируете форматы. Это первое замечание.
Второе, неужели вы не использовали следующие статьи?
По-моему, ссылка на первоисточник должна быть.
Писал статью опираясь исключительно на свой опыт, а найти информацию о технологии можно по всему интернету. В статье я делаю акцент именно на идею использования технологии.
А вот по поводу использования виртуальника, а не встроенного конвертора, к сожалению вопрос актуальный для многих. Поддержка pdf появилась насколько я помню только в 8.2.15, а далеко не все на эту платформу перешли из-за того, что необходимо конвертить базу, решать проблемы совместимости и прочее.
(30) Любопытно какие проблемы есть, поделитесь?
(21) Дают, и еще и просят. Кто хочет тот и из png все что нужно вырежет как уже сказал (24)
Я тоже больше за PDF в силу его простоы
1. На момент написания статьи в платформе 1С еще не был реализован метод сохранения документов в формат pdf.
2. Формат JPG открывается стандартными средствами Windows, Mac, Linux, именно поэтому в моем случае был выбран формат изображения.
p.s. Сейчас уже используем PDF потому как клиентам удобно копировать оттуда реквизиты для оплаты.
Ваш метод сам по себе строится на pdf принтере. О чем вы? То есть возможность печати в файл и в пдф в том числе, это обязательное условие вашего решения.
*я об этом неуместном комментарии
Можем спорить бесконечно о популярности форматов, их хороших и плохих качествах, как было выше в комментариях.
Однако, говоря о нормах, еще есть люди, способные при замене у них монитора задавать вопрос: "А пароль от Виндус сменился?", и это далеко не предел.
Так можно и до динозвра за монтором дойти начать решать вопрос, что у него когти к стандартной клавиатуре не подходят. Должны быть рамки разумного.
а еще лучше использовать электронные подписи
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 128404
Создание 24.05.12 12:25
Обновление 28.05.12 09:57
Просмотры 38162
Загрузки 0
Рейтинг
142
Комментарии 47
Код открыт Не указано
Рубрики Внешние источники данных Универсальные функции Печатные формы
Кому Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)