Сканируем без сканера или MXL to JPG

Публикация № 128404

Разработка - Печать - Печатные формы документов

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

Предисловие.

Многим компаниям, продающим, в основном, через интернет-магазин, приходится высылать своим клиентам счета на оплату по электронной почте. Для этого они печатают счет, несут его на подпись, ставят печать и, наконец, сканируют готовый к отправке документ.

Весь процесс в среднем занимает около 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";
КонецПроцедуры

На этом все. Теперь, при нажатии созданной нами кнопки, документ будет автоматически сканироваться и вставляться во вложения отправляемой почты. Вам необходимо только дописать текст и добавить схему проезда во вложения.

Надеюсь, кому-то статья пригодится.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Трактор 1209 24.05.12 12:38 Сейчас в теме
А если web клиент и сервер на линуксе?
4. xzorkiix 32 25.05.12 14:26 Сейчас в теме
(1) Трактор,

А если web клиент и сервер на линуксе?


Сохранять в pdf ТабличныйДокумент на стороне сервера средствами платформы.
http://www.forum.mista.ru/topic.php?id=593294

В случае серверной стороны на Win, то предложенный здесь метод будет работать - выполнять, повторюсь, на стороне сервера.
Азбука Морзе; +1 Ответить
33. Lyas 04.02.13 14:13 Сейчас в теме
Что за переменная Принтер здесь -
ЭлементыФормы.ПолеТабличногоДокумента.ИмяПринтера = Принтер.Item(1);
у меня не работает.
34. shakmaev 346 13.02.13 17:13 Сейчас в теме
(33) Lyas, пишу по памяти потому как модуль уже переделал. Переменная принтер тут отвечает за список установленных принтеров в системе, а Item(1) в свою очередь указывает на конкретный принтер этого списка. Такова была специфика.
2. shakmaev 24.05.12 12:50 Сейчас в теме
Обращаю внимание что в статье я пишу о использовании PDFCreator, или эта программа кроссплатформенная?
jONES1979; +1 Ответить
3. ediks 330 24.05.12 13:28 Сейчас в теме
(0)
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 = Истина;//остановим, пока не получены все задания на печать
Показать
5. IamAlexy 553 27.05.12 00:39 Сейчас в теме
Хорошо что у меня платформа 8.2 а не 8.2 которая у автора стоит и про которую автор пишет
я могу штатно все печатные формы в PDF сохранять...
30. JohnyDeath 299 20.07.12 13:47 Сейчас в теме
(5), (26), (27)
Родная сохранялка в PDF работает не всегда правильно. Если кто не верит - могу показать.
Вирт. принтер тоже не могу использовать, т.к. его надо устанавливать.
Пока остановился на Yoksel-е, но там тоже проблема нарисовалась.

Неужели не существует ВК, которая преобразовывает MXL в jpg/png/pdf? (pdf хотя бы как картинка)
6. shakmaev 27.05.12 18:38 Сейчас в теме
Хочу обратить внимание что JPG гораздо популярнее PDF, в связи с этим пользователю не нужно скачивать Adobe Reader или иное ПО для чтения PDF.
7. IamAlexy 553 27.05.12 22:16 Сейчас в теме
(6) где джипег популярнее?
стандарт де факто - пдф

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

а п.3 очень и очень важен.
он означает что ваш клиент получив счет от не матерится на безмозглых дурачков которые ему прислали идиотский скан с которого все реквизиты приходится перебивать с клавиатуры а нормально через копировать/вставить все номера счетов, ИННы и прчие БИКи в свою базу копирует.
Vlad_2008; dkprim; Zebar; echo77; Dimasik2007; vital1c; Slotty; CatMix; Brawler; Varies; Il; savflint; demon642@mail.ru; RayCon; +14 Ответить
8. shakmaev 28.05.12 09:51 Сейчас в теме
(7) IamAlexy, возможно, вы правы, я всего лишь описал еще одну возможность упрастить жизнь менеджера. Дело стоит за малым использовать то, что написано в этой статье, либо в 8.2 сохранить в PDF. Никто никого не заставляет=) Поэтому споры тут нецелесообразны. Еще раз обращаю внимание что статья не о MXL to PDF, а MXL to JPG.
savflint; +1 Ответить
26. Varies 10.07.12 07:45 Сейчас в теме
Помоему самый удобный вариант это сохранить сразу в PDF, поддерживаю (7)
20. Rustig 1702 09.07.12 14:26 Сейчас в теме
(6), (7) я конвертирую счета в формат .png.
потому что в pdf я не смог обойти такую проблему: у меня печать и подпись можно скопировать из создаваемого pdf,
а из png нельзя. И это при установленной защите от копирования текста...
И надо сказать, что база на платформе 8.1.
24. IamAlexy 553 09.07.12 17:13 Сейчас в теме
(20) надо будет взять твою печать и подпись: возьму фотошоп и за 5 минут вырежу...
это вообще не проблема..
38. alexqc 148 15.04.13 19:49 Сейчас в теме
(20) Rustig, А кто помешает желающему печать-подпись скопировать непосредственно из рисунка? Сложнее чем копи-паст, но не недоступно. ИМХО, тут разве что наложение "водяного знака" через весь документ с печатью поможет, либо надпись на печати некоего уникального кода именно этого документа.
9. savflint 29.05.12 12:31 Сейчас в теме
спасибо за труды. очень пригодилось.
10. CheBurator 3452 30.05.12 03:49 Сейчас в теме
все равно все эти решения через виртуальные принтера - через задницу. д.б. тупо и просто, типа как экспорт в пдф в либре или kingoffice
11. 1977 2 30.05.12 11:36 Сейчас в теме
pdf принтером пользуемься 5 лет. Полет нормальный.
savflint; +1 Ответить
12. TitanLuchs 257 08.06.12 10:35 Сейчас в теме
А в "отсканированный" таким образом документ можно вставить печать и подпись в нужное место? Если их прилепить на печатную форму они подхватятся этой обработкой?
13. shakmaev 08.06.12 12:08 Сейчас в теме
(12) TitanLuchs, несомненно! В статье я привожу пример как я использовал реализацию данного метода под себя
ЭлементыФормы.ПолеТабличногоДокумента.Защита = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(1).ВыводитьНаПечать = Истина; //Печать
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(0).ВыводитьНаПечать = Истина; //Подпись 1
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(2).ВыводитьНаПечать = Истина; //Подпись 2


То есть в макете у меня есть 3 картинки, но они не выводятся на печать. Когда я начинаю их "сканировать", то делаю их доступными для печати.
14. Шёпот теней 1767 08.06.12 15:51 Сейчас в теме
... хм ...

в целом идея понравилась ... к тому же: Надо было - СДЕЛАЛ !!!

... а кто мешает использовать HTML тОООже ...

... недооценённый формат и читается "всем чем хочешь"... текстовый формат - хорошо "ужимается" в архив ...

... вот ...
15. shakmaev 09.06.12 12:26 Сейчас в теме
(14) Шёпот теней, к слову о HTML могу отметить небольшой, но очень неудобный минус - печати и подписи будут храниться отдельно в файлах. Это я к тому, что картинки там только в <img>
16. Шёпот теней 1767 09.06.12 15:28 Сейчас в теме
(15) ... сОгласен ...

не вижу в этом большого неудобства ... зато в одном архиве ... ))) ...

... впрочем, о вкусах не спорят ... путей много ... )))

... вотУДАЧИвот ...
shakmaev; +1 Ответить
21. Rustig 1702 09.07.12 14:31 Сейчас в теме
(16) кто ж тебе из клиентов позволит пересылать подписи и печать в готовом виде? это ж подстава...
а ведь речь в большинстве случаев о том, как подписанный счет да с подписью переслать контрагенту... ;)
25. IamAlexy 553 09.07.12 17:15 Сейчас в теме
(21) есть конторы которы НЕ платят по счету даже если это аванс без печати и подписи
подавай им хотя бы сканкопию или по факсу но чтобы была печать и подпись.
Понятное дело - они потом оригинал затребуют всегда, но для оплаты аванса им таких "отсканированных" печати и подписи за глаза хватает
17. cool.vlad4 45 09.06.12 15:39 Сейчас в теме
(15) вообще-то картинки можно внедрить в сам html как base64 данные и не будет никаких файлов отдельных , вот так
<img src="data:image/gif;base64, здесь base64 data>

у html другой минус, с ним затрахаешься, чтобы он нормально отображался так как есть, разные браузеры, разная поддержка html привела к бардаку, с которым не очень хочется связываться, если ты не дизайнер html (я вот не дизайнер), то колонки будут не той ширины, то ячеки будут сдвинуты, ну его нафиг. html хорош для сайтов.
Rustig; orefkov; Шёпот теней; shakmaev; +4 Ответить
18. Шёпот теней 1767 26.06.12 11:28 Сейчас в теме
(17) ... у 1С свой читальщик html ...

п.с. "html хорош для сайтов" ... однако XML пользуемся и ничего (в принципе то же самое) ... ну а браузеры лишь повторяют войну стандартов ...

... вотПРОСТОвот ...

...
47. cool.vlad4 45 16.01.14 20:04 Сейчас в теме
(18) Шёпот теней, прошу прощения за супер поздний ответ (просто у меня в почте письма от ИС в спам попадают, а я не особо парюсь, уж больно много писем от ИС). нет никакой разницы в контексте веба html или xml, xml также будет отображаться по разному, это не от формата зависит, а от поддержки и совместимости браузеров. вон я открывал rsdn, что там такого сложного в верстке сайта? в IE один вид и даже цвет, в хроме другой. Там xml хочу заметить.(в статьях по крайнем мере). А рендеринг шрифтов? Просто имеется в виду наверное xml собственной разметки, не вебовской. Ну тогда о чем речь, html в этом случае ничем не отличается от xml, сделайте достройку дерева в html до xml и отображайте xml так как вам надо.
37. alexqc 148 15.04.13 19:37 Сейчас в теме
(15)
1. Есть формат mht (МСовский "веб-архив") - весь html одним файлом. Сделать его из страницы в принципе не сложно: сам формат соответствует MIME секционному файлу, похожим образом файлы писем формируются (подробнее тут, хотя и замудрено, проще сохранить страницу как mht и посмотреть внутрь - все понятно будет). Поддерживается (естественно!) MSIE, оперой, вроде с недавнего времени - хромом, а лисой - только с соотв. расширением. Если целевой получатель пользуется ИЕ - вполне пойдет.

2. Более интересная вещь: есть протокол "встроенных данных" (data), может быть использован в любом источнике данных (src) html-документа. Выглядит так: "data:<ТипДанных>;<ТипКодировки>,<Данные>", где <ТипДанных> - MIME-тип данных, "<ТипКодировки>,<Данные>" - соответственно текстовое представление данных (в случае двоичных данных - лучше всего в base64) - подробнее тут.

То есть для картинок будет где-то так:
"data:image/jpeg;base64,"+Base64Строка(ДвоичныеДанные_Из_Файла_Картинки) .

Ограничение - встраиваемый объект не может превышать 32К.

Доб.: Увидел (17) после написания поста
19. Para_1987 73 08.07.12 12:49 Сейчас в теме
22. Rustig 1702 09.07.12 14:37 Сейчас в теме
(0) название статьи не соответствует содержимому.
читатель обманывается, хоть и не замечает этого.
Вы не сканируете, вы конвертируете форматы. Это первое замечание.
Второе, неужели вы не использовали следующие статьи?
http://infostart.ru/public/75969/
http://infostart.ru/public/20710/
По-моему, ссылка на первоисточник должна быть.
23. shakmaev 09.07.12 14:46 Сейчас в теме
(22) Rustig, обращаю внимание что сканировать без сканера в принципе невозможно. Первая часть названия статьи передает сущность написанного, а вторая часть после слова "или" раскрывает технический смысл написанного.

Писал статью опираясь исключительно на свой опыт, а найти информацию о технологии можно по всему интернету. В статье я делаю акцент именно на идею использования технологии.
28. marat_n 112 11.07.12 12:38 Сейчас в теме
В (22) правильно сказано, что по сути всё уже было тут на инфостарте. Единственное отличие - jpg, но это как раз не самое удачное, решение. PDF всё-таки правильней. Во-первых, картинки обычно корпоративной почтой режутся чаще, чем PDF-ки (да и шанс под спам-фильтр попасть у клиента с jpg-ом при авторассылке скорее всего выше). Во-вторых, нормальная распечатка PDF-файла гораздо проще, чем jpg, особенно, если документ будет на несколько страниц. Ну и как правильно заметили, текст из jpg не копируется. Да и кстати, jpg для передачи картинок с текстом изначально не предназначен.

А вот по поводу использования виртуальника, а не встроенного конвертора, к сожалению вопрос актуальный для многих. Поддержка pdf появилась насколько я помню только в 8.2.15, а далеко не все на эту платформу перешли из-за того, что необходимо конвертить базу, решать проблемы совместимости и прочее.
27. Stamper 42 10.07.12 17:36 Сейчас в теме
хорошо, что 1С уже из коробки может сохранять табличный документ в PDF
31. CaSH_2004 363 01.02.13 13:55 Сейчас в теме
(0) Статья полезная, вот только не для документов, кстати а почему автор указан как "(shakmaev) Александр Шакмаев" а отписывается как "cruze"? Это конспирация или что?
(30) Любопытно какие проблемы есть, поделитесь?
(21) Дают, и еще и просят. Кто хочет тот и из png все что нужно вырежет как уже сказал (24)
Я тоже больше за PDF в силу его простоы
32. shakmaev 346 01.02.13 14:05 Сейчас в теме
(31) CaSH_2004, это глюк сайта. Я изменил логин, в комментариях почему то он не поменялся.
35. webester 34 11.04.13 14:14 Сейчас в теме
На тему jpg vs pdf, мне тоже кажется что по факту должен быть pdf, pdf в хорошем качестве может быть 100-200 килобайт, jpg никогда.
39. alexqc 148 15.04.13 19:57 Сейчас в теме
(35) webester, это зависит от pdf. Поскольку в pdf может сохраняться текст как текст, такой pdf будет меньше jpg, в котором этот текст будет тем же рсунком (да и полезные возможности типа копирования текста будут). Ну а если в pdf текст как рисунок сохранить - будет и больше jpg. Кстати, jpg как формат рисунка для текстов - не лучший вариант.
41. webester 34 21.04.13 15:00 Сейчас в теме
(39)Сканировали в pdf не распознавая, размер получался меньше в разы, чем в jpg. А в случае с печатью из 1С там вообще текст при любом раскладе, то есть размер гарантировано меньше.
42. shakmaev 346 22.04.13 09:22 Сейчас в теме
(41) webester,
1. На момент написания статьи в платформе 1С еще не был реализован метод сохранения документов в формат pdf.
2. Формат JPG открывается стандартными средствами Windows, Mac, Linux, именно поэтому в моем случае был выбран формат изображения.

p.s. Сейчас уже используем PDF потому как клиентам удобно копировать оттуда реквизиты для оплаты.
36. orehova123 15.04.13 06:36 Сейчас в теме
хых! народ активно продает такие разработки по 1000-2000 (зависит от навороченности), а тут вот вам - открытый код ))))
40. s_uu 22 18.04.13 17:26 Сейчас в теме
Считаю, что pdf самый удобный формат для рассылки счетов. С остальными форматами мороки больше!
43. webester 34 22.04.13 16:31 Сейчас в теме
На момент написания статьи в платформе 1С еще не был реализован метод сохранения документов в формат pdf

Ваш метод сам по себе строится на pdf принтере. О чем вы? То есть возможность печати в файл и в пдф в том числе, это обязательное условие вашего решения.
Формат JPG открывается стандартными средствами Windows, Mac, Linux, именно поэтому в моем случае был выбран формат изображения
Тут вы все таки правы, но я все равно бы выбрал PDF, в силу того что он уже давно стандарт для электронного документа, бесплатные реализации читалок pdf есть для любой ОС. Не надо тормозить прогресс. Так и до блокнота можно докатиться. Когда заходит речь о установке\переустановке ОС, постоянно слышу:
%Name% не забудь программу поставить, что бы счета из электронки открывались ну эту... ну ты понял
:) То есть это норма читалка пдф и уже давно.
44. shakmaev 346 22.04.13 17:01 Сейчас в теме
(43) webester,
А в случае с печатью из 1С там вообще текст при любом раскладе, то есть размер гарантировано меньше.


*я об этом неуместном комментарии

:) То есть это норма читалка пдф и уже давно.


Можем спорить бесконечно о популярности форматов, их хороших и плохих качествах, как было выше в комментариях.
Однако, говоря о нормах, еще есть люди, способные при замене у них монитора задавать вопрос: "А пароль от Виндус сменился?", и это далеко не предел.
45. webester 34 26.04.13 06:06 Сейчас в теме
(44)
Однако, говоря о нормах, еще есть люди, способные при замене у них монитора задавать вопрос: "А пароль от Виндус сменился?", и это далеко не предел.

Так можно и до динозвра за монтором дойти начать решать вопрос, что у него когти к стандартной клавиатуре не подходят. Должны быть рамки разумного.
46. Alfer 16.01.14 19:44 Сейчас в теме
идея - супер - поддерживаю спасибо автору за труд
48. victor_k 26.07.18 04:00 Сейчас в теме
Зачем в pdf, а не в xls? Если, чтобы не подделывали документы, тогда лучше в картинку jpg, tif,.. поскольку есть программы которые умеют корректировать pdf, если там есть текст... хотя и картинку можно отфотошопить, но это уже труднее, если еще картинку документа зашумить... е
а еще лучше использовать электронные подписи
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    5163    comol    31    

ВИДы на жительство. Использование внешних источников данных в прикладных задачах

Внешние источники данных v8 Бесплатно (free)

На Infostart Meetup Novosibirsk выступил ведущий разработчик МКК «Ваш Инвестор» Вадим Фоминых. Он на практических примерах показал коллегам, как его команда использует внешние источники данных в прикладных задачах, призвал не отказываться от этого инструмента и объяснил – почему.

19.04.2021    425    Shmell    1    

Чтение из CSV (быстрое)

Универсальные функции v8 Бесплатно (free)

Почему то из гугла до сих пор нет ссылки на код процедуры быстро читающей csv... Загрузка из файла CSV c помощью ADODB.Connection провайдера Microsoft.Jet.OLEDB.

31.03.2021    567    kuzyara    4    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    6326    Nikola23    35    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    79113    Serginio    113    

Использование отчета как печатной формы документа

Печатные формы документов Практика программирования v8 1cv8.cf Бесплатно (free)

Пользователь попросил создать новый отчёт, но чтобы была возможность его распечатать из документа (в таком случае отчёт должен формироваться по этому документу), плюс при печати из документа должен быть заголовок и подвал с подписями. Однако, вид у внешней обработки может быть либо "Дополнительный отчет", либо "Печатная форма" (может быть ещё "Отчет" - для документа, но это тоже "либо" и задача была использовать типовой механизм формирования печатных форм). Чтобы не делать, по сути, два одинаковых отчёта, напрашивается мысль создать отдельно отчёт и печатную форму, но печатная форма должна вызывать формирование отчёта. В данной публикации представлен один из способов такой реализации.

20.02.2021    1474    ltfriend    6    

Последний раз про срез последних (на каждую дату в запросе)

Инструментарий разработчика Практика программирования Консоль запросов Универсальные функции v8 v8::Запросы Бесплатно (free)

Срез последних на каждую дату в запросе. Известные факты о задаче: часто встречается на испытаниях соискателей на работу программистом 1с, постоянно провоцирует споры об оптимальном решении. В данном тексте приводятся замеры производительности различных вариантов решения задачи.

15.02.2021    4429    randomus    47    

DaJet Exchange: обмен данными с 1С (часть 1)

Внешние источники данных v8 Бесплатно (free)

Типовой механизм обмена данными 1С, основанный на планах обмена, имеет ряд существенных недостатков. Для преодоления этих недостатков предлагается рассмотреть теоретические основы использования альтернативных механизмов, а также предлагается обсудить реализацию практического решения, оптимального с точки зрения автора.

11.01.2021    2772    zhichkin    14    

Универсальные функции с примерами использования Промо

Универсальные функции v8 Бесплатно (free)

14 универсальных функций, с примерами использования - для обычного и управляемого интерфейса

26.02.2016    42252    unichkin    47    

Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя

Практика программирования Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

Пользователи привыкли искать на форме списка, но, вбивая в поиск некорректные данные, могут завесить всю систему, а если еще искать нужно по НЕ полям списка, то решение только в своём поиске - все это решим в публикации с открытым кодом.

14.12.2020    9605    SizovE    2    

Отображение и редактирование в дереве большого количества настроек/параметров/опций программы, конфигурации, документа, справочника - без программного создания элементов формы

Практика программирования Универсальные функции Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Очень много реквизитов (настроечные опции, параметры) у справочника или документа, и их все необходимо разместить на управляемую форму - лень! Хочется - добавил в метаданные и всё! В публикации отличное, простое и олдскульное решение с открытым кодом, научимся работать с ДанныеФормыДерево, ДеревомЗначений, сделаем быстрый поиск, создадим универсальный инструмент.

11.12.2020    788    SizovE    6    

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

Практика программирования Универсальные функции Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

Большое количество динамических списков на форме, большое количество условий, долгое интерактивное добавление условий, оформление по значению элементов справочников - всё это не позволяет использовать интерактивный режим назначения условного оформления динамического списка. В публикации с открытым кодом детально разберем программное решение назначения условного оформления, создадим универсальную функцию для оформления списка.

30.11.2020    3213    SizovE    3    

Минимализмы 3 Промо

Практика программирования Универсальные функции v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    48405    ildarovich    45    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

Редактор HTML платформы 1С простой и очень удобный для небольших задач, однако ПолучитьHTML возвращает отдельно картинки и отдельно целиком HTML страницу со ссылкой на имена этих картинок, что неудобно для отправки в базу данных сайта/интернет-магазина/веб-приложения/B2B. Разберем на открытом коде, как решить эту проблему, напишем универсальную функцию получения значения любого тега HTML на регулярных выражениях. Бонусом - возможность редактировать теги HTML в текстовом режиме.

24.11.2020    779    SizovE    4    

Сохранение настроек

Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Делюсь еще одним не самым очевидным способом хранения настроек в базах на БСП без доработки конфигурации. Весь код в статье.

22.11.2020    2942    the1    8    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1744    SizovE    2    

Выполнение произвольного кода в фоновых заданиях Промо

Универсальные функции v8 Бесплатно (free)

Если надо быстро провести 100`000 документов...

13.01.2016    24934    unichkin    13    

Сохранение настроенного запроса набора данных СКД

Универсальные функции v8 v8::СКД 1cv8.cf Бесплатно (free)

Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.

09.11.2020    1449    Serge R    0    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 1)

Внешние источники данных v8 УНФ Бесплатно (free)

В статье опишу вариант обработки для загрузки номенклатуры поставщика, блок загрузки групп и их состыковки.

12.10.2020    877    malikov_pro    0    

Произвольные колонтитулы и повтор шапки таблицы в табличном документе (функция)

Универсальные функции v8 Бесплатно (free)

Пример рекурсивной функции, при помощи которой в табличный документ можно выводить верхний или нижний колонтитулы с произвольным содержимым, а также делать повтор шапки таблицы (или таблиц, если их несколько).

07.10.2020    2811    ellavs    2    

Распределение оплаты по товарам Промо

Практика программирования Универсальные функции v8 1cv8.cf Бесплатно (free)

Учебная задача. Оплата приходит по заказу. Требуется запросом распределить её по товарам. Практическая задача была сложнее. Упростил специально для иллюстрации. Сначала собираем в одну таблицу заказы и товары. Затем ОБЪЕДИНТЬ ВСЕ с оплатами. Потом намазываем оплату на товар.

04.08.2014    19348    Трактор    5    

Печать в word, pdf через html

Печать Практика программирования Универсальные функции v8 Россия Бесплатно (free)

При работе с клиентами возникла задача: использовать форматированный документ. Итак, существует справочник, в нем табличная часть. Для каждой строки требуется ввести описание, причем описание имеет тип форматированный документ. Потребовалось организовать печать табличной части справочника с описанием для каждой строки. Тип данных "Форматированный документ" не может выводится в табличный документ, поэтому пришлось организовывать печать через Microsoft Word.

11.09.2020    1416    arr    4    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    7560    YPermitin    21    

Выполнение внешней обработки по расписанию для управляемого и обычного приложения

БСП (Библиотека стандартных подсистем) Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

Использование БСП для выполнения внешних обработок в управляемом и обычном приложении

06.08.2020    5447    RPGrigorev    0    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42270    YPermitin    41    

Пользовательское поле СКД одной процедурой

Практика программирования Универсальные функции v8 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    1908    Yashazz    0    

Загрузка данных из Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21) "

Розничная торговля Внешние источники данных v8 БП3.0 Розничная и сетевая торговля (FMCG) Фармацевтика, аптеки Россия Бесплатно (free)

В статье представлен шаблон обработки для загрузки некоторых данных из программы Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21)

04.08.2020    1468    RPGrigorev    0    

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Универсальные функции v8 БП3.0 УТ11 Россия Бесплатно (free)

В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.

10.07.2020    5043    quazare    5    

Перенос данных из учетных программ Парус в конфигурации 1С Промо

Внешние источники данных v7.7 v8 БП2.0 ЗУП2.5 ЗКБУ БГУ 1С7:Бух 1С7:ЗиК 1С7:ББУ Россия БУ Госбюджет Бесплатно (free)

Статья посвящена анализу процессов переноса данных из учетных программ Парус в конфигурации 1С.

05.11.2012    52926    sklowsky    16    

Вывод дерева в табличный документ СКД

Практика программирования Универсальные функции v8 v8::СКД Бесплатно (free)

Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.

09.07.2020    3362    Yashazz    7    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    2850    Infector    4    

Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Внешние источники данных WEB v8 1cv8.cf Россия Бесплатно (free)

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

27.06.2020    1940    malikov_pro    0    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    7475    John_d    10    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5449    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    2567    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4458    RPGrigorev    0    

Простой способ добавить факсимильную подпись и печать в печатную форму

Печатные формы документов Практика программирования v8 1cv8.cf Бесплатно (free)

Актуальная задача добавить факсимильную печать и подпись в печатную форму.

08.04.2020    31389    John_d    16    

Штрихкодирование документов

Печатные формы документов v8 Россия Бесплатно (free)

Эта статья будет полезна для тех, перед кем стоит задача нетипового штрихкодирования документов.

25.02.2020    3083    Mechanik21    13    

Сходство Джаро - Винклера. Нечеткое сравнение строк

Универсальные функции v8 Россия Бесплатно (free)

В области информатики и статистики сходство Джаро - Винклера представляет собой меру схожести строк для измерения расстояния между двумя последовательностями символов. В публикации рассмотрены некоторые особенности алгоритма, и представлен вариант его реализации на языке 1С.

25.12.2019    7739    brooho    19    

Получение данных из Сигур

Внешние источники данных v8 1cv8.cf Бесплатно (free)

Получение данных из СКУД Сигур (без танцов с бубном)

25.12.2019    5482    skaoxy    6    

Функция - Формат государственного номера автомобиля

Универсальные функции v8 Автомобили, автосервисы Россия Бесплатно (free)

Возникла необходимость в приведении к единому формату хранящихся, и вводимых вновь, автомобильных Регистрационных знаков - Гос.номер.

23.12.2019    4946    brooho    4    

Новые возможности обработки Печать договоров по шаблонам для УТ 11, КА 2, ERP 2

Печатные формы документов Документооборот и делопроизводство v8 ERP2 УТ11 КА2 Бесплатно (free)

В публикации описаны возможности обработки, которые появились в новых релизах

19.12.2019    5076    pparshin    3    

[БСП] Внешняя печатная форма: как перед печатью выводить форму настроек

Печатные формы документов БСП (Библиотека стандартных подсистем) v8 КА2 Бесплатно (free)

Во внешней печатной форме перед печатью нужно выводить форму настроек. Для примера рассматриваю печатную форму "Акт сверки взаимных расчетов " .

19.12.2019    12078    John_d    9    

Полезности | Дерево значений | Обычные формы |

Практика программирования Универсальные функции v8 Бесплатно (free)

Полезные функции при работе с деревом значений.

04.12.2019    6953    Mellow    7    

Использование XML-схемы из макета внешней обработки

Обмен через XML Универсальные функции v8 1cv8.cf Бесплатно (free)

Простой способ использования XML-схем из макета внешней обработки.

28.10.2019    11991    Olesia_Matusevich    10    

Быстрое создание наполненных коллекций

Практика программирования Универсальные функции v8 1cv8.cf Бесплатно (free)

Разберем самые частые способы создания коллекции, значения которой известны заранее. И сравним скорость их выполнения.

28.10.2019    7605    SeiOkami    66    

Преобразование XML в таблицу значений или иной объект 1С методом XSL преобразования

Универсальные функции Обмен через XML v8 1cv8.cf Бесплатно (free)

Сразу открою интригу, напрямую прочитать XML, не содержащий объект 1С, не удастся. Статья раскрывает способы привести XML к формату, который возможно прочитать средствами платформы.

24.10.2019    13194    kraspila    32