Здравствуйте. Интересует возможность получения диплома( https://intuit.ru/sites/default/files/diploma/examples/P/955/Nekommerch-2-1-PRF-example.jpg ). Курс пройден. Сертификат не подходит. В сертификате ошибка, указано по датам время прохождения около 14 дней, хотя написано 576 часов. |
Справочники, перечисления, основы встроенного языка
3.2. Hello World!
Лучший способ научиться программировать на новом для вас языке - начинать писать программы на нем. Для того, чтобы получить максимум пользы от разбора тех строк кода, которые мы здесь приводим, постарайтесь не копировать их из документа в редактор кода. Программа при таком подходе будет работать, но вы недополучите очень важный и ценный опыт самостоятельного ввода текстов программ. Поверьте, время, затраченное на самостоятельный набор текстов, оправдает себя.
Сейчас мы рассмотрим приемы работы с константами из встроенного языка. Напишем нашу первую программу, классическую "Hello World!" в стиле 1С:Предприятие 8. Написание такой простой программы, однако, позволяет рассмотреть базовые операции по работе с новым языком программирования и подготовиться к более серьезным делам. Прежде чем начинать писать нашу первую программу, рассмотрим виды модулей, которые существуют в системе.
3.3. Виды модулей
Как вы уже знаете, программный код в разрабатываемой конфигурации хранится в модулях. Причем, в системе существует несколько видов модулей.
Модули форм. К настоящему моменту вы уже должны были обратить внимание на существование модулей форм. В предыдущей лекции мы создали общую форму констант и могли наблюдать ее пустой модуль в редакторе форм. Эти модули используются, в основном, для организации работы с формой. Например, если нам нужно реализовать возможность автоматического заполнения одних полей на основании данных, введенных в другие, то нам нужно работать именно с модулем формы. Модули включают в себя процедуры, функции, объявления переменных. Получить доступ к этим модулям можно в редакторе форм.
Модули набора записей. Они используются в регистрах.
Модули объектов. Эти модули соответствуют отдельным объектам системы и позволяют организовывать работу с объектом. Получить доступ к модулю объекта можно, например, щелкнув правой кнопкой мыши по значку объекта в дереве конфигурации и выбрав в появившемся контекстном меню пункт Открыть модуль объекта.
Общие модули. Эти модули создают в ветви Общие модули дерева конфигурации. Они используются в самых разных целях. В частности для того, чтобы сделать некоторые процедуры общими для различных объектов конфигурации. Например, в нескольких объектах нужно выполнить одинаковую проверку данных, введенных пользователем. Если для этого применяется один и тот же код - вполне логично вынести этот код в общий модуль.
модуль сеанса можно открыть, вызвав контекстное меню конфигурации ( рис. 3.18).
Модуль сеанса. Используется для установки параметров сеанса.
Модуль внешнего соединения. Используется для работы в режиме внешнего соединения.
Модуль приложения. Хранит обработчики событий, которые происходят при начале и при окончании работы системы. Если мы хотим, чтобы некоторые действия выполнились автоматически при начале работы пользователя с информационной базой, нам можно воспользоваться именно этим модулем.
Программный код в модулях оформлен в виде процедур и функций.
3.4. Процедуры и функции
Процедуры и функции используются для логического структурирования программного кода. Процедура отличается от функции тем, что функция, будучи вызванной, возвращает в точку вызова некоторое значение. То есть можно сказать, что функцию вызывают для того, чтобы получить от нее некоторое значение, с которым потом можно работать в коде основной программы. Процедура же ориентирована на выполнение некоторых действий, а не на возврат значений.
Для объявления процедуры используется ключевое слово Процедура. Шаблон процедуры выглядит так:
Процедура ИмяПроцедуры(ИмяПараметра1, ИмяПараметра2, …) //Тело процедуры, команды на встроенном языке КонецПроцедуры
Для объявления функции используется ключевое слово Функция. Шаблон функции выглядит так:
Функция ИмяФункции(ИмяПараметра1, ИмяПараметра 2, …) //Тело функции, команды на встроенном языке Возврат(ВозвращаемоеЗначение); КонецФункции
Обратите внимание на то, что команды в теле процедур и функций разделяются символом ";" - точка с запятой. Имя процедур и функций строится способом, похожим на способ построения имен объектов. Начинаться имя должно с буквы или с символа подчеркивания "_". В состав имени процедуры или функции могут входить буквы, цифры и символы подчеркивания.
3.5. Вывод приветствия при загрузке системы
Как вы помните, в предыдущей лекции мы создавали константу для того, чтобы вывести текст, хранящийся в ней, в качестве приветствия в начале работы пользователя с информационной базой. Код программы, которая будет выполнять это действие, мы будем хранить в модуле приложения. Откроем модуль приложения командой контекстного меню конфигурации Открыть модуль приложения ( рис. 3.19).
В настоящий момент модуль пуст. Мы можем добавить в него процедуры-обработчики событий, предусмотренные для данного модуля. Для добавления таких процедур нужно либо воспользоваться командой Текст > Процедуры и функции, либо - нажать на кнопку Процедуры и функции на панели инструментов. Окно процедур и функций ( рис. 3.20) содержит список предопределенных процедур-обработчиков событий.
Здесь можно увидеть несколько имен процедур. В частности, нас интересует процедура ПриНачалеРаботыСистемы. Она выполняется при начале работы системы, в частности - при отображении главного окна программы. Здесь, в этой процедуре, мы можем программно открывать формы, выводить сообщения, выполнять другие необходимые действия.
Нас устраивает эта процедура, поэтому мы установим выделение на строке ПриНачалеРаботыСистемы и нажмем на кнопку Перейти. В поле модуля появится определение процедуры ( рис. 3.21).
Тело процедуры содержит текст:
// Вставить содержимое обработчика
Этот текст представляет собой комментарий. Комбинация символов "//" означает комментарий.
Теперь нам нужно вставить в тело модуля программный код, который выведет сообщение при начале работы пользователя с системой. Первый вопрос, который нам нужно решить, заключается в том, чтобы определить, куда именно должно выводиться сообщение. Одно из решений этого вопроса заключается в использовании окна служебных сообщений. Для того, чтобы вывести в него какой-нибудь текст, используют команду Сообщить. Например, такая команда Сообщить ("Привет!"); выведет в окно служебных сообщений текст "Привет!".
Теперь нам нужно узнать, как вывести с помощью команды Сообщить содержимое нашей константы. Для того, чтобы выводить содержимое констант мы можем воспользоваться такой конструкцией:
Константы.ИмяКонстанты.Получить();
При выполнении этого кода в точке его вызова окажется содержимое константы. В нашем случае это - строка, содержащая текст приветствия. Напомним, что наша константа называется ТекстСообщения. В итоге, выходим на такой код, выводящий значение нашей константы:
Константы.ТекстСообщения.Получить();
Данный код берет выводимое значение из базы данных.
Вот как выглядит полный текст модуля, который выводит приветствие при начале работы системы:
Процедура ПриНачалеРаботыСистемы() Сообщить(Константы.ТекстСообщения.Получить()); КонецПроцедуры
Тот же текст вы можете видеть на рис. 3.22.
Обратите внимание на то, что около заголовка процедуры можно видеть знак "-" - он указывает на то, что процедура в настоящий момент развернута и мы можем ее свернуть (сгруппировать) при желании. Свернутую процедуру вы можете видеть на рис. 3.23.
Группировка нужна для удобства - если в модуле много процедур и функций и они не сгруппированы, с ними не очень удобно работать. А если они сгруппированы, разворачивать можно лишь те процедуры и функции, с которыми вы в данный момент работаете.
Теперь все готово для того, чтобы опробовать только что написанный код на практике. Обновим базу данных и откроем нашу конфигурацию в режиме 1С:Предприятие. Вот, что у нас получилось ( рис. 3.24).
Теперь если мы захотим изменить текст приветствия, которое видит пользователь, нам будет достаточно изменить значение константы. При следующем запуске нашей конфигурации в режиме 1С:Предприятие текст приветствия будет соответствовать текущему значению, хранящемуся в константе.
3.6. Выводы
В этой лекции мы познакомились со справочниками, перечислениями, начали рассматривать работу со встроенным языком системы. Далее мы продолжим работу над конфигурацией.