Имя: Пароль:
1C
 
Загрузка из файла doc на сервере.
0 Zombi
 
18.12.25
09:04
Необходимо регламентным заданием загружать данные из файла doc. На клиенте отрабатывает код:

    Wk = Новый COMОбъект("Word.Application");
    
    Wk.Visible = Ложь;
    Wk.Documents.Open("\\srv-file\Storage\Обмен\ФайлыЗагрузки\Файл_10_2025.doc");
    
    Документ = Wk.ActiveDocument();
    
    Для н = 1 по Документ.Sentences.Count Цикл
        
        Текст=Документ.Sentences(н).Text;
        
        Сообщить(Текст);     
        
    КонецЦикла;    
    
    Документ.Close();
    Wk.Quit();    

На сервере как-то можно загрузить?
1 Волшебник
 
18.12.25
09:06
а на сервере вы кому сообщаете?
2 Amra
 
18.12.25
09:06
Скажите админам, чтобы Ворд на сервере установили
3 Мультук
 
гуру
18.12.25
09:09
(0)

Возникает куча вопросов:
-- Не стал пробовать.
-- Сначала решить спросить.
-- Сервер на Linux
-- На сервере нет и не будет Word

Что не так-то?
4 Волшебник
 
18.12.25
09:10
(3)+ есть ли доступ к файлу у пользователя, под которым работает 1С-сервер
5 Zombi
 
18.12.25
09:14
(1) На клиенте этот код пока работает. Думаю как реализовать на сервере.
6 Zombi
 
18.12.25
09:17
Ошибку выдает на Документ = Wk.ActiveDocument(); Произошла исключительная ситуация (Microsoft Word): Данная команда недоступна, так как не открыт ни один документ.
Я так понял, этот метод вообще на сервере не работает.
7 Zombi
 
18.12.25
09:18
Попробую узнать, есть ли ворд на сервере.
8 Мультук
 
гуру
18.12.25
09:19
(7)

Лучше узнать (4)

Ибо если ворда на сервере нет, вы упали бы на строке

Wk = Новый COMОбъект("Word.Application");
9 Zombi
 
18.12.25
09:25
МойФайл.Существует() истина выдает по этому пути в серверной процедуре.
10 formista2000
 
18.12.25
09:32
Почувствуйте разницу:
Документ = Wk.ActiveDocument();
Документ = Wk.ActiveDocument;
11 Zombi
 
18.12.25
09:38
Это я в отладчике перед строкой Документ = Wk.ActiveDocument();
12 Zombi
 
18.12.25
09:51
Не работает "Word.Documents.Open" на сервере 1С
Тут тоже прочитал что только переносом кода на клиент решилось.
13 YaFedor
 
18.12.25
09:58
А почему бы не docx?
14 DrZombi
 
гуру
18.12.25
10:00
15 DrZombi
 
гуру
18.12.25
10:02
+(0) Конвертация на Linux из doc в docx выполняется быстро.
Через Либр-Офис :)

https://www.libreoffice.org/download/download-libreoffice/?type=deb-x86_64&version=25.8.3&lang=ru
16 Zombi
 
18.12.25
10:04
(14) То если docx. Задача же из doc загрузить.
17 DrZombi
 
гуру
18.12.25
10:07
+(0) Если у вас Форточки на сервере 1С, то просто ставите офис на сервер, и ваш код будет работать до поры. :)
18 DrZombi
 
гуру
18.12.25
10:08
(16) Конвертируй -

Конвертация (от лат. converto — «превращаю») — это процесс преобразования чего-либо из одной формы, формата или системы в другую, часто с сохранением основного смысла или содержания; наиболее известны конвертация валют (обмен денег), конвертация данных (изменение формата файлов), а также конверсия в экономике (перепрофилирование производства),.
19 DrZombi
 
гуру
18.12.25
10:10
+(16)  Задача загрузить данные, а не именно из DOC.
Просто исходный файл DOC.

Вы немного путаете потребность с реализацией :)
20 Zombi
 
18.12.25
10:22
(19) Пока задача загрузить именно из doc. Загрузка должна проходить регламентным заданием каждый месяц. Вопрос смены формата это не просто сконвертировать и загрузить, а выяснить, откуда файл берется, могут ли его там изменить на другой. Согласовывать все это итд итп. Собственно сюда написал чтобы узнать, можно ли загрузить именно из doc на сервере. Если ответ нет, вопрос закрыт тогда.
21 Мультук
 
гуру
18.12.25
10:28
(0)

P.S.

Шёл 2025 год, а "та сторона" так и не догадывалась,
что для обмена информацией word - плохая идея.

В конце-концов есть же более удобные форматы:
XLS
dbf
csv

P.P.S.
Для танкистов - это был сарказм, да.
22 spiller26
 
18.12.25
11:18
Вот ради интереса, что в этом документе, из которого нужно загружать? Таблица или просто текст?
23 formista2000
 
18.12.25
11:26
(22) Embedded object из Excel скорее всего. ))
24 Fish
 
гуру
18.12.25
14:14
(22) Судя по  Для н = 1 по Документ.Sentences.Count Цикл, документ читают по предложениям. С таблицей, емнип, по-другому работают.
25 spiller26
 
18.12.25
14:11
Если тупо текст, то почему не использовать программу конвертор (doc2txt) есть и под Вин и Линукс без комов и т.д.
2 + 2 = 3.9999999999999999999999999999999...