Адрес этой странички :
http://doc-prg.narod.ru/art_00017/art_00017.htm
Дата обновления : 14.07.2008
© 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 Сергей Попов