Конвертация PDF в 1С

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

Разработка - Практика программирования

PDF COM внешняя компонента конвертация x64

COM-компонента для работы с PDF (32/64 bit)

Предлагаю вашему вниманию удобный инструмент для работы с PDF форматом.

Несмотря на то, что на ИС существует множество подобных вещей, но для универсальности и простоты пришлось собрать собственный велосипед.

Это обыкновенная COM-компонента под Win, позволяющая преобразовывать PDF файлы в изображения (с отличным качеством), изображения в PDF, а также разбивать PDF на более мелкие файлы и склеивать файлы PDF в единый документ, извлекать текст из PDF, имеющих текстовые слои, вставлять на страницы PDF водяные знаки, логотипы, печати.

Есть поддержка x86 и x64 платформ.

В основе движка лежат две мощные библиотеки: iTextSharp 5 и PdfiumViewer .

Как пользоваться:

сначала просто проинсталлировать в систему пакет "SetupArrowPDF.msi" (выбираем что-то одно: из папки "x86" или из "x64") -> необходимые библиотеки скопируются в программные файлы, а компонента зарегистрируется автоматически.

далее инициализируем:

Конвертер = Новый COMОбъект("ArrowPDF.Converter");

можно сразу посмотреть версию:

Сообщить(Конвертер.Version());

[пока] есть <8> прикладных методов:

1) для сборки изображений в единый PDF файл:

 
 IMG2PDF()

2) для конвертации страниц PDF в изображения:

 
 PDF2IMG()

3) для дробления PDF:

 
 SplitPDF()

4) для слияния PDF:

 
 MergePDF()

5) для извлечения текста из PDF:

 
 GetText()

6) для вставки в PDF логотипов, водяных знаков, печатей и штампов:

 
 AddWatermark()

7) для сжатия PDF файлов:

 
 Compress()

8) для защиты PDF файлов от печати и изменений:

 
 Protect()

Почти все свойства данной компоненты, за исключением диапазонов или номеров страниц, можно не указывать принудительно, тогда они будут выставлены по умолчанию.

 

Горизонты использования компоненты не ограничены только 1с. Можете использовать её аналогично и в других ЯП.

Если будут пожелания на расширение функционала - высказывайтесь. Вместе сделаем мир лучше )


P.S. Просьба не сообщать, что можно сделать подобное через ghostscript или другие библиотеки или приложения. Перепробовал несколько разных инструментов - либо оч. сложно, либо не то качество или удобство.

 

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

Upd. 03.04.2020 - v.1.1

Доработка регистрации библиотеки типов. Исправление ошибки COM-взаимодействия из других ЯП.

Upd. 04.04.2020 - v.1.2

Добавлены методы GetText() и AddWatermark(). Свойство ImgPages заменено на PdfPages, которое может использоваться в нескольких методах.

Upd. 19.05.2020 - v.1.3

Добавлено сжатие PDF файлов - метод Compress().

Upd. 08.07.2020 - v.1.4

Добавлена возможность установки пароля на PDF документ - метод Protect().

Upd. 20.11.2020 - v.1.5

Добавлена 64-х разрядная версия компоненты.

 

Скачать файлы

Наименование Файл Версия Размер
Конвертация PDF в 1С (x86 + x64):

.7z 15,62Mb
46
.7z 1.5 15,62Mb 46 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Legavaz 689 31.03.20 13:19 Сейчас в теме
2. DarkAn 987 01.04.20 17:27 Сейчас в теме
Большое спасибо! Обязательно попробую!
3. Xershi 1155 02.04.20 08:17 Сейчас в теме
Я своему клиенту просто рекомендовал поменять логику в работе 1с, чем делать, то что умеет компонента.
Если нужно предложение, то это переписать на нейтив. У многих сервер на линукс.
kare; cleaner_it; +2 Ответить
5. SerVer1C 381 02.04.20 10:58 Сейчас в теме
(3) К сожалению, у многих клиенты на Венде. А компонента прекрасно будет там работать.
7. Xershi 1155 02.04.20 11:05 Сейчас в теме
(5) ну как говорится и так сойдет)
Но чтобы проф уровень поднять вам, то (3) и (4) маст хев!
Понятно, что это другой уровень разработки, но зато сразу показывает уровень разработчика.
Я кстати хотел писать ВК для андроида, чтобы он генерировал баркод. И обязательно на джаве.
Руки так и не дошли. А у вас как с этим?
Плюс 1С уже это реализовала. Поэтому только из академического интереса такое делать.
8. SerVer1C 381 02.04.20 11:12 Сейчас в теме
(7) Вы с какой целью интересуетесь моим уровнем разработчика? Писать кросс-платформенную библиотеку для работы с pdf - это уже далеко выходит за рамки данной статьи да и данной площадки в целом...
11. Xershi 1155 02.04.20 12:15 Сейчас в теме
(8) почему же выходит?
Вы просили задел, я его вам дал.
Или речь шла о копипасте простых операций?
Цель приобрести новые знания и опыт.
30. compreSSor 10 15.10.20 14:49 Сейчас в теме
(7)
Плюс 1С уже это реализовала.

а можно подробнее ?
31. Xershi 1155 15.10.20 15:33 Сейчас в теме
(30) в мобильной БСП есть компонента, тестируй.
4. duck 342 02.04.20 10:23 Сейчас в теме
Работа компоненты будет зависеть от разрядности сервера х32 или х64?
6. SerVer1C 381 02.04.20 11:01 Сейчас в теме
(4) Компонента 32-х битная, но в 64-х битном окружении отлично работает. В т. ч. будет работать и на клиенте. Если очень необходимо (для каких-то гиговых pdf), то могу реализовать полностью под х64.
9. SerVer1C 381 02.04.20 11:49 Сейчас в теме
(4) Не так вам ответил. Если вы хотите использовать данный COM-объект в 64-х битном приложении, то вам придется сделать для компоненты обёртку, иначе не заработает "как есть".
10. Xershi 1155 02.04.20 12:13 Сейчас в теме
(9) именно поэтому я отказался от COM решений!
32. SerVer1C 381 20.11.20 01:11 Сейчас в теме
(4) с версии 1.5 появилась поддержка 32-х и 64-х разрядных платформ.
12. cleaner_it 221 04.04.20 09:48 Сейчас в теме
Я клиенту посоветовал (и сам пользовался в схожей ситуации) виртуальным принтером PDF. А вообще - плюс, конечно)
13. SerVer1C 381 04.04.20 14:26 Сейчас в теме
(12) Да, можно в некоторых кейсах. Только вот pdf-принтеры не умеют конвертировать в графический формат...
14. chuff 07.04.20 09:51 Сейчас в теме
(13) Я бы не утверждал так категорично. PDFCreator прекрасно конвертирует. Несколько лет пользуюсь им для автоматического конвертирования документов из 1С в JPG
15. SerVer1C 381 07.04.20 10:12 Сейчас в теме
(14) Прямо вот так просто через виртуальный принтер?
17. chuff 07.04.20 12:16 Сейчас в теме
(15)Не помню, какие там ещё есть плюшки - типа соединения/дробления - не нужно было. Может и нет больше ничего. Но вот выгрузка табличных документов в JPG/PDF работает. Мне, в принципе, этого было достаточно.
16. chuff 07.04.20 12:10 Сейчас в теме
Если он предварительно настроен на определенный формат - то да, просто так.
Но если если подключить его через COM, то можно ещё и предварительно настройки конвертирования задавать из кода.
Формат, качество преобразования.
18. kirlog 90 18.05.20 22:19 Сейчас в теме
Здравствуйте!
А сжатие PDF реализовать не планируете?
19. SerVer1C 381 19.05.20 13:26 Сейчас в теме
20. kirlog 90 23.05.20 03:43 Сейчас в теме
21. greencom 09.06.20 12:46 Сейчас в теме
// разрешающая способность
//Конвертер.ImgDpiX = 1200;
//Конвертер.ImgDpiY = 1200;

Данные методы работают и какие значения поддерживаются?
22. SerVer1C 381 10.06.20 00:48 Сейчас в теме
(21) Методы работают. Значения могут быть произвольными (на ваш вкус).
23. KVIKS 87 19.06.20 03:04 Сейчас в теме
Не подключается компонента, пишет класс не зарегистрирован
1С 8,3,16, х32
windows 7 х64
переустановка не помогла, подскажите что можно сделать?
24. SerVer1C 381 19.06.20 07:51 Сейчас в теме
(23) Запустите установку от имени Администратора
25. vex2865 48 26.06.20 16:54 Сейчас в теме
Добрый вечер!
Win 10 x64
Запускал установку от имени админа

Ошибка

Конвертер = Новый COMОбъект("ArrowPDF.Converter");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса

Подскажите, в чем может быть проблема?
26. SerVer1C 381 27.06.20 23:21 Сейчас в теме
(25) 1С должна быть 32-х битная. Если у вас так и есть, то тогда требуется дополнительная информация.
27. vex2865 48 28.06.20 11:19 Сейчас в теме
(26)Понял. К сожалению 1с x64.
33. SerVer1C 381 20.11.20 01:12 Сейчас в теме
(27) с версии 1.5 появилась поддержка x64 !
28. sp18s 17.09.20 16:42 Сейчас в теме
Здравствуйте! Задача следующая.
Есть несколько pdf файлов. Там изображения.
Необходимо получить новый pdf файл на 1 страницу с размещением в нём этих изображений в произвольном виде. Например, первый файл - слева, второй - справа сверху, третий - справа снизу.
Еще должен быть добавлен разный текст. Например, артикул, серия, модель товара и т.д.
Кроме того, результирующий файл должен быть в векторном виде. Для качественной печати.
Как пример такого - инструкция по сборке товара, собранная на основании нескольких pdf файлов.
Такое возможно сделать с Вашей компонентой?
29. SerVer1C 381 17.09.20 21:36 Сейчас в теме
(28) Данная компонента является по большей части конвертером, чем созидателем pdf файлов. Вы конечно можете извлечь изображения и расставить их в новом файле, поигравшись отступами, но возможности добавления текста в ней отсутствуют, если только вы не подготовите изображения со штрих-кодами и текстами. (Конечно, исходные библиотеки движка компоненты позволяют сделать запросто добавление чего-либо в pdf файл, но тогда придется дорабатывать компоненту.) Но вот векторный pdf вы всё равно не создадите. Вам лучше смотреть в сторону Inkscape и им подобным.
34. CanAll1C 16.12.20 11:09 Сейчас в теме
Добрый день.

Конвертер = Новый COMОбъект("ArrowPDF.Converter");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса

64 ОС (Windows 10 Pro) и 64 1С, версия компоненты самая крайняя. Скачивали 16.12.2020.
35. SerVer1C 381 16.12.20 11:22 Сейчас в теме
(34) в архиве 2 варианта компоненты, вы точно установили 64-bit ? Если вы поставили 32-bit, то сначала обязательно удалите ее через панель управления, т. к. обе версии одновременно не могут существовать
36. CanAll1C 16.12.20 11:26 Сейчас в теме
Да, именно 64.
Могу визуально продемонстрировать по средствам teamviewer, anydesk.
37. SerVer1C 381 16.12.20 11:32 Сейчас в теме
(36) Я вам верю. Это частая ошибка при использовании COM-компонент. Однозначного решения проблемы нет, т. к. могут влиять многие факторы (настройки в ОС). Попробуйте проверить работоспособность компоненты на "чистой" системе.
38. SerVer1C 381 16.12.20 11:39 Сейчас в теме
(36) Кстати, устанавливали msi-пакет от имени администратора?
39. CanAll1C 16.12.20 11:41 Сейчас в теме
Только что это выполнили, ошибка такая же. Будем пробовать решить.
41. boltoff 19 28.01.21 11:39 Сейчас в теме
Вопрос по методу "AddWatermark"
По описанию - нужно передавать 2 файла PDF - 1 - сам документ, 2 - печать. Получаем 3-ий файл документ с печатью.
Вопрос, как подготовить 2-ой файл (печать). По описанию этот файл должен быть PDF-ом. Но у меня ничего не получается. Можно подробнее описать этот метод?
42. SerVer1C 381 28.01.21 16:02 Сейчас в теме
(41) Можно поступить следующим образом: вам надо сначала создать изображение водяного знака на листе, соответствующего размеру исходного PDF. Например, у вас исходная книга формата А4, и есть некоторый водяной знак, например 100*100 пикселей. Вам необходимо создать новое изображение (например, в формате PNG), соответствующее размеру исходной книги, поместить в какой-либо угол ваш водяной знак. Затем получившийся файл преобразовать в PDF (с помощью метода IMG2PDF()) - это и будет PDF с водяным знаком. Затем передать данный файл в метод AddWatermark()
43. boltoff 19 02.02.21 20:14 Сейчас в теме
44. boltoff 19 10.02.21 16:16 Сейчас в теме
Видимо у меня руки не из того места растут.

Код ниже.
Исходник и результат прикрепил.
Что я делаю не так?

&НаСервере
Функция СоздатьPDFСВодянымЗнаком()
Конвертер = Новый COMОбъект("ArrowPDF.Converter");
// ширина и высота создаваемого PDF
// т.к. для PDF дефолтный DPI = 72, то лист формата A4 будет 595*842 пикселей
Конвертер.PdfWidth = 842;
Конвертер.PdfHeight = 595;

// отступы от краёв
Конвертер.PdfLeftMargin = 0;
Конвертер.PdfRightMargin = 0;
Конвертер.PdfTopMargin = 0;
Конвертер.PdfBottomMargin = 0;

// пути к изображениям
изо1 = "D:\1\ЛаншафтКВ.png";

// пути добавим в массив
Изображения = Новый Массив;
Изображения.Добавить(изо1);

// преобразуем массив в безопасный
Если Изображения.Количество() <> 0 Тогда
Файлы = Новый COMSafeArray(Изображения, "VT_BSTR");
КонецЕсли;

// путь к создаваемому PDF
НовыйПДФ = "D:\1\new.pdf";

Результат = Конвертер.IMG2PDF(Файлы, НовыйПДФ);

Если НЕ ПустаяСтрока(Результат) Тогда
Сообщить(Результат);
КонецЕсли;
КонецФункции
Прикрепленные файлы:
new.pdf
45. boltoff 19 10.02.21 16:19 Сейчас в теме
Предыдущий метод не сработал. Сделал в ручную PDF а4 с печатью.

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



&НаСервере
Функция СоздатьPDFСВодянымЗнаком(ИсходныйПДФ, ВодянойЗнак, НовыйПДФ)
Конвертер = Новый COMОбъект("ArrowPDF.Converter");
Конвертер.PdfPages = "1,2";

Результат = Конвертер.AddWatermark(ИсходныйПДФ, ВодянойЗнак, НовыйПДФ);
Возврат Результат;
КонецФункции
46. SerVer1C 381 10.02.21 17:25 Сейчас в теме
(45)
Предыдущий метод не сработал.

PDF файл создался же. Проверяйте пути и доступность файлов для учётки, под которой выполняется алгоритм. Компонента работает, ваш код правильный.
47. Warn1ng26ru 7 26.02.21 09:54 Сейчас в теме
Спасибо. Подскажите, метод Compress() имеет возможности настройки? (или подскажите принцип сжатия, по которому он работает) Например: у меня файл pdf размером 10 МБ, используя метод Compress() он уменьшается на 5 КБ. Но если воспользоваться методом PDF2IMG() (поиграться с настройками), а потом воспользоваться методом IMG2PDF(), pdf можно сжать 2, 3, 4 раза (в зависимости от настроек качества изображений).
48. SerVer1C 381 26.02.21 10:35 Сейчас в теме
(47) Метод Compress() [в версии 1.5 и более ранних] не имеет возможности настройки. Для сжатия используется библиотека iTextSharp с уровнем сжатия PdfStream.BEST_COMPRESSION . Не все файлы после сжатия могут значительно уменьшиться в размерах. Сжатие ещё зависит от версии PDF формата. Точный механизм не исследовал, возможно, в определенных случаях происходит реорганизация внутренних данных без сжатия изображений. В будущем подумаю над тем, чтобы улучшить метод сжатия и сделать его вариативным.
Warn1ng26ru; +1 Ответить
49. evg81 31 23.03.21 12:23 Сейчас в теме
Спасибо за компоненту.

Есть вопросы про вставку водяного знака (штампа, логотипа и т.п.).

Как в AddWatermark() поместить водяной знак (штамп) слоем поверх исходного PDF ?

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

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

Может быть есть возможность указывать какой из файлов будет вставлен в фон, а какой поверх?

Неудобно подгонять водяной знак под размеры страницы исходного PDF.

Можно как-то указать положение для вставляемого PDF, кроме как подгонять его размер страницы под размер исходного PDF?

Разные страницы в PDF могут иметь разные размеры и тут подгонка под размер страницы исходного PDF не поможет.
50. SerVer1C 381 23.03.21 13:27 Сейчас в теме
(49) Через AddWatermark не получится поместить водяной знак верхним слоем. Как обходной вариант, разбирать PDF на картинки, самому навешивать водяной знак и снова перегонять в PDF. Подумаю над этой возможностью и над указанием положения водяного знака для каждой страницы (такого функционала тоже нет).
51. evg81 31 23.03.21 14:33 Сейчас в теме
(50) спасибо за ответ и за идею. Удалось слоем сверху вставить штампы на все страницы через SplitPDF() исходного PDF во временный каталог, затем вставить во все файлы внутри каталога штамп AddWatemark() с перестановкой первых двух параметров местами и через MergePDF() собрать всё обратно в PDF.

Остается только вопрос не озвученный ранее, каким образом узнать размер страницы исходного PDF?
Теперь это уже одностраничные PDF и по идее должно решить вопрос.

Пока только подгонка под ответ, но заранее я не могу знать какие файлы придут за штампами.
52. SerVer1C 381 23.03.21 15:12 Сейчас в теме
(51) Постараюсь в ближайшее время добавить метод для получения информации о страницах PDF файла.
53. Stackmann 23.03.21 19:01 Сейчас в теме
(50) Доброго времени суток.
Подскажите, нет возможности передавать водяной знак не как путь к файлу на диске, а как бинарные данные?
54. SerVer1C 381 23.03.21 21:24 Сейчас в теме
(53) Нет. Компонента сама считывает файл из файловой системы. Пишите двоичный данные в файл и передавайте путь. У вас же в водяном знаке, надеюсь, не секретные данные )
55. kare 21 01.04.21 15:18 Сейчас в теме
А скорость разделения одного pdf на множество png не замеряли? примерно
56. SerVer1C 381 01.04.21 21:17 Сейчас в теме
(55) Если конвертировать в JPG исходный PDF (1000+ страниц, 100+ МБ), то получается примерно следующее: если размер картинки на выходе 1500х2000, то ~9 страниц/сек, если размер 3000х4000, то ~4,5 страниц/сек. Замер на NVMe проводился.
57. kare 21 02.04.21 08:14 Сейчас в теме
(56)очень круто! а на гит хабе нет случайно вашей компоненты? за рублики скачать можно?
58. SerVer1C 381 02.04.21 09:01 Сейчас в теме
60. user925364 18.05.21 18:17 Сейчас в теме
недопустимая строка с указанием класса. Где регистировать компоненту если база серверная?
61. SerVer1C 381 18.05.21 22:20 Сейчас в теме
(60) Зависит от того, на чьей стороне вы будете использовать компоненту.
62. user925364 18.05.21 22:46 Сейчас в теме
Я проверил локально на файловой базе точно эта же ошибка. и компоненту установил локально
63. user925364 20.05.21 14:20 Сейчас в теме
как мне заставить ее работать?? никаком образом не работает
65. SerVer1C 381 20.05.21 16:53 Сейчас в теме
(63) сложно предположить, что происходит в вашей операционной системе... удалите утилиту, затем заново проинсталлируйте с админскими правами, компонента должна зарегистрироваться автоматически.
64. user925364 20.05.21 14:21 Сейчас в теме
другие com обьекты например для обмена с бухгалтерией работают прекрасно
66. user925364 20.05.21 17:18 Сейчас в теме
я правильно понимаю что если база серверная, то нужно ставить ее на сервер? битность та же что и битность сервера? х64
67. SerVer1C 381 20.05.21 22:00 Сейчас в теме
(66) Если будете конвертировать &НаСервере, то да, компоненту нужно инсталлировать на сервере. Если &НаКлиенте, то на конкретном клиенте. Битность согласно месту исполнения (если сервер x64, то 64-х разрядную компоннету, битность компоненты на клиенте зависит от версии клиента 1с)
68. kaliuzhnyi 104 27.05.21 15:15 Сейчас в теме
Вещь хорошая. С задачами справляется.
Но как сделать чтобы метод Конвертер.PDF2IMG сохранял файл с указанным именем а не просто 1.jpg?
69. SerVer1C 381 27.05.21 15:30 Сейчас в теме
(68) Из компоненты никак. Она именует изображение по номеру страницы. Используйте: move 1.jpg another_name.jpg
70. kaliuzhnyi 104 27.05.21 15:39 Сейчас в теме
(69) Досадно.
Тогда можете записать в книгу пожеланий - возможность передавать в метод PDF2IMG, какой-то префикс, например:
- У меня есть файл с именем v8_639D_b.pdf
- Я запускаю метод PDF2IMG("С:\Temp\Images\v8_639D_b.pdf", "С:\Temp\Images", "v8_639D_b_")
- У меня формируются файлы v8_639D_b_1.jpg, v8_639D_b_2.jpg, v8_639D_b_3.jpg и т.д.

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

Спасибо. А за конвертер плюсую.
71. SerVer1C 381 27.05.21 16:25 Сейчас в теме
Оставьте свое сообщение

См. также

Внешняя компонента: Android tools Промо

Мобильная разработка Разработка внешних компонент v8 v8::Mobile Абонемент ($m)

Несколько дополнительных функций для мобильного приложения\клиента под Android. Размер архива внешних компонент под архитектуры ARM и x86 - 230KB.

1 стартмани

12.01.2021    2848    10    KAV2    8    

Конвертация pdf-документа в постраничный набор изображений в формате jpeg

Универсальные обработки Работа с интерфейсом v8 Россия Абонемент ($m)

Конвертация pdf-документа в постраничный набор изображений в формате jpeg. Максимально просто

1 стартмани

21.06.2021    273    0    CHIKA    0    

Внешняя компонента на python

Разработка внешних компонент Абонемент ($m)

Технология создания и примеры кросc-платформенной внешней компоненты на python.

1 стартмани

10.03.2021    1725    5    aou1c    11    

Как правильно удалять данные из больших массивов

Практика программирования Универсальные функции Абонемент ($m)

Как правильно удалять данные из больших несортированных массивов

1 стартмани

15.02.2021    1463    0    Def.Gh    14    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

Практика программирования Адаптация типовых решений Прочие инструменты разработчика v8 1cv8.cf Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    5981    21    huxuxuya    11    

Мобильная платформа Android. Сохранение печатной формы в PNG

Мобильная разработка Разработка внешних компонент Абонемент ($m)

отправляем печатную форму в Viber, WhatsApp, Messenger

3 стартмани

07.09.2020    2437    0    kinan    0    

Загрузка файлов на сервер с использованием HTTP-сервиса 1С (multipart/form-data).

Практика программирования WEB Абонемент ($m)

Вариант загрузки файлов в составных данных методом POST (multipart/form-data) на примере демонстрационной базы.

1 стартмани

12.08.2020    7641    20    ltfriend    5    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    32208    45    Ditron    101    

Распаковка хранилища значений средствами MS SQL Server

Практика программирования Абонемент ($m)

Способ извлечения данных из 1С-ного "ХранилищеЗначений" в MS SQL Server с помощью самописной скалярной функции (без использования платформы 1С).

1 стартмани

23.09.2019    8781    3    SerVer1C    11    

Конвейер проверки качества кода

Инструментарий разработчика Практика программирования Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    32421    27    Stepa86    46    

Внешняя компонента для получения веса с весовых терминалов

Разработка внешних компонент Абонемент ($m)

Читает вес с БУ4263М1, Mettler Toledo IND310, CAS-6000, НВТ-9, FT-11, VT-220

5 стартмани

02.09.2019    5895    4    alexey_kurdyukov    2    

Вам нравятся запросы в 1С?

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Абонемент ($m)

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    25269    7    m-rv    91    

Расширяем возможности MS SQL Server с помощью хранимых процедур CLR

Практика программирования Разработка Абонемент ($m)

Не хватает какого-то функционала на скуле для обработки данных? Тогда он (новый функционал) идет к вам.

1 стартмани

02.09.2019    10361    1    SerVer1C    9    

Перфолента, первое знакомство. Новый язык программирования

Практика программирования Инструментарий разработчика Абонемент ($m)

Первое знакомство с новым языком программирования Перфолента. В статье описано назначение языка, причины его появления, основные характеристики и возможные варианты использования.

22.07.2019    23080    0    Perfolenta    165    

CLR декодер для MS SQL Server

Сервисные утилиты Разработка внешних компонент Абонемент ($m)

Библиотека для расшифровки кракозябр в базе данных.

1 стартмани

05.07.2019    7473    0    hellion    0    

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") Промо

Практика программирования v8 v8::Запросы 1cv8.cf Абонемент ($m)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    34258    92    m-rv    58    

Оповещение пользователей в трее с обратной связью через DLL

Разработка внешних компонент Россия Абонемент ($m)

Библиотеки для 32 и 64 клиентов для оповещения пользователей в трее с обработкой кликов во внешних событиях.

1 стартмани

20.02.2019    6079    4    xxxAndricxxx    8    

Настраиваемое мобильное приложение для сканирования штрихкодов

Практика программирования Сканер штрих-кода Мобильная разработка Абонемент ($m)

Обзор приложения для сканирования штрихкодов с возможностью обработки результата сканирования произвольным кодом для совместного использования с Android приложениями через Intent и взаимодействие с 1С конфигурациями через web-сервис.

1 стартмани

14.01.2019    11658    5    inord777    10    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    21239    30    TSSV    19    

Работа с публикациями "Инфостарт"

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    25539    13    RocKeR_13    16    

HTTP Сервисы: Путь к своему сервису. Часть 3

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    48447    66    dsdred    17    

Заполняем по шаблону (по умолчанию) Промо

Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

08.02.2018    32307    20    mvxyz    17    

Создаем объекты для модуля Bootstarp на Русском Фоксе

Практика программирования Россия Абонемент ($m)

Создавайте свой модуль с объектами для модуля Bootstrap, пакуйте их fxp-файлы и создавайте сайты из этих кубиков. Разберем, как это делать. Все гениальное должно быть простым, как теория относительности.

1 стартмани

19.08.2018    7674    0    andreosh    3    

РусскийФокс и BootStrap

Практика программирования Россия Абонемент ($m)

РусскийФокс вносит новый технологический подход в сайтостроение. Теперь вы можете ограничиться знанием Русского Фокса и не иметь знаний по HTML, CSS, JavaScript, PHP, чтоб создавать сайты.

1 стартмани

16.08.2018    8022    1    andreosh    18    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    33311    31    informa1555    30    

РусскийФокс. Изменение DBF-файла и назначение командных клавиш

Практика программирования Файловые протоколы обмена, FTP Россия Абонемент ($m)

- Шарапов, ты Русского Фокса знаешь ? - Конечно, Глеб. Я же программирую на Русском Фоксе. РусскийФокс (1C-подобный язык программирования) создает DBF-файлы и выгружает данные из DBF в XML.

1 стартмани

01.08.2018    7583    0    andreosh    2    

РусскийФокс. Создание DBF-файла, выгрузка в XML.

Практика программирования Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . РусскийФокс создает DBF-файлы и выгружает данные из DBF в XML. Голосуйте за доклад о РусскийФокс на Инфостарт.

1 стартмани

28.07.2018    7457    2    andreosh    0    

РусскийФокс и ClickerMann заносят данные в 1С

Сервисные утилиты Практика программирования Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . РусскийФокс создает сценарии для Clickermann. Сценарий заполняет справочник в 1С.

1 стартмани

21.07.2018    13120    1    andreosh    20    

Использование сборок .NET в 1С 7. и 8.x. Создание внешних Компонент. Промо

Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    89202    284    Serginio    74    

Работа с данными выбора

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    60445    24    kalyaka    16    

РусскийФокс и OpenOffice, а также исследование объектов

Практика программирования Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. . Взаимодействие с OpenOffice. GitHub https://github.com/UfaScript/RusFox

1 стартмани

12.07.2018    7915    1    andreosh    2    

РусскийФокс — 1С-подобный язык программирования

Практика программирования Математика и алгоритмы Россия Абонемент ($m)

Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. Знакомство.

1 стартмани

03.07.2018    12431    1    andreosh    50    

Нечеткий поиск одним запросом Промо

Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.12.2015    32036    72    vasvl123    9    

Полезные примеры составления схемы компоновки данных #2

Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

Еще один набор примеров как решить частные задачи в СКД

1 стартмани

22.05.2018    37247    11    SITR-utyos    13    

Tool1CD Beta в деле

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    29487    31    baton_pk    26    

Длинная арифметика (Bignum arithmetic) c COM-интерфейсом (ActiveX) на библиотеках MPIR

Инструментарий разработчика Практика программирования Россия Абонемент ($m)

Расчеты любой точности в вашем программном продукте, поддерживающем стандарт COM. Размер/точность длинного числа зависит только от вашей оперативной памяти. Проект основан на исходниках библиотеки MPIR, Edition 3.0.0. Полностью написан на С/С++ (COM.DLL).

1 стартмани

12.04.2018    8062    1    bedvit    4    

Веб-разработка на 1С (1Script)

Практика программирования Абонемент ($m)

Дорогие коллеги, под новый год хочется сделать небольшой сюрприз. Я уже два года обещаю сделать движок веб-разработки для 1С-ников, и вот, наконец, есть что показать. Этим новогодним постом я открываю сериал "Веб-разработка для 1С-ников". Все, кто знаком с проектом OneScript – добро пожаловать! Остальные, тоже не стесняйтесь!

1 стартмани

28.12.2017    31711    22    Evil Beaver    82