Отличие модуля от программы

В программных модулях содержится исполняемый код на языке 1С, который необходим для того, чтобы определенным образом реагировать на действия системы или пользователя, когда визуальных средств разработки недостаточно. Также в программных модулях мы можем описывать собственные методы (процедуры и функции).

Обычно программный модуль состоит из трех разделов:

  • область объявления переменных;
  • область описания процедур и функций;
  • основной текст программы.

Пример структуры программного модуля:

Перем Фамилия Экспорт; / /это глобальная переменная
Перем Имя , Отчество ; //это переменная модуля
Перем ФИО ; //это тоже переменная модуля и к ней можно обращаться

//из любой процедуры и функции нашего модуля

Процедура Процедура1 ( )
Перем Итог ; / /Итог это локальная переменная (переменная процедуры)

Итог = Фамилия + » » + Имя + » » + Отчество ;

Возврат( Фамилия + » » + Имя );

Ресивер или CAM модуль? Что же все таки выбрать!

Фамилия = «Иванов» ;
Имя = «Иван»;
Отчество = «Иванович» ;

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

Область описания процедур и функций размещается от первого оператора Процедура или оператора Функция до любого исполняемого оператора вне тела описания процедур или функций.

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

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

Каждый отдельный программный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля выполняются в едином контексте.

Контекст выполнения модулей делится на клиентский и серверный. Кроме того, некоторые программные модули могут быть скомпилированы как на стороне клиента, так и на стороне сервера.

Модуль приложения (управляемого или обычного)

  • может содержать все 3 области
  • выполняется на стороне клиента
  • располагается в корневом разделе конфигурации

В модуле приложения описываются процедуры (обработчики) событий, которые инициализируются при старте и окончании работы системы. Например, при начале работы приложения можно обновить какие-либо данные конфигурации, а при завершении работы — поинтересоваться, стоит ли вообще выходить из программы. Кроме того, в данном модуле перехватываются события от внешнего оборудования, например, торгового или фискального. Стоит отметить, что модуль приложения выполняется только в случае интерактивного запуска приложения, то есть когда запускается окно программы. Этого не происходит, если приложение запускается в режиме com- соединения.

В ЧЕМ РАЗНИЦА МЕЖДУ АНДРОИД ТВ И ЧИСТЫМ АНДРОИДОМ В СМАРТ ТВ БОКСАХ!!! ПРОСТЫМИ СЛОВАМИ


В платформе 1С 8 существует два различных модуля приложения. Это модуль Обычного приложения и модуль Управляемого приложения. Они срабатывают при запуске различных клиентов. Так, модуль Управляемого приложения срабатывает при запуске веб-клиента, тонкого клиента и толстого клиента в режиме управляемого приложения.

А модуль обычного приложения срабатывает при запуске толстого клиента в режиме обычного приложения. Настройка режима запуска приложения задается в свойстве конфигурации «Основной режим запуска».

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

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

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

Читайте также:
Программа внесения изменений в сведения о юридическом лице

Модуль внешнего соединения

  • может содержать все 3 области
  • выполняется на стороне сервера
  • располагается в корневом разделе конфигурации

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

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

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

Модуль сеанса

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

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

В модуле сеанса существует одно единственное событие «УстановкаПараметровСеанса», которое выполняется самым первым, даже раньше события модуля приложения ПередНачаломРаботыСистемы. В нем не доступны раздел объявления переменных и раздел основной программы. А так же нельзя объявлять экспортные методы. Модуль компилируется на стороне сервера.

Общие модули

  • может содержать область описания процедур и функций
  • выполняется на стороне сервера или клиента (зависит от настроек модуля)
  • располагается в ветке дерева объектов конфигурации «Общие» — «Общие модули»

Общие модули предназначены для описания некоторых общих алгоритмов, которые будут вызываться из других модулей конфигурации. Общий модуль не содержит областей объявления переменных и основного текста программы. В нем можно объявлять экспортные методы, доступность которых будет определяться настройками модуля (на какой стороне он выполняется: на стороне сервера или клиента). В связи с тем, что раздел описания переменных не доступен, определять глобальные переменные в общих модулях нельзя. Для этого можно использовать модуль приложения.

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

— хорошим тоном будет не использовать флаг «Глобальный» повсеместно. Это сократит время запуска приложения, а также улучшит читаемость кода (конечно если общий модуль имеет вполне осмысленное название);
— не желательно использовать больше одного флага компиляции. Методов, которые необходимо выполнять в разных контекстах не так много, и если все же такие методы потребуются, то для них можно выделить отдельный общий модуль;
— флаг «Вызов сервера» имеет смысл, только если модуль компилируется «На сервере». Поэтому все остальные флаги компиляции стоит снять во избежание различных проблем;
— если в методах модуля происходит массовая обработка данных, чтение и запись в базу данных, то для увеличения скорости работы лучше отключить контроль прав доступа, выставив флаг «Привилегированный». Этот режим доступен только для общих модулей, компилируемых на сервере.

Модуль формы

  • может содержать все 3 области
  • выполняется на стороне сервера и клиента

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

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

Структура управляемой формы содержит раздел объявления переменных, описания процедур и функций и основной текст программы (выполняется в момент инициализации формы). К стандартным событиям формы можем обратиться через список ожидаемых процедур и функций формы (Ctrl+Alt+P), либо через палитру свойств самой формы.

Читайте также:
Какая программа лучшая для чистки компьютера

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

Модуль объекта

  • может содержать все 3 области
  • выполняется на стороне сервера

20. Что такое модуль, процедура, функция? Как оформляются и вызываются процедуры?

Модуль (программирование) — функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части.

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

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

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

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

Структура процедуры имеет следующий вид:

Procedure (формальные параметры : их тип);

Процедура вызывается по имени:

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

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

Другой вид подпрограммы-функция-оформляется аналогично процедуре. Отличительные особенности функции: она имеет только один результат выполнения (но может иметь несколько входных параметров); результат обозначается именем функции и передаётся в основную программу. Функция оформляется в следующем виде:

Function (формальные параметры: тип): тип значения функции;

Вызывается функция по её имени с указанием фактических параметров.

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

21. Как в VBA оформляются и вызываются функции? Категории встроенных функций.

22. Встроенные типы данных VBA.

23. назначение переменных, их описание, локальные и глобальные переменные, назначение инструкции option Explicit

24. Массивы, их описание, доступ к элементам массива, многомерные массивы, динамические массивы, переопределение их размерности.

25. Пояснить связь математических понятий вектора и матрицы с понятиями одномерного и двумерного массивов в программировании.

26. Константы, их определение и использование. Доступ к данным, хранимым в ячейках Excel и в виде свойств объектов-элементов управления.

27. Собственные типы данных.

28. Основные группы инструкций языка Выжил Бесик . Инструкция присваивания, арифметические операции, конкатенация.

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

Разработка модуля или программы

Проектировщик должен опираться на опыт, на строгое логическое мышление и на педантичную точность.

Никлаус Вирт

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

Добиться этого можно разными путями, но результат всегда должен удовлетворять некоторым критериям, а именно:

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

8.1. проектирование архитектуры

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

Например, если речь идет о функции деления одного числа на другое, требования должны содержать ответ на вопрос: «А что вернет функция, если знаменатель равен нулю?». Однако в требованиях не стоит забывать и об основных задачах функции, которые порой исчезают за многочисленными особыми случаями. Так, например, в требованиях к функции деления необходимо указать, что функция должна выполнять именно деление, по каким правилам оно должно происходить и с какой точностью.

Часто удобно вводить условности, отличающие отдельные требования друг от друга и от пояснений. Хорошей практикой будет использование глагола должен (должна, должны) в каждом требовании, например: «Функция деления должна вернуть нуль в случае, если знаменатель или числитель, или они оба равны нулю». При этом требования могут делиться на разделы, которые описывают различные функции программы и форматы ее взаимодействия с окружением.

Одновременно с требованиями к самому ПО на их основе, как уже говорилось ранее, могут разрабатываться тест-требования, в которых отражается то, что надо будет проверить в ходе тестирования, чтобы убедиться, что ПО соответствует разрабатываемым требованиям. Каждое тест-требование выделяет некий класс эквивалентности (или область), в котором надо проверить поведение программы, и обычно начинается со слов «проверить, что». Например, для функциональности, приведенной в предыдущем абзаце, тест-требования можно сформулировать следующим образом:

  • Проверить, что если числитель равен нулю, а знаменатель не равен нулю, то функция возвращает нуль.
  • Проверить, что если числитель не равен нулю, а знаменатель равен нулю, то функция возвращает нуль.
  • Проверить, что если числитель равен нулю и знаменатель равен нулю, то функция возвращает нуль.
Читайте также:
Как вставить видео в программе proshow producer

Далее по требованиям и тест-требованиям формируют тест-план, а на его основе уже реализуют сами тестовые примеры.

По требованиям разрабатывается архитектура ПО, определяющая все модули, функции, их интерфейсы, а также алгоритмы работы и структуры данных. Можно сказать, что архитектура ПО должна отвечать на вопрос «КАК работает программа?», в то время как требования к ПО отвечают на вопрос «ЧТО должна делать программа?». Лишь после разработки архитектуры можно приступать к кодированию. На этом этапе происходит воплощение архитектуры в виде программного кода на выбранном языке программирования с учетом всех его особенностей и возможностей. При кодировании необходимо учитывать не только свойства языка программирования, но и особенности выбранной архитектуры целевой машины.

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

8.2. Внешнее взаимодействие

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

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

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

Кроме самого обмена данными с пользователем, необходимо всегда учитывать время внешнего «бездействия» программы для пользователя, проявляемое неизменением никаких внешне видимых данных («зависание» программы). Считается, что время спокойного ожидания пользователя равно примерно двум секундам, далее необходимо изменить что-нибудь на экране, что-нибудь переместить, мигнуть, иначе пользователь начнет сомневаться, что программа работает. Для таких целей часто применяют так называемый «прогресс бар» или процентную шкалу, отображающую степень выполнения программы (алгоритма).

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

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

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

Специальные требования следует учитывать, когда программа взаимодействует с формальным пользователем — устройством или другой самостоятельной программой. Здесь меньше вероятность появления ошибки ввода, но есть опасность, что передаваемые в канале обмена данные подвергнутся искажению или программа-партнер нарушит протокол обмена из-за ошибки реализации. В конце концов, она может просто «повиснуть», или связь с ней может прерваться, а мы будем «сидеть» и ждать от нее ответа.

Вопросы и задачи для самостоятельного решения

  • Каковы критерии разделения программы на модули?
  • Как следует формулировать требования, чтобы они отличались от пояснений?
  • Как следует формулировать описание тест-требований?
  • Какой документ отвечает на вопрос: «Что должна делать программа?»
  • Какие виды диалогов с пользователем Вам известны?

Источник: intuit.ru

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