Каталог решений - Обработка событий документов MS Office из 1С8.х. и кольцевые ссылки.

Обработка событий документов MS Office из 1С8.х. и кольцевые ссылки.

Обработка событий документов MS Office из 1С8.х. и кольцевые ссылки.

В наличии

Обработка событий документов MS Office из 1С8.х.
Возникновение кольцевых ссылок при работе с документами MS Office из 1С8.х

Категория:

Описание

Описание как открыть документ MS Word можно найти здесь: Как открыть *.DOC файл из 1С для редактирования? 

Код аналогичного открытия файлов MS Excel функции отличается от MS Word.

Событие в MS Excel «Перед закрытием» в 1С обрабатывается так:

Процедура ОткрытьФайлДляРедактрования(ПутьКФайлу )

MSExcel= Новый ComОбъект(«Excel.Application»);
MSExcel.Workbooks.Open(ПутьКФайлу); 
MSExcel.Visible = Истина;                              
ДобавитьОбработчик MSExcel.WorkbookBeforeClose, ПередЗакрытиемДокументаЕксель;

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

 

Процедура ПередЗакрытиемДокументаЕксель(Документ, Отмена)     

//Перед закрытием сохраняем документ excel
Документ.Save();

//Не забываем удалять обработчик
УдалитьОбработчик MSExcel.WorkbookBeforeClose, ПередЗакрытиемДокументаЕксель; 

//Обработчик удален — можно закрыть документ
Документ.Close(); //если документ не будет закрыт, код сохранения файла в базе 1С не сработает

//Теперь можно сохранить файл в базе 1С
Шаблон = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПолныйПутьКФайлу) , Новый СжатиеДанных(9));

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

Чтобы узнать, какие события возникают при работе в программе MS Excel, надо в программе MS Excel открыть редактор Visual Basic (alt+F11), В дереве объектов Microsoft Excel Objects выбрать «ЭтаКнига», в списке объектов выбрать «Workbook» и в списке процедур можно смотреть доступные события.


Например, в 1С для получения события «Перед печатью» в MS Excel, необходимо прописать код:

ДобавитьОбработчик MSExcel.WorkbookBeforePrint, ПередПечатьюДокументаЕксель;

и 

Процедура ПередПечатьюДокументаЕксель (Документ, Отмена) 

// код, обрабатывающий событие печати из документа excel


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

Не забывайте выполнять удаление обработчика событий, оператор: «УдалитьОбработчик»!!!

Если не удалить обработчик событий, возникнут «Кольцевые ссылки» , при закрытии формы обработки, форма останется существовать виртуально. В этом случае для полного закрытия формы поможет закрытие платформы 1С.

has been added to your cart:
Оформление заказа