Синтаксис и применение Зарезервированные слова в платформе 1С:Предприятие. Описание и примеры кода.
Полное описание, параметры и ограничения
Зарезервированные слова
Приведенные далее ключевые слова являются зарезервированными и не могут использоваться в качестве создаваемых имен переменных, реквизитов объектов конфигурации и объявляемых процедур и функций. В данном варианте языка каждое из ключевых слов имеет два представления — русское и английское.
Русское имя
Английское имя
Если
If
Тогда
Then
ИначеЕсли
ElsIf
Иначе
Else
КонецЕсли
EndIf
Для
For
Каждого
Each
Из
In
По
To
Пока
While
Цикл
Do
КонецЦикла
EndDo
Ждать
Await
Процедура
Procedure
Функция
Function
КонецПроцедуры
EndProcedure
КонецФункции
EndFunction
Перем
Var
Перейти
Goto
Возврат
Return
Продолжить
Continue
Прервать
Break
И
And
Или
Or
Не
Not
Попытка
Try
Исключение
Except
ВызватьИсключение
Raise
КонецПопытки
EndTry
Новый
New
Выполнить
Execute
Практические примеры
Имена: регистр не создаёт вторую переменную
Считаем заказ и намеренно обращаемся к одним идентификаторам разными регистрами. Отдельно показываем, что строковые данные не превращаются автоматически в верхний регистр.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте общий модуль УчебныйЯзык: Сервер=Истина, Глобальный=Ложь, ВызовСервера=Ложь, Привилегированный=Ложь. Клиентские и внешнее соединение отключены; ПовторноеИспользованиеВозвращаемыхЗначений=НеИспользовать.
Вставьте весь приведённый текст в этот общий модуль. ВыполнитьПример — экспортная точка входа; остальные процедуры и функции располагаются рядом, а не внутри неё.
В своей внешней учебной обработке создайте управляемую форму, команду Выполнить и кнопку. Клиентский обработчик Выполнить(Команда) вызывает свою процедуру ВыполнитьНаСервере(); она имеет директиву &НаСервереБезКонтекста и одну строку УчебныйЯзык.ВыполнитьПример();. Это серверный вызов общего модуля, а не разрешение клиенту прямо обращаться к серверной библиотеке.
Все товары, количества и строки придуманы в этом модуле. Запись документов, подключение к чужой базе, файлы, сеть и печать не используются. В рабочие общие модули текст не вставляйте.
HTML только показывает BSL. Код в 1С не запускался; перечисленные результаты и отрицательные опыты проверяйте самостоятельно в собственном стенде.
Процедура ВыполнитьПример() Экспорт
ЦенаЗаКнигу = 250;
цЕНАзаКНИГУ = цЕнАзАкНиГу + 50;
Количество_2 = 3;
_ЛимитЗаказа = 1000;
Сумма_Заказа = Рассчитать_Книги(ЦЕНАЗАКНИГУ, количество_2);
Сообщить(ЦенаЗаКнигу = 300);
Сообщить(Сумма_Заказа = 900);
Сообщить(сумма_заказа <= _лимитзаказа);
Название = "Азбука";
Сообщить(НАЗВАНИЕ);
Сообщить(ВРег(Название) = "АЗБУКА");
Сообщить(Название = "Азбука");
КонецПроцедуры
Функция Рассчитать_Книги(Знач Цена_1, Знач Количество_1)
Возврат цена_1 * КОЛИЧЕСТВО_1;
КонецФункцииРазбор по шагам
Имя начинается с буквы или подчёркивания; цифра допустима дальше. Поэтому Количество_2, _ЛимитЗаказа и Рассчитать_Книги — осмысленные допустимые имена.
Первое присваивание задаёт цену 250. Следующее, хотя написано другим регистром, обращается к той же переменной и повышает цену до 300.
Передать цену и количество в свою функцию; имена параметров тоже распознаются без учёта регистра. Итог 300×3=900 укладывается в лимит 1000.
Название и НАЗВАНИЕ — один идентификатор. Само сохранённое строковое значение всё ещё Азбука.
ВРег возвращает отдельную строку АЗБУКА; без присваивания она не меняет исходное значение. Регистр идентификаторов и регистр данных — разные вопросы.
Если, If, Процедура и другие зарезервированные слова нельзя выбирать именами. Непосредственно доступные свойства текущего контекста тоже не следует перекрывать; список допустимых имён зависит от места модуля.
Как проверить результат
Пять логических проверок Истина и строка Азбука. Цена не 250, а 300; сумма 900.
Поменяйте второе присваивание на НоваяЦена = ЦенаЗаКнигу + 50: это уже другое имя, исходная цена останется 250, сумма заказа 750. Обновите проверки новой версии.
Ожидаемый результат
На конкретных суммах видна одна переменная при разном регистре и два отдельных строковых значения при преобразовании данных.
На что обратить внимание
Не используйте 2Количество, имя с пробелом или дефисом: это не допустимые варианты такого идентификатора.
Цена и ЦЕНА не могут обозначать две независимые величины в одном контексте. Для старой и новой цены нужны разные содержательные имена.
Одинаковое написание в разных модулях не доказывает общий контекст. Этот пример специально находится в одном серверном общем модуле.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.