Какими способами можно завершить работу с прикладными программами

Эта статья для программистов 1С – в ней разберем новое ограничение платформы при разработке кода.

О чем пойдет речь?

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

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

Начиная с версии 8.3.8 разработчики платформы изменили подход, которому должны следовать программисты при решении подобного рода задач.

Коротко о главном…

Сначала коротко обозначим суть изменений. Начиная с версии платформы 8.3.8 необходимо выделять 2 сценария закрытия формы:

  • Первый вариант – когда пользователь закрывает форму самостоятельно
  • Второй вариант – когда форма закрывается в результате закрытия всего приложения.

Как это повлияло на объем кода?

Завершение работы приложений | несколько способов

  • Немного увеличился код при закрытии формы, так как необходимо отрабатывать 2 сценария
  • Практически до минимума упростился код при закрытии приложения (речь идет о подтверждении выхода из системы).

Кроме этого, изменения платформы серьезно затронули логику программного кода. Теперь в процессе закрытия приложения практически невозможно организовать произвольный сценарий из-за введенных ограничений. В чем суть ограничений?

  • В процессе закрытия приложения запрещено открытие любых форм и диалогов
  • В процессе закрытия приложения запрещены любые серверные вызовы
  • Нельзя программным способом отменить закрытие приложения без отображения вопроса пользователю.

Фактически теперь в процессе закрытия приложения можно указать только текст вопроса, который увидит пользователь.
Скорее всего, у вас уже возник вопрос: к чему же все эти изменения?

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

Реализован единый подход к закрытию форм и основного окна приложения, который одинаково работает во всех клиентских приложениях, обеспечивая приемлемые возможности по взаимодействию с пользователями. Реализованное поведение стало соответствовать методике и техническим требованиям современных веб-браузеров.

Теперь подробнее разъясним суть проблемы.

Раньше при выходе из системы, когда возникала задача открытия диалогов, приходилось писать программный код отдельно для веб-клиента и отдельно для других клиентов. Связано это с тем, что все современные веб-браузеры, если страница не хочет, чтобы ее закрывали, выводят свой диалог. Примеры этих диалогов вы сможете увидеть ниже, в той части статьи, где подробно рассматривается поведение веб-браузеров.

Что же сделали разработчики платформы? Теперь платформа ведет себя так же, как и веб-браузеры: если приложение не хочет, чтобы его закрывали, тогда выводится платформенный диалог. В результате нет необходимости писать код под разные клиенты, так как работает он одинаково, но платой за такую универсальность являются описанные выше ограничения.

9. Запуск программ и завершение их работы

При этом даже если мы не предполагаем использование веб-клиента в нашей базе, то это ничего не меняет. Ограничения все равно действуют. В некоторых случаях это может быть неудобным, но с этим придется мириться. В частности, теперь открытие дополнительных обработок при закрытии приложения может вызвать затруднение. Решение подобной задачи мы рассмотрим в конце статьи.

На этом завершаем краткий обзор изменений и переходим к подробному разбору.

Вопрос при закрытии формы

Изменения в коде будем рассматривать в сравнении с тем, как это делалось в предыдущих версиях платформы.

Ранее, когда в процессе закрытия формы возникала необходимость задать вопрос пользователю, использовался следующий программный код:

ПередЗакрытиемЗавершение», ЭтотОбъект), «Текст вопроса», РежимДиалогаВопрос.ДаНет); Отказ = Истина; КонецЕсли; КонецПроцедуры Закрыть(); КонецЕсли; КонецПроцедуры

Если данный код попытаться выполнить на платформе 8.3.8 с отключенным режимом совместимости, тогда возникнет ошибка:

Теперь, начиная с версии платформы 8.3.8, необходимо выделять 2 сценария закрытия формы. Первый вариант – когда пользователь закрывает форму самостоятельно и второй вариант – когда форма закрывается в результате закрытия всего приложения.

Таким образом, код требует модернизации:

Текст»; Отказ = Истина; ИначеЕсли ЗакрытиеРазрешено=Неопределено Тогда ПоказатьВопрос( Новый ОписаниеОповещения(«ПередЗакрытиемЗавершение», ЭтотОбъект), «Текст вопроса», РежимДиалогаВопрос.ДаНет); Отказ = Истина; КонецЕсли; КонецПроцедуры Закрыть(); КонецЕсли; КонецПроцедуры

Как вы можете заметить, у обработчика ПередЗакрытием появились 2 новых параметра:

  • Параметр ЗавершениеРаботы является булевым и позволяет определить причину закрытия формы
  • Параметр ТекстПредупреждения используется только в процессе закрытия всего приложения. В этот параметр можно поместить текст вопроса, который будет отображен пользователю.

Теперь подробнее об изменении в коде. Как вы видите, появилась новая ветка алгоритма, которая выполняется в процессе завершения работы системы.

Обращаем ваше внимание, что никаких диалогов в этом случае не открывается, так как они запрещены. В коде устанавливается только текст предупреждения и обязательно устанавливается флаг Отказ. Как уже отмечалось выше, нельзя программным способом отменить процесс закрытия приложения, поэтому флаг Отказ работает иначе, чем при обычном закрытии формы. Установка флага указывает необходимость отображения предупреждения для пользователя, которое хранится в параметре ТекстПредупреждения.

Читайте также:
Какие школьные программы утверждены

В толстом и тонком клиенте окно предупреждения будет следующим:

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

Также следует отметить, что количество подобных диалогов может быть любым – по числу закрываемых форм. Кроме того, аналогичный диалог может формироваться в обработчике ПередЗавершениемРаботыСистемы модуля управляемого приложения (этот вариант будет рассмотрен ниже). В итоге, если пользователь хотя бы в одном диалоге нажмет кнопку Продолжить работу, процесс завершения работы будет отменен и на экране останется та форма, в которой была нажата кнопка.

В веб-клиенте диалог будет выглядеть иначе. В веб-браузерах Mozilla Firefox и Google Chrome будет отображен только текст, заданный разработчиками веб-браузера и не будет отображаться текст, установленный в обработчиках событий системы.

Пример диалога для Mozilla Firefox:

Пример диалога для Google Chrome:

В веб-браузере Internet Explorer диалог будет выглядеть иначе. Будет отображен единый диалог, содержащий все сообщения, установленные в обработчиках формы и модуле управляемого приложения:

Стоит отметить, что если в свойствах конфигурации включен режим совместимости с 8.3.7 и более ранними версиями, то данный механизм будет работать в старом варианте.

Таким образом, при отключении режима совместимости следует проанализировать и скорректировать программный код по закрытию форм, так как если код содержит обращения к серверу или код по открытию дополнительных форм, то это будет приводить к ошибкам в процессе завершения работы системы.

Также можно сформулировать небольшую рекомендацию. Если в коде обработчика формы ПередЗакрытием, исполняемом в процессе завершения работы системы, необходимо получать дополнительные данные с сервера, то их следует получить заранее и хранить в данных формы.

Вопрос при закрытии приложения

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

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) ТекстПредупреждения = «Завершить работу с программой?»; Отказ = Истина; КонецПроцедуры

Теперь для отображения вопроса при выходе из системы достаточно установить текст предупреждения и флаг Отказ равным Истина.

Опять же, в коде запрещены обращения к серверу и открытия дополнительных форм, а также поведение в веб-браузере будет аналогичным тому, что уже было описано выше.

Открытие формы обработки при закрытии приложения

В завершении статьи хотелось бы продемонстрировать прием, который позволяет открыть форму некоторой обработки в процессе завершения работы системы.

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

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

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) #Если ВебКлиент Тогда ТекстПредупреждения = «Завершить работу с программой?»; #Иначе ТекстПредупреждения = «Для запуска обработки проведения документов нажмите «»Продолжить работу»»»; ПодключитьОбработчикОжидания(«ОткрытиеОбработки», 0.1, Истина); #КонецЕсли Отказ = Истина; КонецПроцедуры Процедура ОткрытиеОбработки() Экспорт ОткрытьФорму(«Обработка.ПроведениеДокументов.Форма»); КонецПроцедуры

Используя инструкции препроцессора, мы разделили сценарии закрытия в веб-клиенте и в других видах клиентов. В случае веб-клиента мы не открываем обработку, так как практически во всех веб-браузерах текст нашего предупреждения не отображается. В других видах клиентов будет отображен наш диалог:

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

Заключение

Платформа продолжает свое уверенное движение в сторону веб-браузеров, но на этот раз разработчики наложили ограничения на программный код, исполняемый в толстом и тонком клиентах. С одной стороны, это упростило и унифицировало код при закрытии форм, так как теперь нет необходимости писать несколько вариантов кода под каждый клиент, с другой стороны, это ограничило нас в возможностях.

Чтобы освоить разработку интерфейсов и форм в 1С:Предприятие 8.3
на профессиональном уровне, рекомендуем записаться на курс:

Поддержка – 3 месяца. Объем курса – 49 учебных часов.

Источник: xn—-1-bedvffifm4g.xn--p1ai

Завершение работы с приложениями и с программой Windows

Закрыть сеанс работы с документом можно командами меню Файл, выполнив последовательно процедуры сохранения, закрытия документа и выхода из программы.

Закончить сеанс работы с Windows следует нажатием кнопки Пуск на Панели задач и последующим выбором пункта главного меню Завершение работы. В появившемся диалоговом меню Завершение работы с Windows остается выбрать режим завершения или подходящий режим перезагрузки компьютера.

Прикладное программное обеспечение

ППО включает в свой состав проблемные прикладные программы пользователя и пакеты прикладных программ, ориентированные на применение в определенной проблемной области.

Большинство пакетов прикладных программ (ППП) представляют собой некоторую интерактивную среду, погружаясь в которую пользователь получает удобные и простые средства выполнения определенных процедур преобразования информации.

Читайте также:
Программа для настройки игрового руля dialog

Отметим, что существует огромное количество ППП, разработанных для ПК.

Среди множества ППП следует назвать:

  • текстовые редакторы, текстовые процессоры и издательские системы;
  • графические редакторы и средства деловой графики;
  • крупноформатные электронные таблицы (табличные процессоры);
  • ППП управления телекоммуникационными системами;
  • системы управления базами данных;
  • информационно-поисковые системы;
  • системы искусственного интеллекта, в том числе экспертные системы;
  • автоматизированные обучающие системы;
  • ППП статистической обработки информации;
  • ППП математического программирования (линейного, целочисленного и т. д.);
  • системы автоматизированного проектирования;
  • ППП организационного управления предприятием, фирмой;
  • ППП решения различных функциональных задач управления предприятием, фирмой,
  • интегрированные ППП, включающие в свой состав несколько видов проблемно-ориентированных пакетов.

Продолжая общепринятую классификацию языков программирования (напомним: языки программирования подразделяются на машинно-, процедурно- и проблемно-ориентированные, причем последние смыкаются с пакетами прикладных программ и плавно в них переходят), можно предложить разделение пакетов прикладных программ на две группы:

  • проблемно-ориентированные;
  • функционально-ориентированные.

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

Функционально-ориентированные ППП обеспечивают реализацию тех или иных конкретных функций управления предприятием.

Названные информационные процедуры характерны скорее для офиса предприятия, в то время как функциональные задачи важны для деятельности самого предприятия, фирмы, корпорации.

Поэтому назовем проблемно-ориентированные ППП офисными, а функционально-ориентированные — корпоративными.

Источник: studfile.net

Выход из прикладных программ

Достаточно часто возникает необходимость работы в программе сразу с несколькими документами. Это необходимо например для того, чтобы можно было быстро копировать или переносить часть одного документа в другой. Для выбора документа есть меню «ОКНО» в нижней части которого приведён список всех открытых на данный момент документов и щелчком мыши по имени документа его можно сделать текущим.

Корректное завершения работы с прикладной программой можно осуществить двумя способами: нажатием на клавиатуре сочетания клавиш «Alt + F4» или, аналогичное по действию, щёлкнуть мышью по значку «Х» в правом верхнем углу окна программы; выполнить команду «Выход» (Exit) находящуюся в нижней части меню ФАЙЛ (Files). После выполнения одного из этих действий как правило следует запрос на сохранение результатов работы и после успешного завершения процесса записи данных на диск осуществляется выход из программы.

Резидентные программы постоянно находящиеся в оперативной памяти. В DOS для программ имеется возможность не освобождать по окончанию своей работы занимаемую ими оперативную память.

ОПЕРАЦИОННАЯ СИСТЕМА Ms DOS.

OS — комплекс специальных программ, управляющих работой ПК, его ресурсами и поддерживающий диалог компьютера с пользователем, четыре основных составляющих:

BIOS (Basik Input/Output System) — базовая система ввода-вывода (в ПЗУ), набор команд, поставляемых вместе с ПК, хранящийся в ПЗУ, обеспечивает выполнение основных функций:

  • проверку комплектности и исправности аппаратных средств, содержит тест функционирования компьютера;
  • содержит программу вызова загрузчика OS — это короткая программа, функции которой является считывание в память еще двух модулей операционной системы, завершающие процесс загрузки с внешнего носителя файлов, содержащих компоненты DOS.

IO.SYS (Input/Output) — дисковый файл (дополнение к BIOS) — програгммы, обеспечивающие обмен информацией с внешними устройствами (операции ввода-вывода) загружаются в память загрузчиком и остаются там постоянно.

MS DOS.SYS — дисковый файл, управляющий работой НГМД позволяющие создавать файлы, также следит за использованием ОЗУ компьютера прикладными программами.

COMMAND.COM — командный процессор DOS, содержащий все «внутренние» (резидентные) команды, которые доступны в течение времени пока файл COMMAND.COM находится в памяти машины, для «внешних» команд ищет на дисках программу с именем.

Кроме этого OS содержит программы, составляющие «внешние» команды, называемые обслуживающими программами или утилитами, поставляются ввиде отдельных файлов. Они находятся в памяти машины только в течение времени необходимого для их выполнения, поэтому к моменту запуска соответствующей команды нужно, чтобы диск, который ее содержит находился на считывающем устройстве иначе будет выдано сообщение об ошибке: «Bad command or file name»

Драйверы устройств — программы, которые дополняют систему ввода-вывода DOS и обеспечивают обслуживание новых или нестандартных устройств; загружаются в память при загрузке ОС, их имена указываются в специальном файле CONFIG.SYS — позволяет добавлять новые устройства, не затрагивая системные файлы DOS (configuration — конфигурация, форма, состав оборудования).

Загрузка DOS. После загрузки в ОЗУ COMMAND. COM берет управление на себя: начинает поиск файла AUTOEXEC.BAT и выполнение содержащихся в нем заданий, можно прочитать и изменить с помощью редактора текста файл AUTOEXEC.BAT. Если этого файла нет, то файл COMMAND.COM запросит о дате и времени, затем выдаст сообщение: C:>_

означает, что DOS ждет ввода команды, где

C: — логическое имя устройства, с которого произведена загрузка OC.

РАБОТА НА ПЕРСОНАЛЬНОМ КОМПЬЮТЕРЕ.

Читайте также:
Что такое расчетная программа

Логические имена устройств:

LPT1 — LPT3 — уст-ва, присоединяемые к параллельным портам;

СOM1 — COM3 — уст-ва, присоединяемые к асинхронным последовательным портам;

AUX — дополнительное устройство

NUL — «пустое», все операции ввода-вывода для этого устройства игнорируются;

СON — при вводе-клавиатура, при выводе-экран

Файл, путь к файлу.

Файл — поименованная область на диске, бывают текстовые, двоичные. Имена файлов: само имя до 8 символов,. — разделитель, затем расширение (смысловой характер) до 3 символов:

Каталог — специальное место на диске, где хранятся имена файлов, сведения о размере и т.д.

Путь — последовательность из имен каталогов или символов «..», разделенных «» (слэш).

Полное имя файла: [d:][путь]иф

Условное обозначение имени файла — маска, где * — любое количество любых символов,? — любой один символ, но их нельзя употреблять в той части, где дисковод и каталоги, знаки * ¦? /: < >+ и имена устройств нельзя применять в имени файла!

ОСНОВНЫЕ ВНУТРЕННИЕ КОМАНДЫ DOS.

1. Смена текущего дисковода. Формат команды: F:

— переход на дисковод F, после набора команды — нажать ENTER.

2. Изменение текущего каталога. Команда CD (Change Direktory)

Формат команды: CD [d:] путь

Если задан дисковод, то текущий каталог изменяется на этом дисководе, иначе — на текущем дисководе.

3. Просмотр каталога. Команда DIR (Direktory)

Формат команды: DIR [d:][путь][иф][/P][/W]

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

— размер файла в байтах

— дату и время создания или последнего обновления файла.

Подкаталоги отмечаются < SUBDIR >. В конце выдачи сообщается о размере свободного пространства на иске. Ключ /P задает поэкранный вывод оглавления, ключ /W выдает инфо только об именах файлов в каталоге, краткая инфо.

4. Создание каталога. Команда MD (Make Directory)

Формат команды: MD [d:]путь

5. Уничтожение каталога. Команда RD (Remove Directory)

Формат команды: RD [d:]путь

6. Удаление файлов. Команда Del (Delete)

Формат команды: DEL [d:][путь]иф

Может быть указано групповое имя файла. Если удаляем все файлы из каталога командой DEL *.*, то выдается запрос на экране на подтверждение удалению.

Are you sure (Y/N)?

7. Вывод содержимого файла на экран. Команда TYPE

Формат команд: TYPE [d:][путь]иф

Вывод на экран можно приостановить нажатием Ctrl+S, повторное нажатие возобновляет вывод на экран. Закончить вывод на экран можно, нажав Ctrl + C или Ctrl + Break.

8. Копирование файлов. Команда COPY

Формат команды: COPY [d:][путь]иф [d:][путь][иф]

Из каталога, указанного в первом параметре команды, копируются файлы.

C:MPCG>Copy con иф — создание файла

При вводе с клавиатуры конец файла задается Ctr+Z или F6.

C:MPCG>Copy иф con — вывод содержимого файла на монитор

C:MPCG>Copy иф prn — вывод содержимого файла на принтер

C:MPCG>Copy иф1 иф2 — копирование в текущей директории

C:MPCG>Copy иф1+иф2 иф3 — соединение содержимых файлов

9. Переименование файлов. Команда REN.

Формат команды: REN [d:][путь]иф1 иф2

Из каталога, указанного в первом параметре команды, переименовываются файлы.

10. Команды общесистемного назначения.

Ø DATE — дата Формат команды: DATE

Ø TIME — время Формат команды: TIME

Ø VER — версия MS DOS Формат команды: VER

Ø CLS — очистка экрана Формат команды: CLS

Ø PROMPT — изменение приглашения, строки ввода, командная строка

Формат команды: PROMPT [текст]

$d — дата $g — знак > $p — путь $t — время

$_ — переход на новую строку $h — удаление предыдущего символа

Работа с дисками, форматирование.

Команда Формат команды Действие
Format Format d: Форматирование на полную емкость дисковода
Format d:/S Получение системной дискеты
Format d: /T:80 /N:9 [режим] Форматирование диска нестандартное T — число дорожек, N — число секторов

“Внутренние” команды COMMAND.COM (командный процессор) ОС.

«Внутренние» ком- ды Назначение «Внутренние» ком-ды Назначение
break [on/off] вкл/выкл прерывание программ по Ctrl+Break md создать каталог
call вызов для выполнения другого BAT файла path файл ищется в каталогах, перечисленных в PAHT
chcp изменить текущую кодовую страницу pause [remark] — печатает ремарку и ожидает пока не будет нажата клавиша
cd изменить каталог prompt изменение командной строки
cls очистка rem печатается ремарка
copy копия ren переименование
ctty device изменить устройство ввода команд rd удаление каталога
date [mm-dd-yy] type вывод на экран
del (erase) (/p подтверждение) set установка/прсмотр значений переменных string равной другой переменной
dir (/p, /w, /s) shift позволяет использовать более 10 внешних парамеров
echo [on/off] сообщение time время
exit возврат к предыдущему командному процессору, если он существует ver версия
for выполнение одной команды с несколькими функциями verify проверка правильности записи данных на диск
goto передает управление на строку команд vol [d:] печать метки диска
if проверяет условие, если истинно, то выполняет команду

Источник: studopedia.su

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru