Опубликован: 21.09.2010 | Уровень: для всех | Доступ: платный
Лекция 3:

Справочники, перечисления, основы встроенного языка

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

3.2. Hello World!

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

Сейчас мы рассмотрим приемы работы с константами из встроенного языка. Напишем нашу первую программу, классическую "Hello World!" в стиле 1С:Предприятие 8. Написание такой простой программы, однако, позволяет рассмотреть базовые операции по работе с новым языком программирования и подготовиться к более серьезным делам. Прежде чем начинать писать нашу первую программу, рассмотрим виды модулей, которые существуют в системе.

3.3. Виды модулей

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

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

Модули набора записей. Они используются в регистрах.

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

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

модуль сеанса можно открыть, вызвав контекстное меню конфигурации ( рис. 3.18).

Контекстное меню конфигурации

Рис. 3.18. Контекстное меню конфигурации

Модуль сеанса. Используется для установки параметров сеанса.

Модуль внешнего соединения. Используется для работы в режиме внешнего соединения.

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

Программный код в модулях оформлен в виде процедур и функций.

3.4. Процедуры и функции

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

Для объявления процедуры используется ключевое слово Процедура. Шаблон процедуры выглядит так:

Процедура ИмяПроцедуры(ИмяПараметра1, ИмяПараметра2, …)
//Тело процедуры, команды на встроенном языке
КонецПроцедуры

Для объявления функции используется ключевое слово Функция. Шаблон функции выглядит так:

Функция ИмяФункции(ИмяПараметра1, ИмяПараметра 2, …)
//Тело функции, команды на встроенном языке
Возврат(ВозвращаемоеЗначение);
КонецФункции

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

3.5. Вывод приветствия при загрузке системы

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

Модуль приложения

увеличить изображение
Рис. 3.19. Модуль приложения

В настоящий момент модуль пуст. Мы можем добавить в него процедуры-обработчики событий, предусмотренные для данного модуля. Для добавления таких процедур нужно либо воспользоваться командой Текст > Процедуры и функции, либо - нажать на кнопку Процедуры и функции на панели инструментов. Окно процедур и функций ( рис. 3.20) содержит список предопределенных процедур-обработчиков событий.

Выбор имени процедуры

Рис. 3.20. Выбор имени процедуры

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

Нас устраивает эта процедура, поэтому мы установим выделение на строке ПриНачалеРаботыСистемы и нажмем на кнопку Перейти. В поле модуля появится определение процедуры ( рис. 3.21).

Процедура добавлена в тело модуля

Рис. 3.21. Процедура добавлена в тело модуля

Тело процедуры содержит текст:

// Вставить содержимое обработчика

Этот текст представляет собой комментарий. Комбинация символов "//" означает комментарий.

Теперь нам нужно вставить в тело модуля программный код, который выведет сообщение при начале работы пользователя с системой. Первый вопрос, который нам нужно решить, заключается в том, чтобы определить, куда именно должно выводиться сообщение. Одно из решений этого вопроса заключается в использовании окна служебных сообщений. Для того, чтобы вывести в него какой-нибудь текст, используют команду Сообщить. Например, такая команда Сообщить ("Привет!"); выведет в окно служебных сообщений текст "Привет!".

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

Константы.ИмяКонстанты.Получить();

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

Константы.ТекстСообщения.Получить();

Данный код берет выводимое значение из базы данных.

Вот как выглядит полный текст модуля, который выводит приветствие при начале работы системы:

Процедура ПриНачалеРаботыСистемы()
	Сообщить(Константы.ТекстСообщения.Получить());
КонецПроцедуры

Тот же текст вы можете видеть на рис. 3.22.

Код модуля, выводящий приветствие при начале работы системы

Рис. 3.22. Код модуля, выводящий приветствие при начале работы системы

Обратите внимание на то, что около заголовка процедуры можно видеть знак "-" - он указывает на то, что процедура в настоящий момент развернута и мы можем ее свернуть (сгруппировать) при желании. Свернутую процедуру вы можете видеть на рис. 3.23.

Свернутый код модуля

Рис. 3.23. Свернутый код модуля

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

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

Сообщение, взятое из константы

увеличить изображение
Рис. 3.24. Сообщение, взятое из константы

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

3.6. Выводы

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

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Ринат Гатауллин
Ринат Гатауллин

Здравствуйте. Интересует возможность получения диплома( https://intuit.ru/sites/default/files/diploma/examples/P/955/Nekommerch-2-1-PRF-example.jpg ). Курс пройден. Сертификат не подходит. В сертификате ошибка, указано по датам время прохождения около 14 дней, хотя написано 576 часов.

Вячеслав Кузнецов
Вячеслав Кузнецов

Здравствуйте.

Как оплатить курс?

Кирилл Трещев
Кирилл Трещев
Россия
Вячеслав Клюев
Вячеслав Клюев
Россия, Волчиха