Имя: Пароль:
1C
1С v8
Сломалось сохранение в формате docx в новой платформе(?)
0 Garry1010
 
21.07.25
13:21
Похоже, что при обновлении версии платформы с 8.3.24.1624 на 8.3.27.1644 сломалось программное сохранение табличного документа в формате docx. Никто не сталкивался с таким?
А именно, один и тот же код:

    
ТабДокумент = .....; //тут функция создания и заполнения
	ТабДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.DOCX);
	ОбъектWord = Новый COMОбъект("Word.Application");
	ОбъектWord.Visible = 0;
	ОбъектWord.WordBasic.DisableAutoMacros(1);
	Документ = ОбъектWord.Documents.Open(ИмяФайла);


... на старой платформе нормально работает и после формирования/сохранения табличного документа открывает docx-файл, а на новой платформе вызывает ошибку. И сам Word при попытке ручного открытия сохранённого файла ругается с сообщением вида "не удаётся открыть файл ... из-за проблем с его содержимым... Местоположение: Часть: /word/document.xml, строка 0, столбец 0".
Попытка открыть этот же файл через "Открыть и восстановить" срабатывает, но программно и такой вариант не срабатывает - в такой форме всё равно ошибка:

	Документ = ОбъектWord.Documents.Open(ИмяФайла,,,,,,,,,,,,, Истина);


PS
При этом ручное сохранение табличного документа в формат docx через Ctrl-S в открытой форме работает нормально.
PPS
А программное сохранение того же табличного документа в формате PDF как работал, так и работает...
PPPS
В получаемом табличном документе есть картинка (скан печати).
1 Fish
 
гуру
21.07.25
13:37
"а на новой платформе вызывает ошибку." - А что за ошибка? Не с комом связана?
2 Garry1010
 
21.07.25
13:44
(1) Я, вроде, написал какая ошибка возникает... Оно с комом, но не с 1С-ным, а с Word.Application - а оне, вроде, не зависят от версии платформы, в отличие от подключения к самой же 1С по кому.
3 Fish
 
гуру
21.07.25
13:49
(2) А зачем открывать ворд через ком? Через ЗапуститьПриложение пробовали открывать?
4 Garry1010
 
21.07.25
13:58
(3) Потому что я использую его как макет, где сначала перезаполняю некоторые данные - и уже потом открываю через ЗапуститьПриложение. Собственно, из-за разницы форматирования страниц в Word и в 1С может так получиться, что скан печати некрасиво висит или вылезает на следующую страницу - приходится искусственно поправлять его.
5 Garry1010
 
21.07.25
14:13
(3) Сейчас исключил обработку файла, но он даже через ЗапуститьПриложение всё равно вызывает ошибку - ту же самую про содержимое файла.
6 PLUT
 
гуру
21.07.25
14:18
(5) внутре неё xml

попробуй сохранить средствами 1С и еще вариант "через ctrl-S  в открытой форме" и сравни распакованные xml - в чем отличия?
7 maxab72
 
21.07.25
14:21
В 8.3.27.1606 все работает нормально

текШаблонБинарный = ХХХ.ШаблонДоговораСПоставщиком.Хранилище.Получить();
текИмяШаблона = СокрЛП(ХХХ.ПутьКШаблонуДоговораСПоставщиком);
текШаблонБинарный.Записать(текИмяШаблона);
    
Word = Новый COMОбъект("Word.Application");
Word.Visible = TRUE;
    
Документ = Word.Documents.Add(текИмяШаблона,False,0);
8 lexushka
 
21.07.25
14:38
Сохранить в ОпенОФис? *.odt?

По вашей ошибке что-то гуглится
https://otvet.mail.ru/question/171811666
9 arsik
 
гуру
21.07.25
14:48
(7) Ты же готовый шаблон сохраняешь. Ты из ТабличныйДокумент сначала сохрани.
(0) Попробуй для проверки упростить ТабДокумент
10 Garry1010
 
21.07.25
15:12
(9) [Попробуй для проверки упростить ТабДокумент]
Да, уже попробовал - выяснилось, что всё путает одна картинка подписи-факсимиле. Как только удалил её - всё открылось в Word'е. :( Чем она может не нравиться? Непонятно.
И в старой версии платформы же ничего не мешало открываться файлу...
11 arsik
 
гуру
21.07.25
14:59
(10) Пересохрани чем ни будь штатным. Бывают такие картинки, которые внутри совсем не картинки :)
12 maxab72
 
21.07.25
15:08
(10) по 1644 было что-то про ошибки с картинками внутри файлов. Возможно, здесь что-то похожее.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший