Адрес этой странички : http://doc-prg.narod.ru/art_00017/art_00017.htm 
Дата обновления : 14.07.2008
 

(c) Sergey Popov, Usinsk, Komi, 2007

© 14.07.2008 Сергей Попов

Здесь следует отметить, что приведенная ниже статья носит чисто иллюстративный характер и не претендует на бОльшее.
Для серьезной и углубленной проработки специальных вопросов информационного обмена крайне рекомендуется использовать фирменное техническое описание системы 1Cv8.

1Cv8 + Delphi-5.
OLE (COM).
Как закрыть программу 1Cv8, 
открытую в режиме "OLE Automation Client/Server"

Статью в виде файла (215 кб) можно скачать здесь: art_00017.zip

Ранее были затронуты вопросы подключения к программе 1Cv8 из внешних приложений.

Как известно, окно программы 1Cv8 (запущенной в в режиме "OLE Automation Client/Server") остается открытым даже в том случае, если вызывающее  (внешнее) приложение уже закрыто (т.е. переменная типа variant, которая используется для ссылки на 1Cv8, перестает существовать).

Чтобы программно  закрыть приложение 1Cv8 (запущенное в в режиме "OLE Automation Client/Server"),
можно использовать метод 1Cv8:  ЗавершитьРаботуСистемы().


Глобальный контекст
ЗавершитьРаботуСистемы (Exit)
Синтаксис:
    ЗавершитьРаботуСистемы(<Запрашивать возможность>) 

Параметры:
    <Запрашивать возможность> (необязательный)

Тип: Булево. 
Если Ложь, то завершение работы программы будет выполнено безусловно (не зависимо от наличия редактируемых данных).
Если значение параметра Истина, то будут вызываться обработчики закрытия для каждой открытой формы и для всего приложения. 
Для редакторов текстов, табличных документов и HTML-документов будет произведен анализ модифицированности. 
Если нет факторов, препятствующих закрытию (например, данные модифицированы и не сохранены), то выполняется завершение работы. 
В противном случае (такие данные есть) будет выдан вопрос о необходимости сохранения документов.
Значение по умолчанию: Истина 

Описание:
Позволяет принудительно вызвать завершение работы 1С:Предприятия. 
В зависимости от переданного параметра будут вызываться обработчики закрытия и завершения работы системы или завершает работу безусловно.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. 

Примечание:
Если вызов осуществляется из модуля формы, открытой в модальном режиме, завершение работы системы не выполняется. 

Пример:
    // безусловное завершение работы программы
    ЗавершитьРаботуСистемы();



Явно к этому методу обратиться, используя механизм OLE Automation, нельзя.
Поэтому, попробуем решить эту проблему обходным путем ...

Откроем Конфигуратор 1С:Предприятие и доработаем нашу конфигурацию homelib_09.zip , добавив в общий модуль  (spLib_OLE) конфигурации следующую функцию :

 

Ниже представлен соответствующий исходный текст, иллюстрирующий вызов функции Execute_OLE, из внешнего приложения
в синтаксисе Pascal  :


Здесь следует отметить, что с целью оперативности этот пример реализован не в среде Delphi, а в среде программируемого калькулятора spCalc.exe (http://spcalc.narod.ru).  


Результат представлен ниже.

 

 

Учебную конфигурацию можно скачать здесь (42 кб).

 

© 14.07.2008 Сергей Попов

 


Hosted by uCoz
-->