![]() |
|
COMОбъект и Linux? | ☑ | ||
---|---|---|---|---|
0
nsergn
14.03.25
✎
16:00
|
Вопрос по COMОбъект (база локальная):
Возможно ли сформировать печатную форму с заполнением полей в формате docx на локальной машине с Linux (Astra Linux)? На Windows это работает: Объект = ПолучитьCOMОбъект(Каталог+"\ШаблонДоговора\"+ВыбраннаяСтрока.Имя); Перенесли базу на Linux и не работает. Как получить желаемое с минимальными затратами? |
|||
1
Волшебник
14.03.25
✎
16:01
|
веб-сервис
|
|||
2
arsik
гуру
14.03.25
✎
16:10
|
(0) Посмотреть как это делается в БСП. Там давно уже com выпилили из печатных форм. Сейчас распаковка, корректировка XML, запаковка. Все делается методами БСП.
https://infostart.ru/1c/articles/2071187/ https://infostart.ru/1c/articles/2155772/ |
|||
3
nsergn
14.03.25
✎
16:36
|
Есть самописная база на основе УТ10, в которой на Windows формирование файла работает.
Как (одной волшебной кнопкой))) сделать заполнение того же файла из такой же базы 1С на Linux? Или "волшебно" не получится? (1) статьи, особенно первая, интересные, глянул по диагонали, но придется потратить время, чтобы разобраться. Сейчас шаблон вордовского файла заполняется по принципу Заменить = Объект.Content.Find; Попытка Заменить.Execute("[ФИО]", Ложь, Истина, Ложь, , , Истина, , Ложь, ФИО,2); Исключение Сообщить("В документе не найдет тег [дата договора], либо у контрагента отсутствует данная информация"); КонецПопытки; (2) можно поподробнее, как это сделать "волшебно" и просто? |
|||
4
PLUT
14.03.25
✎
16:37
|
||||
5
arsik
гуру
14.03.25
✎
16:41
|
(3) Подтяни в свою чудо конфигурацию модули из бсп для печати и пользуйся.
|
|||
6
nsergn
14.03.25
✎
17:03
|
(4) по каким-то убеждениям там используется версия 8.3.8...
|
|||
7
nsergn
14.03.25
✎
17:04
|
чувствую, что самый простой вариант - обычная печатная форма внутри 1С
|
|||
8
PLUT
14.03.25
✎
17:12
|
(6) для 2018 года норм убеждение. в будущее могут смотреть не только лишь все. мало кто может это делать
там минимальная платформа для примера из статьи, т.к. начиная с 8.3.8 появились заклинания для работы с потоками в памяти (заклинания используются для распакоуки и запакоуки) |
|||
9
Djelf
гуру
14.03.25
✎
17:26
|
(3) Если ты хочешь извращений, то ставь 8ку на wine, туда же ставь офис, запускай там служебный сеанс и в нем пытайся работать через OLE.
Так работать возможно будет, но по факту ты потратишь значительно больше времени и возможно с нулевым результатом, чем найти альтернативную технологию заполнения, без ОЛЕ. |
|||
10
novichok79
14.03.25
✎
19:12
|
проще поднять http-сервис на golang и туда стучаться.
скомпилировать можно сразу на кучу архитектур. вот либа на чистом Go (без CGo приседаний). примерчик даже есть. https://github.com/unidoc/unioffice-examples/blob/master/document/edit-document/main.go OLE - он был еще в моем детстве, хз, вы б еще на коболе написали свой велосипед. |
|||
11
Garykom
гуру
14.03.25
✎
19:58
|
(0) можно
наилучший способ это wine + ms office + микросервис на Go который внутри wine пашет, имея полный доступ к объектной модели офиса с микросервисом через http из 1С общаться можно реализовать полноценный RPC в обертке http-сервиса |
|||
12
Garykom
гуру
14.03.25
✎
20:03
|
(10) пфф
https://github.com/Garykom/gotenberg_msoffice/blob/main/convert.go ЗЫ unidoc/unioffice - она платная |
|||
13
Garykom
гуру
14.03.25
✎
20:09
|
(11)+ если Golang слишком сложна
можно внутрь Wine кроме MS Office поставить PowerShell и далее тупо из 1С создавать скрипты ps по типу https://github.com/Garykom/office2pdf/blob/main/doc2pdf.ps1 запуская их из линуксовой 1С чтобы исполнялись через wine внутри |
|||
14
Кирпич
14.03.25
✎
20:51
|
Про питон забыли. Там есть навороченная библиотека для генерации docx по шаблонам. Примерчик:
Шаблон: Уважаемый {{name}}, зайдите в бухгалтерию! Выход: Уважаемый Иванов Иван Иваныч, зайдите в бухгалтерию! |
|||
15
Garykom
гуру
14.03.25
✎
22:11
|
(14) к сожалению у всех независимых от мс офиса библиотек есть один фатальный недостаток: не весь функционал поддерживается
например макросы или формулы? когда от значения в шаблоне зависят другие значения, как их обновить? |
|||
16
Кирпич
14.03.25
✎
22:45
|
(15) Да пожалуйста. Напихай в шаблон макросы и формулы. Нахрен они там кому нужны.
|
|||
17
Кирпич
14.03.25
✎
22:48
|
(15) Шаблоны в docx обычно для договоров используют. Ну и тому подобное. Просто текст. Ну пара таблиц и пара рисунков. Я лет 20 макросов в ворде не видел. Ты с какой планеты?
|
|||
18
Кирпич
15.03.25
✎
11:44
|
сервис примитивный нацарапал вот
//================================================
|
|||
19
Garykom
гуру
15.03.25
✎
14:45
|
(18) "ой у нас еще шаблоны в .rtf (.html, .xls, .ppt, ...)"
и допустим надо еще в pdf после заполнения конвертировать-сохранить и только в MS Office оно правильно делается, во всех прочих обрезает/кривит |
|||
20
Кирпич
15.03.25
✎
16:29
|
(19) В (0) же написано, что docx
не выдумывай проблемы, где их нет |
|||
21
mikecool
16.03.25
✎
14:57
|
(5) прочитал как "для печали", прослезился....
|
|||
22
mikecool
16.03.25
✎
14:59
|
делаю все печатные формы в mxl, и вам советую - никаких проблем.
|
|||
23
novichok79
16.03.25
✎
16:27
|
(12) чет не заметил шо оно платное.
в https://github.com/Garykom/gotenberg_msoffice/blob/main/convert.go все равно OLE. |
|||
24
novichok79
16.03.25
✎
20:13
|
(13) изврат.
Go - сложное? 25 keywords???!!! |
|||
25
Волшебник
17.03.25
✎
10:10
|
(24)+ С одной стороны, это правда.
![]() С другой стороны, язык Go является полным по Тьюрингу со всеми вытекающими. То есть на нём можно реализовать любую вычислимую функцию, а сложность программы может превысить возможности одного человеческого мозга. https://go.dev/ref/spec |
|||
26
novichok79
17.03.25
✎
10:11
|
(25) Что ж, такова жизнь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |