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

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

ZyMik
18.10.2009 21:43Прочитано: 31631
Как открыть *.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()
	
	ШаблонДоговора = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла));
	
КонецПроцедуры

   
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!