Ваша первая программа – заголовок приложения
Сейчас в заголовке вашего приложения написано Дневник. Потому что в самом начале вы дали своей конфигурации такой синоним – Дневник (рис. 3.2).
Рис. 3.2. Заголовок приложения
Теперь вы сделаете так, чтобы при запуске прикладного решения в его заголовке появлялись ваши имя и фамилия. Чтобы было понятно, что это именно ваш дневник.
Откройте свое прикладное решение в конфигураторе.
В корне конфигурации вызовите контекстное меню.
Выполните команду Открыть модуль управляемого приложения (рис. 3.3).
Рис. 3.3. Открыть модуль управляемого приложения
Конфигуратор откроет вам пустой модуль управляемого приложения.
В поле выбора процедуры нажмите кнопку выпадающего списка.
Выберите строку <ПриНачалеРаботыСистемы> (рис. 3.4).
Рис. 3.4. Выбор процедуры «ПриНачалеРаботыСистемы»
В модуле появится заготовка процедуры (рис. 3.5).
Рис. 3.5. Заготовка процедуры «ПриНачалеРаботыСистемы»
Вместо текста // Вставить содержимое обработчика напишите следующую команду (листинг 3.1).
Листинг 3.1. Установка заголовка приложения
УстановитьКраткийЗаголовокПриложения("Иванов Петя");
Здесь вместо Иванов Петя можете написать свои фамилию и имя. В результате у вас должна получиться такая программа (рис. 3.6).
Рис. 3.6. Обработчик «ПриНачалеРаботыСистемы»
Теперь запустите свою конфигурацию в режиме отладки и посмотрите на заголовок приложения (рис. 3.7).
Рис. 3.7. Новый заголовок приложения
Он изменился.
А теперь я расскажу о том, что вы сейчас сделали.
События
Любое прикладное решение «1С:Предприятия» имеет совершенно определенный жизненный цикл. Прикладное решение запускается. Открывается основной раздел. После этого прикладное решение ждет действий пользователя.
Пользователь может открыть какую-то форму. Может изменить в ней какие-то данные. Может закрыть форму.
В конце концов пользователь решает, что он сделал все, что хотел. Тогда он закрывает программу. Работа прикладного решения завершается.
Этот жизненный цикл фиксирован. Он определен платформой, и изменить его нельзя. Но в нем есть отдельные моменты, в которые вы можете вмешаться. Вот, например, в один из таких моментов вы только что вмешались и заставили прикладное решение выполнить вашу команду. В результате этого изменился заголовок приложения.
Такие моменты, когда вы можете вмешаться в «жизнь» прикладного решения, называются события. Набор этих событий фиксирован, постоянен. Его определяет платформа. Придумать какое-то свое событие вы не можете. Но вы можете использовать любое событие из тех, которые имеются.
События в прикладном решении очень похожи на события, которые происходят в вашей жизни постоянно, изо дня в день. Например, утром вы просыпаетесь и встаете с кровати.
Первое событие, которое происходит с вами, можно назвать «перед тем, как встать с кровати».
Рис. 3.8. Перед тем, как встать с кровати
Когда в вашей жизни наступает такое событие, какие возможны варианты? Например, вы посмотрите на часы и решите не вставать, а поспать еще. Или вы посмотрите не на часы, а на окружающих и решите: «Раз все спят, я тоже посплю». То есть при наступлении события «перед тем, как встать с кровати» вы анализируете доступную вам информацию и принимаете решение, вставать с кровати или нет.
Следующее событие, которое происходит с вами, можно назвать «при вставании с кровати».
Рис. 3.9. При вставании с кровати
Какие варианты действий есть у вас при наступлении этого события? Например, потянуться и надеть тапочки. Или разбудить брата. Или разбудить детей. То есть при наступлении события «при вставании с кровати» вы выполняете какой-то набор дополнительных действий.
Все то же самое происходит и в прикладном решении. Когда прикладное решение запускается и начинает работать, происходят два события, в которые вы можете вмешаться. Первое называется ПередНачаломРаботыСистемы, а второе называется ПриНачалеРаботыСистемы.
Слова «перед» и «при» встречаются во многих событиях «1С:Предприятия». Слово «перед» обозначает тот момент, когда действие еще не наступило. То есть когда система еще не начала работать. Когда вы еще не начали вставать с кровати.
А слово «при» означает именно тот момент, когда действие уже выполняется. Когда система уже начинает работать. Когда вы точно встаете с кровати.
Когда вы устанавливали заголовок приложения, вы как раз и вмешались в одно из этих событий. В событие ПриНачалеРаботыСистемы. В этом событии вы заставили программу выполнить вашу команду.
«1С:Предприятие» содержит большое количество событий. Вы не будете изучать их все. В этом нет никакой необходимости. По ходу книги вы познакомитесь лишь с некоторыми из них.
Но я научу вас, как самостоятельно узнать, какие события существуют. И где прочитать о том, когда эти события возникают и для чего они нужны.
Модули
Каким образом вы вмешались в событие ПриНачалеРаботыСистемы? Вы открыли какой-то модуль и что-то в нем написали. Модуль – это такое место в конфигурации, куда вы можете написать свои команды. В конфигурации много модулей, они расположены в разных ее частях.
Когда в жизни вашего приложения возникает очередное событие, платформа идет в один из модулей и смотрит, есть ли там команды, которые нужно выполнить. Если есть, то сначала выполняет их, а потом – все то, что она обычно делает в этом случае.
Как платформа узнает, в какой модуль ей нужно идти? Очень просто. Для каждого события заранее известно, в каком модуле нужно искать команды.
Например, когда вы запускаете приложение, возникают два события. Сначала возникает событие ПередНачаломРаботыСистемы. Платформа знает, что команды, которые она должна выполнить при наступлении этого события, находятся в модуле управляемого приложения. Она идет в этот модуль и смотрит, есть ли там команды для события ПередНачаломРаботыСистемы (рис. 3.10).
Рис. 3.10. Модуль управляемого приложения
Для этого события там нет команд. Вы их не добавляли. Значит, платформа просто продолжает делать то, что она обычно делает в этой ситуации. Начинает запускать ваше приложение.
Тут возникает второе событие – ПриНачалеРаботыСистемы. Платформа снова идет в модуль управляемого приложения. Потому что она знает, что команды для этого события (если они есть) написаны именно в этом модуле. И они есть!
Тогда она сначала выполняет вашу команду – устанавливает краткий заголовок приложения. А затем уже делает все то, что она обычно делает в этой ситуации. То есть показывает на экране ваше приложение, показывает начальную страницу и список учебных дней.
После этого она ждет ваших дальнейших действий (рис. 3.11).
Рис. 3.11. Приложение запустилось и ждет ваших действий
Вы, например, решаете посмотреть, какие занятия будут 4 сентября. Дважды щелкаете мышью по этой строке. В этот момент платформа открывает вам форму документа УчебныйДень и показывает ее.
Когда форма открывается, тоже происходит несколько событий. Но эти события связаны уже не со всей конфигурацией, а именно с этой формой. Поэтому команды для этих событий платформа будет искать уже в модуле формы документа УчебныйДень.
Модуль формы есть у каждой формы, которую вы добавили в конфигурацию. Найти его очень просто. Нужно в конфигураторе открыть нужную форму для редактирования, и внизу вы увидите две закладки. Откройте, например, форму документа УчебныйДень (рис. 3.12).
Рис. 3.12. Закладки «Форма» и «Модуль»
Конструктор формы всегда открывается на первой закладке Форма. Но если вы перейдете на вторую закладку, Модуль, то вы увидите модуль этой формы. Сейчас он пустой.
Когда вы решите закончить работу со своим прикладным решением в режиме 1С:Предприятие, также будут вызваны два события, связанные с завершением работы. Команды для этих событий платформа снова будет искать в модуле управляемого приложения.
![]() | Модули в конфигурации расположены в тех местах, которые логически связаны с происходящими событиями. Например, если события относятся ко всему приложению в целом, то модуль расположен в корне конфигурации. Если события относятся к какой-то форме, то модуль расположен рядом с этой формой. Кроме модуля управляемого приложения и модулей форм в конфигурации есть и другие модули. Они расположены в конфигурации точно по такому же принципу. Некоторые из них вы позже рассмотрите. |
![]() | Подробнее Подробнее вы можете прочитать про модули в документации «Руководство разработчика 8.3. Раздел 4.2.1. "Что такое программный модуль"». |
Встроенный язык
Теперь я расскажу о том, что вы написали в модуле. В модуле вы написали небольшую программу на встроенном языке «1С:Предприятия» (рис. 3.13).
Рис. 3.13. Программа в модуле
Встроенный язык – это язык программирования, который придумала фирма «1С». Специально для того, чтобы вы могли на нем описать собственный набор действий, который должно выполнить ваше приложение.
С одной стороны, встроенный язык имеет много общих черт с другими языками, такими как Pascal, Java Script, Basic. С другой стороны, встроенный язык специально разрабатывался так, чтобы его могли использовать не только профессиональные программисты.
Например, все ключевые слова и инструкции языка имеют русское написание. Поэтому вам не нужно знать английский язык, для того чтобы написать собственную программу.
Прежде чем вы перейдете к изучению самого языка, нужно овладеть тремя очень важными понятиями: значение, тип и представление. Без них вам будет сложно разбираться в текстах программ.
![]() | Подробнее Подробнее вы можете прочитать про встроенный язык в документации «Руководство разработчика 8.3. Глава 4. "Встроенный язык"». |
Значение
Что делает программа? Вы можете сказать, что любая программа выполняет какой-то набор действий. Что она содержит последовательность команд, которые выполняются друг за другом. Да, это правильно. Если смотреть на программу, так сказать, издалека.
Но что если взглянуть на нее более внимательно и пристально? В этом случае вы увидите, что любая программа занята исключительно тем, что выполняет какие-то действия со значениями. Причем все эти действия совершенно четко делятся на три большие группы.
Сначала программа получает какие-то значения. Может быть, эти значения были записаны на диске. Тогда она читает их с диска. Может быть, вы сами ввели эти значения с клавиатуры. Например, когда вы добавляли кабинеты и набрали номер кабинета 101. 101 – это значение, которое вы передали программе. Есть много способов, которыми программа может получить значения. Это не важно. Самое главное, что программа их откуда-то получает.
Это очень похоже на то, что вы делаете на берегу реки или моря, когда вам становится скучно. Вы идете собирать ракушки. Или красивые камни (рис. 3.14). Это ваши «значения».
Рис. 3.14. Вы собираете «значения»
Затем вы что-то делаете с камнями или ракушками. Например, строите из них пирамидку (рис. 3.15).
Рис. 3.15. Вы выполняете различные действия со своими «значениями»
Точно так же и программа что-то делает с теми значениями, которые она получила. Например, вы ввели время начала занятий и время окончания занятий. Тогда программа может из одного значения вычесть другое и получить третье значение – продолжительность ваших занятий. Или, например, вы ввели значение 101. Это номер кабинета, в котором будут проходить занятия. А программа может проверить, есть у вас в списке такой кабинет или еще нет.
В конце концов любая программа завершает свою работу тем, что выводит значения. То есть показывает их вам на экране. Или записывает их на диск. Или печатает на принтере. Или передает другому компьютеру. Конкретный способ тоже не важен. Важно лишь то, что значения являются еще и результатом деятельности программы.
А что является результатом вашей деятельности на берегу моря? Правильно, красивый замок из камней, водорослей, ракушек (из ваших «значений»), который вы оставите на память другим отдыхающим (рис. 3.16).
Рис. 3.16. Результат вашей работы
![]() | Основная вещь, которой занимается программа, – это значения. Она их получает, выполняет с ними какие-то действия и показывает. |
Тип
Ваши «значения», которые вы собираете на берегу моря, могут быть самыми разными. Это могут быть необычные ракушки или красивые камни (рис. 3.17). Главное, что они вас чем-то заинтересовали.
Рис. 3.17. Значения могут быть самыми разными
Дальше вы начинаете из них что-то мастерить. Например, подходящие камни можно сложить в пирамиду. Потому что они плоские и могут лежать друг на друге (рис. 3.18).
Рис. 3.18. Башня из камней
А ракушки в такую пирамидку уже не сложишь. Потому что они не будут лежать друг на друге. Зато из ракушек можно сложить горку, которая будет похожа на сказочное морское животное (рис. 3.19).
Рис. 3.19. Пирамида из ракушек
То есть не со всеми «значениями», которые вы собрали на берегу моря, можно делать одно и то же. Но с однотипными предметами можно делать одинаковые действия.
Точно так же и в компьютере. В компьютере может существовать много самых разных значений. Чтобы программа могла что-то делать с этими значениями, она должна знать их тип. С типами вы уже сталкивались, когда добавляли справочники Кабинеты или Учителя. Например, чтобы записывать номера кабинетов, вы выбрали тип Число. А чтобы записывать фамилии преподавателей, вы выбрали тип Строка.
Тогда это было понятно и естественно. Потому что номер кабинета – это набор цифр. А фамилия преподавателя – это последовательность букв. В тот момент вы не задумывались о том, для чего это может понадобиться. А теперь есть удобная возможность с этим разобраться.
Когда вы вводите номер кабинета – это значение. Когда вы вводите фамилию преподавателя – это другое значение. Программа нужна для того, чтобы что-нибудь сделать с этими значениями.
Как вы думаете, что будет, если программа попытается сложить 101 и «Казаков К. Д.»? Или разделить «Герасимова Е. С.» на «Давыдова А. В.»? Ничего хорошего из этого не получится.
Чтобы вышел какой-то толк, программа прежде всего должна знать, какой тип имеют те значения, с которыми ей предстоит работать. Например, если это числа, то их можно складывать, делить, умножать, вычитать. А если это строки, то умножать и делить их нельзя. Их можно только сложить. На языке компьютера это будет означать, что к одной строке нужно дописать другую строку. А если значения имеют разные типы (например, одно значение имеет тип Число, а другое значение имеет тип Строка), то с такими значениями вообще никаких действий произвести нельзя.
Для чего еще программе нужно знать тип значений? Чтобы записать их на диск, например. Потому что числа хранятся одним образом, а строки – другим. А если вы захотите записать на диск картинку, то программа выберет для этого третий способ хранения данных.
![]() | Каждое значение относится к какому-либо типу. Говорят: «Значение имеет тип Строка». Или: «Значение имеет тип Число». |
Если бы вы спросили компьютер, что он видит на картинке 3.18, он бы ответил, что на ней «значения типа "ПлоскийКамень"». А на картинке 3.19 – «значения типа "Ракушка"».
Представление
Пока программа записывает значения на диск или передает их другому компьютеру, она это делает так, как удобно ей, и в такой форме, которая ей удобна. Но когда эти значения нужно показать на экране или напечатать, программа не может делать это так, как ей хочется. Она должна сделать это так, чтобы нам с вами или любому другому пользователю было понятно, что это за значения.
Как раз для этого и нужно представление. Каждый тип имеет собственное представление. То есть способ, которым значения такого типа нужно показывать на экране.
Например, представление типа Число – это последовательность цифр. В этой последовательности может встретиться одна запятая. Она отделяет целую часть числа от дробной части. Например, 346,45 или 58,2. В этой последовательности может встретиться пробел. Он отделяет друг от друга группы разрядов. Это помогает легче читать большие числа. Например, 1 475 или 395 987,41.
А у типа Строка представление другое. Это просто последовательность любых символов. В этой последовательности тоже может встретиться пробел или запятая. Но никакого особенного смысла они не имеют. Например, «Давыдова А. В.» или «математика, мой любимый предмет».
![]() | Таким образом, каждый тип имеет представление. Это правило, по которому обозначаются значения этого типа. Соответственно, и каждое значение тоже имеет свое представление. Это набор символов, которым обозначается это значение на экране или на принтере. |
Теперь, когда вы познакомились с основными понятиями, вы можете прейти к упражнениям.
Где писать примеры и чем пользоваться
Чтобы познакомиться со встроенным языком, вы будете использовать самый простой способ. Примеры вы будете писать в модуле управляемого приложения, после той строчки, которая там уже есть (рис. 3.20).
Рис. 3.20. Модуль управляемого приложения
При этом вы сразу же будете использовать все инструменты, которые используют разработчики.
Во-первых, это синтакс-помощник. В нем описаны все команды, которые есть во встроенном языке. Описаны типы данных, которые вы можете использовать. Также в нем описаны операции, которые можно выполнять со значениями этих типов. То есть это такой большой справочник.
Кроме этого вы сразу же будете использовать основной, наверное, инструмент разработчика – отладчик. Он позволяет найти ошибки в программе. Позволяет остановиться в нужном месте программы. Он даже позволяет выполнить программу по отдельным шагам, чтобы вы могли посмотреть, что получается на каждом шаге.
Кроме этого вы научитесь пользоваться контекстной подсказкой. Она облегчает написание текста программы. Позволяет вам избежать многих ошибок и описок. Она может подсказать вам, какие слова или команды вы можете использовать в том или ином месте программы.
Теперь откройте в конфигураторе модуль управляемого приложения, и приступим.
Простые типы
Почему текст разноцветный
Почему слова, которые написаны в модуле, разного цвета? Почему некоторые из них красные, некоторые синие, а некоторые даже черные?
Все очень просто. Они разного цвета для того, чтобы вы не запутались. Чтобы вам было легче читать то, что написано. И дальше вы увидите, что они могут быть даже зеленые и коричневые!
Когда вы что-то пишете в модуле, вы на самом деле объясняете компьютеру, что он должен сделать. Объясняете на встроенном языке, который понятен и ему, и вам. Этот язык очень похож на наш обычный язык. Только он гораздо проще. И в нем есть только такие предложения, которые выражают приказ, просьбу или совет.
Чтобы было понятно, представьте, что вы позвали друга к себе в гости. Вы объясняете ему, как добраться до вашего дома. Только вы очень спешите, поэтому говорите быстро и коротко:
– Садись в автобус № 395. Выйди на 4-й остановке. Перейди на другую сторону улицы. Заходи в дом № 15. Если автобус проедет мимо магазина «Продукты», значит, ты пропустил нужную остановку. Выйди из автобуса на следующей остановке и вернись на одну остановку назад.
В обычной жизни вы слышите и понимаете эти предложения последовательно, одно за другим. Если переставить предложения местами, получится ерунда. В результате ваш друг вообще не сможет никуда уехать или уедет в другой конец города:
– Перейди на другую сторону улицы. Садись в автобус № 395. Выйди из автобуса на следующей остановке и вернись на одну остановку назад. Заходи в дом № 15. Если автобус проедет мимо магазина «Продукты», значит, ты пропустил нужную остановку. Выйди на 4-й остановке.
Точно так же и в компьютере. Текст, который вы будете писать на встроенном языке, состоит из отдельных предложений. Каждое такое предложение называется инструкция. Порядок этих предложений (инструкций) важен, потому что компьютер «читает» их одно за другим. В той последовательности, в которой они написаны.
В обычной жизни мы отделяем одно предложение от другого точкой и пробелом. Иногда могут использоваться и другие символы, но чаще всего это точка. Во встроенном языке одна инструкция от другой отделяется символом «точка с запятой» – «;». Кроме того, каждую инструкцию принято писать на новой строке. Поэтому записка для вашего друга, написанная на языке компьютера, была бы оформлена таким образом (листинг 3.2).
Листинг 3.2. Записка для вашего друга на языке компьютера
Садись в автобус № 395;
Выйди на 4-й остановке;
Перейди на другую сторону улицы;
Заходи в дом № 15;
Если автобус проедет мимо магазина «Продукты», значит, ты пропустил нужную остановку;
Выйди из автобуса на следующей остановке и вернись на одну остановку назад;
Сейчас в модуле управляемого приложения вы написали одну инструкцию. Если бы вы писали записку своему другу, то это было бы первое предложение: «Садись в автобус № 395». И платформа раскрасила бы его вот так (рис. 3.21).
Рис. 3.21. Первое предложение из записки вашему другу
Синим цветом платформа раскрасила бы то, что вашему другу известно и понятно без вашего объяснения. Ваш друг знает, что существуют автобусы. Он знает, что в автобус можно сесть. Поэтому вы не рассказываете вашему другу, что такое автобусы, для чего они нужны. Не рассказываете, что автобусы умеют ездить. Что они останавливаются только на остановках. Не объясняете, что в автобус можно сесть, можно выйти из него. Ваш друг знает это все и без вас. Вы просто говорите ему «садись в автобус».
Точно так же «УстановитьКраткийЗаголовокПриложения» – это нечто, что платформе известно. Нечто, что она умеет и может делать без дополнительных объяснений. Поэтому она раскрашивает это синим цветом.
![]() | Итак, синим цветом платформа выделяет то, что ей известно. То, что она знает и умеет выполнять. |
А что платформа раскрашивает красным цветом? А красным цветом она раскрашивает те символы и слова, которые являются обязательными. Без которых не получится правильная инструкция, правильное предложение.
Например, красным цветом она раскрашивает символ «точка с запятой», который находится в конце строки. Потому что каждая инструкция обязательно должна заканчиваться этим символом. Так же как в русском языке каждое предложение должно заканчиваться точкой.
Еще красным цветом она раскрасила бы символ «№» в вашем предложении. Потому что, когда вы говорите «садись в автобус», всегда подразумевается, что дальше вы должны сказать, в какой именно автобус садиться. И чтобы было понятно, что сейчас вы назовете номер автобуса, в русском языке вы пишете символ «№». То есть это тоже обязательный символ, который должен быть.
По этой же причине платформа раскрашивает красным цветом скобки в первой строке. Платформа знает, что такое «УстановитьКраткийЗаголовокПриложения». Но также она знает, что после этого обязательно должен быть указан сам заголовок, который нужно установить. Этот заголовок она будет искать внутри скобок, которые обязательно должны быть в такой инструкции.
![]() | Красным цветом платформа выделяет то, что является обязательным. То, что обязательно должно быть в этой инструкции. То, без чего инструкция будет неправильной. |
Теперь осталось разобраться с черным цветом. А с ним все просто. Черным цветом платформа выделяет значение. Значение, которое вы написали прямо в тексте программы. Такие значения, написанные прямо в тексте программы, называются литералами.
Когда вы говорите другу, что ему нужен автобус № 395, вы сообщаете ему конкретное значение – 395.
Когда вы говорите программе, что нужно установить заголовок «Иванов Петя», вы тоже сообщаете ей конкретное значение – «Иванов Петя».
![]() | Черным цветом платформа выделяет значения, записанные прямо в тексте программы. Такие значения называются литералами. |
На этом примере хорошо видно, что не все литералы записываются одинаково. Существуют определенные правила.
Если значение, которое вы хотите написать в тексте программы, имеет тип Число, то вы пишете его так, как вы обычно привыкли. Между цифрами не ставите пробелов, а вот дробную часть отделяете от целой части с помощью точки, а не с помощью запятой. Литералы типа Число могут выглядеть так (листинг 3.3).
Листинг 3.3. Литералы типа «Число»
3.14
29748.0021
А если значение, которое вы хотите написать, имеет тип Строка, то эту строку вы обязательно должны заключить в прямые кавычки. Причем на клавиатуре есть две похожих кнопки. Одинарная кавычка – «’» и двойная кавычка – «"». Вам нужно использовать двойную кавычку. Литералы типа Строка могут выглядеть так (листинг 3.4).
Листинг 3.4. Литералы типа «Строка»
"Иванов Сергей Николаевич"
" сегодня 1 апреля 2016 года"
"если я дочитаю до конца, я стану крутым программистом "
![]() | совет Обратите внимание, что в начале и в конце строкового литерала могут находиться пробелы. Это вполне нормальная ситуация. Чуть позже вы увидите, зачем это может понадобиться. |
Какие бывают инструкции
В русском языке вы можете составлять самые разные предложения. Они могут быть короткие. Например: «Садись в автобус № 395». Они могут быть совсем короткие, например: «Садись!» Они могут быть длинные и очень длинные, например: «Если ты увидел, что подъехал автобус № 395 или № 18, то можешь сесть в него, хотя и на трамвае тоже можно доехать, но в нем обычно бывает много народа». То есть тут все зависит только от вашего желания, словарного запаса и привычек.
Во встроенном языке все гораздо проще. Нельзя писать какие угодно инструкции. Существует всего лишь 5 основных инструкций, которые применяются наиболее часто. Это:
- инструкция присваивания;
- инструкция Если;
- инструкция вызова процедуры;
- инструкция Цикл;
- инструкция Попытка.
Вы изучите первые четыре и, поверьте, этого вам хватит для большинства задач. На самом деле во встроенном языке есть еще несколько инструкций, но используются они крайне редко. Поэтому я даже не буду упоминать их.
Кстати, инструкция, которую вы написали в модуле управляемого приложения (рис. 3.22), – это инструкция вызова процедуры.
Рис. 3.22. Инструкция вызова процедуры
![]() | Подробнее Подробнее вы можете прочитать про инструкции в документации «Руководство разработчика 8.3. Раздел 4.6. "Операторы и синтаксические конструкции"». |
Инструкция присваивания
Самая простая и самая популярная инструкция во встроенном языке – это инструкция присваивания. Выглядит она очень просто (рис. 3.23).
Рис. 3.23. Пример инструкции присваивания
Почему количество занятий равно 6 умножить на 5? Потому что, например, каждый день у вас по 6 занятий и вы занимаетесь 5 дней в неделю.
Отличительным признаком инструкции присваивания является знак равенства «=». Это обязательный символ в этой инструкции. Поэтому платформа выделяет его красным цветом.
![]() | Подробнее Полный список специальных символов вы можете посмотреть в документации «Руководство разработчика 8.3. Раздел 4.2.5. "Специальные символы, используемые в исходном тексте"». |
Знак равенства работает как экскаватор (рис. 3.24).
Рис. 3.24. Знак равенства работает как экскаватор
Он берет то, что справа, и кладет это в то место, которое находится слева от знака равенства. Тут важно обратить внимание на следующее. Сначала экскаватор захватывает своим ковшом все, что ему нужно. И только после этого он переносит все это в другое место.
Во встроенном языке то же самое. Сначала платформа вычисляет все, что находится справа от знака равенства. И только после этого она помещает результат в то место, которое обозначено слева от знака равенства.
Зачем экскаватор переносит землю с одного места на другое? Для этого могут быть две причины.
Во-первых, это нужно для того, чтобы отвезти землю куда-то в другое место. И там ее использовать.
Во-вторых, это нужно тогда, когда ничего никуда везти не надо. А надо просто засыпать яму, которая рядом с экскаватором (рис. 3.25).
Рис. 3.25. Зачем экскаватор переносит землю?
Во встроенном языке то же самое. Есть два случая, когда используется инструкция присваивания.
Во-первых, для того чтобы получить (вычислить) какое-то значение и использовать его в другом месте. В этом случае схематически инструкция выглядит так:
<Имя переменной> = <Выражение>;
Слева находится имя переменной, а справа – некоторое выражение. Это вы сейчас и рассмотрите.
Во-вторых, инструкция присваивания используется тогда, когда значение, которое вы получите или вычислите, нужно вам прямо тут, прямо в этом месте. Тогда схематически инструкция выглядит так:
<Имя свойства> = <Выражение>;
Слева находится имя свойства, а справа – снова какое-то выражение. Этот случай вы тоже рассмотрите, но позже.
Итак, справа от знака равенства находится непонятное для вас пока «выражение». А слева – тоже непонятная пока для вас «переменная». Сначала вы познакомьтесь с переменными.
![]() | Подробнее Подробнее вы можете прочитать про инструкцию присваивания в документации «Руководство разработчика 8.3. Раздел 4.4. "Оператор присваивания"». |
Переменная
Вспомните, как вы собирали красивые камни на берегу моря (рис. 3.26).
Рис. 3.26. Вы собираете «значения»
Тогда вы говорили, что вы собираете «значения» и каждый камень – это одно значение.
Так вот, переменная – это ваша ладонь. Только если в жизни вы можете положить в ладонь несколько камней, в компьютере в переменную можно положить только одно значение, один камень.
Одну переменную от другой компьютер отличает по имени. Имя вы придумываете сами.
Переменных может быть сколько угодно, пока у компьютера не закончится оперативная память.
Переменные существуют не всегда, а только в то время, пока выполняется ваша программа. Поэтому, когда ваша программа перестанет выполняться, все переменные исчезнут.
![]() | Переменная – это специальное место в памяти компьютера. В этом месте можно сохранить одно значение на то время, пока выполняется ваша программа. |
Для того чтобы создать переменную, вам не нужно ничего делать. Нужно только придумать для нее имя и написать это имя слева от знака равенства в инструкции присваивания. Когда компьютер начнет выполнять вашу программу, он сам создаст переменную и поместит в нее значение, которое вы написали справа от знака равенства.
Попробуйте. Напишите, сколько вам лет (листинг 3.5).
Листинг 3.5. Мой возраст
МойВозраст = 25;
В компьютере у вас должно получиться примерно то же самое, что на рис. 3.27.
Рис. 3.27. Переменная «МойВозраст»
![]() | СОВЕТ Сразу возьмите себе за правило ставить пробелы перед знаком «=» и после него. Тогда текст программы будет читаться легко. |
Наверняка вы помните, по каким правилам нужно придумывать имена. Если не помните, то я напомню.
Имя должно начинаться с буквы и не должно содержать пробелов. Если хочется составить имя из нескольких слов, каждое следующее слово принято писать с большой буквы. Буква «ё» в именах не используется, вместо нее надо писать букву «е».
![]() | СОВЕТ Придумывайте такие имена, чтобы они были понятны и вам, и другому человеку. Не стесняйтесь использовать несколько слов для составления имени. Два, три слова – это нормально. Когда имя очень короткое или оно является каким-то сокращением, другому человеку будет трудно понять, что вы имели в виду. Да и вы, если посмотрите на свою программу через несколько месяцев, с трудом вспомните, что вы хотели сказать таким именем. Вот, например, плохие имена: «доб», «стро», «квоТТ». Очень длинное имя – это тоже нехорошо. Например, ДеньгиНалИБезНалМеждуНамиИКонтрагентами. Использовать такую переменную в каких-нибудь формулах будет очень неудобно. В общем, старайтесь быть краткими и в то же время понятными. |
А теперь познакомьтесь с тем, как работает эта инструкция присваивания. Вы не будете никуда ничего выводить, чтобы где-то в программе можно было увидеть значение этой переменной. Вы сразу поступите как настоящие профессиональные программисты. «Возьмете в руки» отладчик и с его помощью заберетесь в самую глубь «1С:Предприятия». Чтобы увидеть, как все происходит на самом деле. Это очень интересно!