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

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

Бухгалтерский учет - Печатные формы - Печатные формы документов

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

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

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

Весь процесс в среднем занимает около 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. Трактор 1224 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 345 13.02.13 17:13 Сейчас в теме
(33) Lyas, пишу по памяти потому как модуль уже переделал. Переменная принтер тут отвечает за список установленных принтеров в системе, а Item(1) в свою очередь указывает на конкретный принтер этого списка. Такова была специфика.
2. shakmaev 24.05.12 12:50 Сейчас в теме
Обращаю внимание что в статье я пишу о использовании PDFCreator, или эта программа кроссплатформенная?
jONES1979; +1 Ответить
3. ediks 332 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 557 27.05.12 00:39 Сейчас в теме
Хорошо что у меня платформа 8.2 а не 8.2 которая у автора стоит и про которую автор пишет
я могу штатно все печатные формы в PDF сохранять...
30. JohnyDeath 300 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 557 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 1292 09.07.12 14:26 Сейчас в теме
(6), (7) я конвертирую счета в формат .png.
потому что в pdf я не смог обойти такую проблему: у меня печать и подпись можно скопировать из создаваемого pdf,
а из png нельзя. И это при установленной защите от копирования текста...
И надо сказать, что база на платформе 8.1.
24. IamAlexy 557 09.07.12 17:13 Сейчас в теме
(20) надо будет взять твою печать и подпись: возьму фотошоп и за 5 минут вырежу...
это вообще не проблема..
38. alexqc 150 15.04.13 19:49 Сейчас в теме
(20) Rustig, А кто помешает желающему печать-подпись скопировать непосредственно из рисунка? Сложнее чем копи-паст, но не недоступно. ИМХО, тут разве что наложение "водяного знака" через весь документ с печатью поможет, либо надпись на печати некоего уникального кода именно этого документа.
9. savflint 29.05.12 12:31 Сейчас в теме
спасибо за труды. очень пригодилось.
10. CheBurator 3378 30.05.12 03:49 Сейчас в теме
все равно все эти решения через виртуальные принтера - через задницу. д.б. тупо и просто, типа как экспорт в пдф в либре или kingoffice
11. 1977 2 30.05.12 11:36 Сейчас в теме
pdf принтером пользуемься 5 лет. Полет нормальный.
savflint; +1 Ответить
12. TitanLuchs 294 08.06.12 10:35 Сейчас в теме
А в "отсканированный" таким образом документ можно вставить печать и подпись в нужное место? Если их прилепить на печатную форму они подхватятся этой обработкой?
13. shakmaev 08.06.12 12:08 Сейчас в теме
(12) TitanLuchs, несомненно! В статье я привожу пример как я использовал реализацию данного метода под себя
ЭлементыФормы.ПолеТабличногоДокумента.Защита = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = Ложь;
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(1).ВыводитьНаПечать = Истина; //Печать
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(0).ВыводитьНаПечать = Истина; //Подпись 1
ЭлементыФормы.ПолеТабличногоДокумента.Рисунки.Получить(2).ВыводитьНаПечать = Истина; //Подпись 2


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

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

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

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

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

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

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

... вотУДАЧИвот ...
shakmaev; +1 Ответить
21. Rustig 1292 09.07.12 14:31 Сейчас в теме
(16) кто ж тебе из клиентов позволит пересылать подписи и печать в готовом виде? это ж подстава...
а ведь речь в большинстве случаев о том, как подписанный счет да с подписью переслать контрагенту... ;)
25. IamAlexy 557 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. Шёпот теней 1774 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 150 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 74 08.07.12 12:49 Сейчас в теме
22. Rustig 1292 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
29. пользователь 11.07.12 13:30
Сообщение было скрыто модератором.
...
31. CaSH_2004 365 01.02.13 13:55 Сейчас в теме
(0) Статья полезная, вот только не для документов, кстати а почему автор указан как "(shakmaev) Александр Шакмаев" а отписывается как "cruze"? Это конспирация или что?
(30) Любопытно какие проблемы есть, поделитесь?
(21) Дают, и еще и просят. Кто хочет тот и из png все что нужно вырежет как уже сказал (24)
Я тоже больше за PDF в силу его простоы
32. shakmaev 345 01.02.13 14:05 Сейчас в теме
(31) CaSH_2004, это глюк сайта. Я изменил логин, в комментариях почему то он не поменялся.
35. webester 35 11.04.13 14:14 Сейчас в теме
На тему jpg vs pdf, мне тоже кажется что по факту должен быть pdf, pdf в хорошем качестве может быть 100-200 килобайт, jpg никогда.
39. alexqc 150 15.04.13 19:57 Сейчас в теме
(35) webester, это зависит от pdf. Поскольку в pdf может сохраняться текст как текст, такой pdf будет меньше jpg, в котором этот текст будет тем же рсунком (да и полезные возможности типа копирования текста будут). Ну а если в pdf текст как рисунок сохранить - будет и больше jpg. Кстати, jpg как формат рисунка для текстов - не лучший вариант.
41. webester 35 21.04.13 15:00 Сейчас в теме
(39)Сканировали в pdf не распознавая, размер получался меньше в разы, чем в jpg. А в случае с печатью из 1С там вообще текст при любом раскладе, то есть размер гарантировано меньше.
42. shakmaev 345 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 35 22.04.13 16:31 Сейчас в теме
На момент написания статьи в платформе 1С еще не был реализован метод сохранения документов в формат pdf

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


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

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


Можем спорить бесконечно о популярности форматов, их хороших и плохих качествах, как было выше в комментариях.
Однако, говоря о нормах, еще есть люди, способные при замене у них монитора задавать вопрос: "А пароль от Виндус сменился?", и это далеко не предел.
45. webester 35 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, если там есть текст... хотя и картинку можно отфотошопить, но это уже труднее, если еще картинку документа зашумить... е
а еще лучше использовать электронные подписи
Оставьте свое сообщение

См. также

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

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

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

27.01.2016    86030    Serginio    116    

Программный интерфейс для доработки форм

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    2978    AtamanovYS    19    

Отбор/фильтр в отчетах/СКД/обработках 1C: БП, УТ, ERP, Кронос: WMS по файлу Excel, текстовому файлу или списку текстовых строк (номер документа, артикул, ИНН, QR-код, штрих-код, наименование)

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

Как построить отчет Анализ продаж или Остатки товаров с отбором/фильтром по списку кодов товаров/артикулов или ИНН покупателей из Эксель файла? Покажем, какой код нужно добавить в конфигурацию 1С (в том числе нетиповую), чтобы в любом отчете/отборе СКД/обработке можно было заполнять отбор по excel файлу, текстовому файлу или просто по списку строк - удобно и быстро.

23.11.2021    387    SizovE    3    

Простейший способ учета изменений управляемых форм объектов 1С

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

Описание методологии, позволяющей контролировать список изменений форм + вспомогательные функции программного изменения форм. Пригодятся при внесении изменений в расширениях, если есть необходимость видеть и контролировать все сделанные с формой изменения.

02.11.2021    999    avalakh    12    

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

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

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

28.12.2020    9069    comol    31    

Функции для преобразования справочников и документов в соответствие и обратно

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

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

01.11.2021    757    avalakh    5    

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

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

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    1523    e-9    13    

Взаимодействие с api Честный знак (Молочная продукция)

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

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    2198    user5300    45    

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

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

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

26.02.2016    43392    unichkin    47    

Изменение расшифровки макета СКД до компоновки

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

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    2461    Yashazz    6    

Префиксация объектов - полезный типовой функционал БСП

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

В данной публикации предлагаю рассмотреть основные типовые возможности библиотеки стандартных подсистем (БСП), касаемые префиксации объектов конфигураций.

21.06.2021    4969    quazare    4    

Печать непроведенных документов в УТ 11

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

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

13.05.2021    1012    atdonya    0    

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

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

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

19.02.2018    50138    ildarovich    47    

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

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

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

19.04.2021    2056    Shmell    4    

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

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

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

31.03.2021    1952    kuzyara    4    

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

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

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

17.03.2021    12483    Nikola23    40    

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

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

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

13.01.2016    25295    unichkin    13    

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

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

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

20.02.2021    3212    ltfriend    6    

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

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

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

15.02.2021    11494    randomus    47    

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

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

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

11.01.2021    4156    zhichkin    14    

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

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

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

04.08.2014    19580    Трактор    5    

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

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

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

14.12.2020    24148    SizovE    2    

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

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

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

11.12.2020    1078    SizovE    6    

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

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

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

30.11.2020    6539    SizovE    4    

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

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

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

11.04.2013    43211    YPermitin    42    

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

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

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

24.11.2020    1326    SizovE    4    

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

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

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

22.11.2020    4537    the1    8    

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

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

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

17.11.2020    2340    SizovE    2    

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

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

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

05.11.2012    54013    sklowsky    16    

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

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

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

09.11.2020    1747    Serge R    0    

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

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

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

12.10.2020    1216    malikov_pro    0    

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

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

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

07.10.2020    5563    ellavs    3    

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

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

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

11.09.2020    2275    arr    4    

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

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

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

07.08.2020    13679    YPermitin    23    

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

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

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

06.08.2020    13965    RPGrigorev    0    

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

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

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

05.08.2020    2317    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    1850    RPGrigorev    0    

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

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

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

10.07.2020    7907    quazare    5    

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

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

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

09.07.2020    4391    Yashazz    7    

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

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

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

06.07.2020    4722    Infector    4    

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

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

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

17.06.2020    14613    John_d    17    

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

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

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

08.05.2020    5911    chernenko_vv    26    

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

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

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

08.05.2020    3257    vostok1.dz    3    

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

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

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

04.05.2020    4994    RPGrigorev    0    

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

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

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

08.04.2020    43628    John_d    16    

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

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

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

25.02.2020    4010    Mechanik21    22    

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

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

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

25.12.2019    8529    brooho    19