helpf.pro
Регистрация

Как открыть *.DOC файл из 1С для редактирования?

ZyMik
18.10.2009 21:43Прочитано: 30606
Как открыть *.DOC файл из 1С (например из хранилища) для изменения, а после завершения изменения (записи в Word) узнать об этом и получить его обратно (например чтоб сохранить его в базе)?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
22.10.2009 20:32Ответ № 1
На работе есть пример, в понедельник выложу.
E_Migachev
26.10.2009 12:37Ответ № 2
Получение, открытие файла из Реквизита с типом ХранилищеЗначения

Код 1C v 8.х
 // ФайлDoc1 - Реквизит ХранилищеЗначения, в нем хранится сам файл
// ФайлDoc1Название - Название файла находящегося в ФайлDoc1
ИмяФайла = Строка(КаталогВременныхФайлов())+СокрЛП(Строка(ФайлDoc1Название));
ФайлDoc1.Получить().Записать(ИмяФайла);
ЗапуститьПриложение(ИмяФайла);


Добавление, запись файла в Реквизит с типом ХранилищеЗначения

Код 1C v 8.х
 МойФайл = Новый ДвоичныеДанные(ПутьКФайлу);
ХранилищеФайла = Новый ХранилищеЗначения(МойФайл);
Новстр.ФайлDoc1=ХранилищеФайла;
Новстр.ФайлDoc1Название = ПутьКФайлу;


Отслеживать изменения, по атрибутам файла
ZyMik
31.10.2009 15:12Ответ № 3
Вопрос не в том, как работать с хранилищем значения, а как узнать, что в Word изменили данный файл (типа подписки на событие) чтобы оперативно загрузить изменения обратно в хранилище.
Сейчас получается - открыл файл из 1С. Отредактировал. Записал куда-то. Открыл хранилище в 1С и вставил его поверх старого. все ручками. Нужно проще.
ALXCHER
06.11.2009 10:39Ответ № 4
Код 1C v 8.х
 
Процедура КнопкаDOCНажатие(Элемент)

ИмяФайла = ПолучитьИмяВременногоФайла("doc");
Doc = ХранилищеФайла.Получить();

Если Doc <> Неопределено Тогда

Doc.Записать(ИмяФайла)
Word = Новый COMОбъект("Word.Application");
Word.Documents.Open(ИмяФайла);
Word.Visible = Истина;

ДобавитьОбработчик Word.DocumentBeforeClose, ПередЗакрытиемДокументаWord;
ДобавитьОбработчик Word.Quit, ВыходИзWord;

КонецЕсли;

КонецПроцедуры


//Процедуры назначаемые обработчиками
Процедура ПередЗакрытиемДокументаWord(Документ, Отмена)

Документ.Save();

КонецПроцедуры

Процедура ВыходИзWord()

ШаблонДоговора = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла));

КонецПроцедуры

Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.