Получение PDF на сервере под linux'ом и windows'ом

28.10.11

База данных - Инструменты администратора БД

До сих пор мне не удавалось сконвертить табличный документ в PDF под linux'ом. В версии 8.2.13 появилась возможность использовать команду ЗапуститьПриложение на сервере 1С. Жить стало легче. Python OpenDocument Converter позволяет преобразовывать с помощью OpenOffice документы xls в разные форматы.
Данная обработка демонстрирует лишь одну возможность, но благодаря Python-UNO bridge можно, например, организовать web сервис для работы с xls документами.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
converter2pdf.rar
.rar 32,64Kb
21 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Демонстрационная обработка по конвертации табличного документа в PDF

Краткий алгоритм работы:

Табличный документ созраняется во временный xls файл.
Опен офис открывает этот файл и сохраняет в виде PDF.
1С возвращает полученный PDF пользователю.

Конвертация выполняется на сервере 1С с помощью OpenOffice. Для конывертации табличного документа достаточно передать ТабличныйДокумент функции ПреобразоватьТабличныйДокументВPDF. Функция вернёт ссылку во временном хранилище, по которой можно получить PDF файл. Данная обработка работает на всех клиентах и серверах и под виндовсом и под линуксом.

Windows
При работе под виндовсом используется COM соединение с OpenOffice.
Если опен офис установлен и не работает, значит он открывает мастер регистрации и ждёт что пользователь понажимает кнопки. Для того чтобы победить это нужно 1С запускать с системной учётной записью,  в свойствах процесса поставить галку "Разрешить взаимодействие с рабочим столом", один раз исполнить этот код и прощёлкать диалог опена офиса. Кривое решение, но как решить прямо не знаю.

 

Linux
При работе под линуксом используется Python OpenDocument Converter. При этом на сервере дожен быть установлен Опен офис и Питон. Опен офис работает в качестве сервера, слушает порт 8100.

Назначение файлов
start_soffice_server.sh - скрипт запуска OpenOffice в режиме сервера
DocumentConverter.py - собственно преобразователь (конвертор), который передаёт Опену офису имена входного и выходного файлов
convetr2pdf.sh - скрипт запуска преобразователя (конвертора).

Для настройки под линуксом необходимо
1. В скрипте start_soffice_server.sh прописать путь к папке установки Опена офиса.
2. Скрипт start_soffice_server.sh поставить в автозагрузку ОС для того чтобы сервер Опена офиса запускался сразу.
3. В скрипте convetr2pdf.sh прописать путь к опену офису, питону и скрипту DocumentConverter.py
4. В модуле обработки поправить путь к скрипту convetr2pdf.sh. По умолчанию путь /home/usr1cv82/converter2pdf

Политолог Сергей Кургинян – о варианте интеграции.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    19259    76    39    

92

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    17396    66    10    

99

Инструменты администратора БД Системный администратор Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

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

3600 руб.

06.02.2017    33767    146    18    

51

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    39329    116    152    

82

Инструменты администратора БД Системный администратор Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

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

140000 руб.

10.08.2012    124776    9    122    

195

Администрирование Инструменты администратора БД Удаленное управление Системный администратор 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Расширение разработано для автоматизации интеграции «1С:Зарплата и управление персоналом (редакция 3.1)» с сервисом Яндекс 360 через платформу «n8n». Расширение позволяет автоматически создавать учетные записи Яндекс для новых сотрудников, обновлять данные существующих сотрудников и блокировать учетные записи уволенных сотрудников. Обмен данными осуществляется через API Яндекс 360 с использованием промежуточного сервера платформы n8n, что обеспечивает гибкость, масштабируемость и упрощение интеграционных процессов.

5000 руб.

03.04.2025    1910    3    0    

4

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

5 стартмани

15.02.2024    17509    324    ZAOSTG    100    

123
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Арчибальд 2709 28.10.11 17:04 Сейчас в теме
Ощутил прелести премодерации?
Ссылка хороша...
2. Трактор 1271 28.10.11 23:27 Сейчас в теме
(1) Ощутил :-)
Я так понимаю что это Alraune быстро отработала. Буквально в 15 минут. Однако на это публикацию я ушатал почти весь день. При том что все скрипты рабочие и отлажены.
3. пользователь 28.10.11 23:55
Сообщение было скрыто модератором.
...
34. Трактор 1271 13.01.12 23:11 Сейчас в теме
(1) (3) А вот теперь ощутил по полной. Halaha спамит меня, а я отписаться не могу. Раньше мог.
35. Alraune 1506 13.01.12 23:24 Сейчас в теме
(34) Это другое. Комментарии закрыты были сразу, вместе с их автором, поэтому по ним не ответить ничего. Могу открыть, но оно Вам надо?
36. Трактор 1271 13.01.12 23:26 Сейчас в теме
(35) Благодарю за оперативность.
4. CaSH_2004 374 29.10.11 13:33 Сейчас в теме
Сам не пользуюсь Линуксом, но ведь ОпенОфис на нем работает. Уточните, получается при этом не работает конфертация в PDF?
5. Трактор 1271 29.10.11 14:40 Сейчас в теме
(4) CaSH_2004, опен офис работает, только вызвать его из 1С до недавнего времени было непросто. Нужна была внешняя компонента. Эта публикация показывает как без внешних компонент обратиться к опену офису.

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

Меня расстраивала ограниченность вебклиента. Разобрать экселёвый файл на нём невозможно. На сервере под линуксом тоже ничего не получалось сделать. Puno brige даёт возможность импортировать экселёвские файлы.
Хорошая тема новой разработки "Универасльный разбор экселёвых файлов на виндовом и линуксовом сервере". Может быть выполнена как обработка с набором методов, не зависящих от ОС и офисного пакета и позволяющих читать и писАть экселёвые и опен офисные файлы.
6. Ish_2 1117 29.10.11 15:11 Сейчас в теме
Я в PDF и прочих линуксах ничего не понимаю.
Кургиняна по ссылке не читал. Но осуждаю.
И тебя : ссылка здесь ни к селу , ни к городу.
И Кургиняна : популярен и неглубок.
7. yandextesting 150 13.12.11 00:14 Сейчас в теме
http://downloads.v8.1c.ru/content/Platform/8_2_15_273/V8Update.htm

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

...
Реализована возможность выполнять печать табличных документов в веб-клиенте с помощью документов формата PDF. Реализована настройка "Способ печати" в диалоге настройки параметров веб-клиента.

Кстати, там еще и толстого клиента в файловом режиме работы в Linux добавили.
9. Alav 13 13.12.11 04:25 Сейчас в теме
(7) Что-то дистрибутив не наблюдаю
10. Трактор 1271 13.12.11 10:05 Сейчас в теме
(7)
yandextesting пишет:
Версия 8.2.15
Кстати, там еще и толстого клиента в файловом режиме работы в Linux добавили.

И это радует :-)

Python-UNO bridge может быть полезен не только для получения PDF, а, ещё, например, для разбора МСофисных или Опен офисных документов.

(9) Версия 8.2.15 ознакомительная, вышла 9 декабря. http://users.v8.1c.ru/version.jsp?id=Platform82&ver=8.2.15.273
11. Alav 13 13.12.11 10:23 Сейчас в теме
(10) Это я в курсе, речь именно

yandextesting пишет:
Кстати, там еще и толстого клиента в файловом режиме работы в Linux добавили


А вот дистрибутив толстого клиента где лежит?
12. Трактор 1271 13.12.11 10:27 Сейчас в теме
(11) в 8 написано что "лишнее, удалить бы"
8. yandextesting 150 13.12.11 00:19 Сейчас в теме
там еще и толстого клиента в файловом режиме работы в Linux добавили
13. АлексейН 2 21.12.11 09:04 Сейчас в теме
yandextesting пишет:
Версия 8.2.15
...
Новые возможности и изменения
...
Реализована возможность сохранения табличного документа в файл формата PDF.

А это очень интересно, не надо лишних заморочек, будем ждать официального релиза.
14. пользователь 13.01.12 23:00
Сообщение было скрыто модератором.
...
15. пользователь 13.01.12 23:00
Сообщение было скрыто модератором.
...
16. пользователь 13.01.12 23:00
Сообщение было скрыто модератором.
...
17. пользователь 13.01.12 23:01
Сообщение было скрыто модератором.
...
18. пользователь 13.01.12 23:01
Сообщение было скрыто модератором.
...
19. пользователь 13.01.12 23:02
Сообщение было скрыто модератором.
...
20. пользователь 13.01.12 23:02
Сообщение было скрыто модератором.
...
21. пользователь 13.01.12 23:02
Сообщение было скрыто модератором.
...
22. пользователь 13.01.12 23:02
Сообщение было скрыто модератором.
...
23. пользователь 13.01.12 23:03
Сообщение было скрыто модератором.
...
24. пользователь 13.01.12 23:06
Сообщение было скрыто модератором.
...
25. пользователь 13.01.12 23:06
Сообщение было скрыто модератором.
...
26. пользователь 13.01.12 23:06
Сообщение было скрыто модератором.
...
27. пользователь 13.01.12 23:06
Сообщение было скрыто модератором.
...
28. пользователь 13.01.12 23:07
Сообщение было скрыто модератором.
...
29. пользователь 13.01.12 23:07
Сообщение было скрыто модератором.
...
30. пользователь 13.01.12 23:07
Сообщение было скрыто модератором.
...
31. пользователь 13.01.12 23:08
Сообщение было скрыто модератором.
...
32. пользователь 13.01.12 23:08
Сообщение было скрыто модератором.
...
33. пользователь 13.01.12 23:08
Сообщение было скрыто модератором.
...
37. cyberozz 24.07.13 15:48 Сейчас в теме
На самом деле связка openoffice и python достаточно кривоватая и требует каких-то открытых портов и запущенных инстансов. Гораздо проще использовать ssconvert из пакета gnumeric.
38. viptextil 42 11.03.16 11:20 Сейчас в теме
Статья давняя, понимаю. Почему для конвертации документа под Linux нельзя использовать печать документа на CUPS-PDF принтер?
39. Трактор 1271 14.03.16 10:31 Сейчас в теме
(38) можно, наверное, но интересовали не только возможности получения pdf, а и заделы для обработки табличных документов под линуксом. Развивать эту разработку в данном направлении не стал.
Для отправки сообщения требуется регистрация/авторизация