Язык программирования 1с

Язык программирования 1с

01.06.2021

Язык 1С весьма прост в изучении по сравнению с любым другим языком программирования.

На территории России для многих большое значение имеет то, что можно писать код прямо на русском языке. «Можно» – значит не обязательно — можно писать и на английском, все операции и операторы имеют английский синоним.

Мы изучим язык 1С между делом сейчас, за пять минут.

Общие принципы программирования

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

Программирование – это написание программного кода на программном языке.

Программный код – это последовательность команд (слов), которые поддерживает этот язык программирования.

Команды делятся на:

  • Переменные
  • Операторы
  • Функции и процедуры.

Рассмотрим их в первом приближении.

Переменные

Переменные

Есть цифра 12. Это значение. Сама по себе эта цифра нигде не хранится. Подули и ее уже нет 🙂 Она должна где-то храниться. Переменные – это место хранения значений. Переменная может называться любым словом.

Например:
Чтото = 12;
Чтото = Чтото + 10;
Сообщить(Чтото); //будет выведено «22»

Переменная, которая является частью объекта 1С (например поле справочника) и хранится в базе данных – называется реквизит.

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

Однако реквизиты объектов – типизированы. Но проверки на типы при этом не происходит. Мы можем попытаться назначить реквизиту значение не того типа. 1С попытается его преобразовать (например из цифры в строку), но если не получится, то значение реквизита останется пустым.

Длина строки в переменной – неограниченная. Длина строки реквизита – задается точно, но можно задать неограниченную (поставив длину строки 0).

По буквам к строке обращаться нельзя. Но можно искать или выделять части (Найти(), Лев(), Прав(), Сред()).

Сложные переменные

Если значение одно – это просто. А когда значений – много?

  • Массив

    Это одна колонка Excel. В каждой ячейке – переменная. У нее одно название, так же как и у обычной переменной. А к ячейке можно обратиться по номеру.

    Чтото = Новый Массив;
    Чтото.Добавить(22); //в ячейке 1 значение 22
    Чтото.Добавить(33); //в ячейке 2 значение 33
    Сообщить(Чтото); //выводим значение 1й ячейки

  • СписокЗначений

    То же, что и массив, только к каждой ячейке можно подписать комментарий.

    Чтото = Новый СписокЗначений;
    Чтото.Добавить(22, «Это 22»); //в ячейке 1 значение 22
    Чтото.Добавить(33, «Это 33»); //в ячейке 2 значение 33
    Сообщить(Чтото.Получить(0).Значение); //выводим значение 1й ячейки
    //а могли бы вывести и комментарий, тогда бы написали.Представление а не.Значение

  • ТаблицаЗначений

    Это – уже полноценная страница Excel со строчками и колонками.
    Как с ней работать – посмотрим в другом уроке.

  • ДеревоЗначений

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

Обратите внимание – нумерация ячеек в 1С начинается не с 1, а с 0.

Программирование 1С

Если Вам необходимо вспомнить где происходит написание программы в 1С — мы обсуждали это в .

Строки программы

Строки заканчиваются на точку с запятой «;».

Комментарий начинается с «//» — то есть эта строчка или часть строчки не будет выполняться и будет пропущена.

Значение строк нужно указывать в кавычках «Значение». Если нужно указать в значении кавычку, то она удваивается – «Значение ««а»»!».

Значение строки может быть с включением переноса строки, тогда в начале следующей строки должен стоять «|», например:

«Это начало
| и продолжение значения»

Если нужно указать специальные символы в значении строки, для этого есть специальный объект: «Символы.», например:

«Это начало» + Символы.ПС + «и продолжение значения» //ПС – перенос строки

Операторы

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

  • Условие

    Определенные строки кода будут выполнены если будет выполнено условие.

    Чтото = 12;
    Если Чтото 200 Тогда
    Сообщить(«Условие выполнено»);
    ИначеЕсли Чтото > 200 Тогда
    Сообщить(«Условие не выполнено»);
    Иначе
    Сообщить(«Что-то еще»);
    КонецЕсли;

  • Цикл

    Определенные строки кода будут выполнены указанное количество раз.

    //считаем по-одному
    Для Чтото = 1 по 20 Цикл
    Сообщить(Чтото);
    КонецЦикла;

    //считаем по-другому
    Чтото = 1;
    Пока Чтото

    //если у нас список значений, то можно обойти каждое из его значений
    Чтото = Новый СписокЗначений;
    Для каждого ЗначениеСписка из Чтото Цикл
    Сообщить(ЗначениеСписка.Значение);
    КонецЦикла;
    //обратите внимание, что «ЗначениеСписка» - это переменная, она может называться как угодно

    Для того, чтоб прервать цикл, можно внутри написать команду «Прервать», для того чтобы прервать только одну итерацию цикла – команду «Продолжить».

Работа с объектами

Все объекты, с которыми мы работаем в языке – является полноценными объектами, то есть могут иметь свои данные и свои методы.

Объекты языка создаются с помощью команды «Новый», например:

Чтото = Новый Массив();
Чтото = Новый СписокЗначений();
И т.п.

Объекты 1С нельзя создать – доступ к ним можно получить с помощью так называемых менеджеров, названных соответственно по веткам конфигурации: Справочники, Документы и т.п. Методы менеджера можно расширять (см. урок по модулям 1С, модуль менеджера объекта).

Например:

Справочники.Номенклатура.СоздатьЭлемент();
Документы.Накладная.НайтиПоНомеру(«…»);

Свои объекты программировать нельзя, как и наследовать или переопределять типовые.

Ошибки

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

Например если написать в коде внешней обработки:

Справочники.Номенклатура.НайтиПоКоду(«…») и открыть эту обработку в базе, где нет справочника с названием Номенклатура, то будет ошибка.

Чтобы этого не произошло, можно использовать следующую конструкцию:

Попытка
Справочники.Номенклатура.НайтиПоКоду(«…»);
Исключение
Чтото = ОписаниеОшибки();
Сообщить(«Ой-ой-ой»);
Сообщить(Чтото);
КонецПопытки;

Если в момент выполнения строчек программы между Попытка и Исключение возникнет ошибка, то выполнение будет прервано и перейдет на строчки между Исключение и КонецПопытки. Если не будет ошибки – эти строчки не будут выполнены.

Функция ОписаниеОшибки() работает только между Исключение и КонецПопытки и возвращает описание произошедшей ошибки.

Функции и Процедуры

Функции и Процедуры – это способ взять несколько строчек кода и назвать их каким-то словом, как переменную. Когда мы потом напишем ее название в другом месте – будет вызвана эта функция (то есть выполнены эти строки кода).

Мы неоднократно обсуждали методы объектов и обработчики событий. Функции и процедуры и являются этими методами и обработчиками.

//Программируем
Процедура КакоетоДействие()
Сообщить(«Чтото»);
КонецПроцедуры

//Вызываем
КакоетоДействие();

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

Как программировать

Теперь, когда Вы познакомились с языком 1С, .

Программирование проводится в модуле. Соответственно Вы должны найти нужный модуль и написать там код программы.

Пример разработки внешней обработки ():

  • Создаем внешнюю обработку
  • – будет выполнен по открытию обработки в режиме Предприятие и по нажатию кнопки
  • Или открываем модуль объекта обработка и пишем код там – будет выполнен сразу при открытии в режиме Предприятие.

Программированию конкретных объектов языка 1С мы коснемся в ближайших уроках.

Откройте ее в конфигураторе и Вы можете посмотреть программу или изменить ее.

Программный код написан в модуле объекта обработки.

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

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

Назначение и краткая характеристика встроенного языка

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

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

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

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

Построение книги

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

Формат описания элементов языка

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

Соглашения и обозначения, принятые в синтаксических диаграммах

В синтаксических диаграммах используются следующие символы:

Синтаксическая диаграмма описания элемента языка

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

ЭлементЯзыка

Краткое описание того, что делает данный ЭлементЯзыка.

Синтаксис :

ЭлементЯзыка(<Параметр1>, <Параметр2>, ...) [ДобКлючевоеСлово]

Англоязычный Синтаксис: (в случае языковых конструкций)

Keyword(<Параметр1>, <Параметр2>, ...)

Англоязычный синоним: (в случае описания методов, функций и процедур)

Параметры :

<Параметр1> краткое описание <Параметра1>. <Параметр2> краткое описание <Параметра2>. [ДобКлючевоеСлово] краткое описание ДобКлючевоеСлово.

Возвращаемое значение :

Тип и краткое описание возвращаемого значения.

Описание :

Подробное описание того, что реализует ЭлементЯзыка.

Пример :

· Краткое описание примера // Исходный текст примера

Встроенный язык программирования 1С:Предприятие - язык программирования , который используется в семействе программ «1С:Предприятие ». Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня.

Средой исполнения языка является программная платформа «1С:Предприятие». Визуальная среда разработки («Конфигуратор») является неотъемлемой частью пакета программ «1С:Предприятие».

Диалекты языка для платформ 1С 7 версий (7.0, 7.5, 7.7) совместимы «снизу вверх» с незначительными исключениями. Языки для платформ 1С:7х и 1С:8х совместимы по основным операторам, но значительно отличаются в работе с прикладными объектами, вследствие чего перенос кода из 1С:7х в 1С:8х не имеет смысла.

Встроенный язык 1С:8 наиболее подобен по своему синтаксису языку Visual Basic .

Платформой предоставляется фиксированный набор базовых классов, ориентированных на решение типовых задач прикладной области:

  • Константа,
  • Справочник,
  • Документ,
  • Журнал документов,
  • Перечисление,
  • Отчет,
  • Обработка
  • План счетов и др.

На основании базовых классов средствами визуального конфигурирования можно создавать любое количество порождённых классов (возможность определить новый класс программно - отсутствует). Допускается только одна явная ступень наследования классов. Как правило, объекты порождённых классов представляют собой записи (или некоторые наборы записей) в базе данных. Такие классы образуют «Дерево метаданных». В терминах встроенного языка программирования 1С такие классы называются объектами метаданных.

Основными видами объектов метаданных являются: Справочники, Документы, Отчеты, Обработки, Планы видов характеристик, Планы счетов, Планы видов расчета, Регистры сведений, Регистры накопления, Регистры расчета, Бизнес-процессы, Задачи.

Поддерживаются русский и английский синтаксис команд.

Проекты на встроенном языке 1С:Предприятия называются конфигурациями. Распространение (продажа) и внедрение таких конфигураций - это основная коммерческая деятельность фирм-партнёров 1С.

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

Объектно-ориентированные диалекты

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

Более того - существует полностью свободный проект 2C , не использующий каких либо проприетарных модулей фирмы 1С или других производителей. Это переписанное «с нуля» свободно распространяемое под лицензией GPL расширяемое ядро 1С -подобной системы, в котором даже такие «встроенные объекты» 1C как справочники и регистры - переопределяемые прикладным программистом классы .

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

1C.Net:Предприятие

Для облегчения использования 1С.Net:Предприятие подготовлено множество примеров, охватывающих практически весь.NET framework , включая примеры интеграции родных элементов управления.NET в 1С-формы .

Пример программы

Классический пример вывода текстовой строки встроенный язык 1С:Предприятие 7.7:

Сообщить("Здравствуй, Мир!");

Пример функции, возвращающей квадрат числа:

Функция КвадратЧисла (прЧисло )

Возврат прЧисло * прЧисло ;

КонецФункции

См. также

  • RSL - язык программирования, встроенный в RS-Balance.

Примечания

Ссылки


Wikimedia Foundation . 2010 .

Смотреть что такое "Встроенный язык программирования 1С:Предприятие" в других словарях:

    Встроенный язык программирования 1С:Предприятие Класс языка: процедурный, предметно ориентированный Тип исполнения: предварительно компилируемый Автор(ы): 1С Последняя версия: 1С:Предприятие 8.2 Типизация данных: динамическая типизация Основные… … Википедия

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

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

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

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

    Язык программирования формальная знаковая система, предназначенная для записи программ. Программа обычно представляет собой некоторый алгоритм в форме, понятной для исполнителя (например, компьютера). Язык программирования определяет набор… … Википедия

    Проверить нейтральность. На странице обсуждения должны быть подробности … Википедия

    - (англ. Mutable type) сложный тип данных в объектно ориентированном программировании, значения которого (как правило объекты) после своего создания допускают изменение своих свойств. Содержание 1 Примеры … Википедия

    Класс языка: процедурный, объектно ориентированный Тип исполнения: интерпретируемый Появился в: 1994 Автор(ы): Сергей Кубрин Расширение файлов: mac … Википедия

Книги

  • 1С: Предприятие 7.7. Уроки программирования. Самоучитель45 , Постовалов Сергей Николаевич , Постовалова Анастасия Юрьевна , Описываются администрирование системы 1С:Предприятие 7.7, введение в бухгалтерский учет, встроенный язык и основные базовые объекты системы. Рассматривается специфика работы с объектами… Категория: Прикладное ПО Серия: Самоучитель Издатель: БХВ-Петербург , Производитель:

Даже если вы заранее изучали другие языки программирования, например, C++, PHP, Java, стоит помнить, что 1С хоть и во многом сходе, но все-таки имеет много принципиальных различий.

Самое главное в 1С – то, что не нужно придумывать свои виды объектов. Все они уже есть в конфигурации.

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

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

Данные так же хранятся в СУБД, но разработчик обычно не работает с ними напрямую. При помощи технологической платформы программист обращается уже к объектам конфигурации или информационной базы.

В 1С, как и во многих других языках программирования, очень часто используются запросы. схож с языком T-SQL. Запросы можно писать как на английском, так и на русском, в прочем, как и остальной код.

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

В плане работы для 1С программистов существуют две основные ветви: франчайзи или работа «на себя» и работа в качестве штатного программиста it-отдела какой-либо организации. Данный выбор зависит только от ваших предпочтений.

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

Если вы решите работать на фрилансе, либо открыть собственный бизнес, не нужно будет ни с кем «делиться» своим заработком (кроме государства и фрилансовой площадки естественно). Но в таком случае и клиентов будет необходимо искать самостоятельно.

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

Конечно же, эти два способа можно совместить, работая штатным программистом днем и на фрилансе по вечерам.

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

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

Книги по 1С

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

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

«Hello, 1C» показывает самые простые, основные возможности разработки прикладных решений в системе 1С:Предприятие 8.

В «101 совете» описаны различные способы решения одних и тех же задач.

Практическое пособие разработчика 1С Предприятие 8.3 — очень подробное пособие, описывающее приемы разработки с простыми и понятными примерами. Данная книга одна из самых лучших для изучения 1С программирования.

В данном пособии описывается язык запросов с нуля для тех, кто не знаком даже с SQL.

Как правило, изучение любого языка программирования начинается с примера написания первой простейшей программы (“Hello world!”). Делается это для того, чтобы наглядно показать работу с базовыми синтаксическими конструкциями. Мы не будем делать исключение из этого общепринятого способа подачи материала при изучении новой среды разработки и поэтому нашу первую статью следует рассматривать в этом же ключе. В ней мы подробно разберем ответы на следующие вопросы, касающиеся программирования на платформе «1С:Предприятие 8»:

  • Где и при помощи чего писать программный код на встроенном языке 1С?
  • Что такое программные модули, какие существуют правила работы с ними?
  • Что такое переменная, как с ней работать, как и где её объявлять?
  • Какие операторы сравнения, присваивания и условий существуют и как их применять?
  • Булевы операции – что это и как с ними работать?
  • Зачем нужны циклы и как их использовать?

Статья будет полезна всем тем, кто еще не знаком с разработкой на платформе «1С:Предприятие 8», но хочет научиться программировать на 1С.

Применимость

Материал актуален для платформы «1С:Предприятие 8» редакций 8.2. и 8.3.

Переменные и операторы

В этой статье мы приступаем к изучению встроенного языка 1С:Предприятие 8. Исполняемый код содержится в программных модулях.

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

Так, вход пользователя в систему обрабатывается в одном модуле, а обработка нажатия пользователя на некоторую кнопку – в совершенно другом.

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

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

Перем Склад, Подразделение, Кладовщик Экспорт;

После объявления переменных содержится раздел процедур и функций.

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

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

Состояние=1;
НовоеВыражение=2;
Результат=3;

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

Разделителем операторов является символ «;» (точка с запятой). Этот знак является признаком окончания оператора. Т.е. оператор может быть записан в таком виде:

Результат=100Х200
+400
-600;

При этом не важно, на скольких строках располагается оператор.

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

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

Процедура ВычислениеЗначения()

ИсходноеЗначение = 100;
ПромежуточноеЗначение = ИсходноеЗначение/5;
ИтоговоеЗначение = ИсходноеЗначение+ПромежуточноеЗначение

КонецПроцедуры

Однако лучше использовать точку с запятой в завершающем операторе. Не исключено, что со временем конструкция будет продолжена, и завершающий оператор окажется уже не завершающим. Придется специально отслеживать эту ситуацию.

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

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

Например, переменная может содержать значение одного типа данных, а через несколько строк – другого типа:

Создан = Ложь;
Создан = Истина;
Создан =100;

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

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

Для названия переменных используется классическое описание идентификатора. Идентификатор состоит из букв, цифр и знаков подчеркивания. Начинаться идентификатор должен либо с буквы, либо со знака подчеркивания.

При этом название переменной должно отображать смысл данной переменной. Названия переменных из одной буквы (типа А, В, С) являются плохими примерами. Они не отражают суть переменных.

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

В названии переменных нельзя использовать зарезервированные слова, такие как Процедура, Функция, Цикл, КонецЦикла и т.д. (эти конструкции выделяются в программном модуле красным цветом).

Зарезервированные слова – это операторы встроенного языка и их достаточно небольшое количество. Все они представлены в Синтакс-помощнике .

Следует отметить, что типы данных к зарезервированным словам не относятся (например, Массив, Булево, Истина, Ложь). Система такие имена переменных воспримет корректно.

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

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

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

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

Булевы операции

В операторах сравнения очень часто используется булевская логика, которая возвращает значение Истина или Ложь.

Например, в условном операторе можно сравнивать: Если Событие = Продажа Тогда алгоритм пойдет по одной ветке (т.е. при значении Истина), по условию Ложь выполняется другая ветка алгоритма.

Условия могут быть достаточно сложными, они могут комбинироваться, при этом применяются следующие операторы: И, ИЛИ, и НЕ. Так, для оператора И:

Истина И Истина = Истина;
Истина И Ложь = Ложь;
Ложь И Истина = Ложь;
Ложь И Ложь = Ложь.

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

Оператор НЕ просто инвертирует текущее значение (Ложь в Истину, Истину в Ложь).

С помощью комбинации данных операторов можно строить достаточно сложные условия. При составлении сложных условных операторов следует учитывать приоритеты.

Высший приоритет имеет оператор НЕ, следующим идет оператор И, а за ним оператор ИЛИ. То, что заключено в скобки, имеет самый высший приоритет и выполняется в первую очередь.

Например, расставим приоритеты (последовательность выполнения) для операций в приведенном выражении:

НЕ(Условие1 ИЛИ Условие2) И Условие3 ИЛИ Условие4
1. Результат1 = (Условие1 ИЛИ Условие2);
2. Результат2 = НЕ Результат1;
3. Результат3 = Результат2 И Условие1;
4. Результат = Результат3 ИЛИ Условие4;

Существует правило преобразования:

НЕ (Условие1 ИЛИ Условие2) = НЕ Условие1 И НЕ Условие2.

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

Оператор присваивания

Не следует путать оператор присваивания с равенством, не смотря на то, что у них одинаковое написание.

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

Переменная1 = Переменная2 = Переменная3;

Переменной1 присваивается значение равенства из булевской логики, т.е. Истина, если Переменная2 = Переменная3, или Ложь в обратном случае.

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

Данная задача решается с использованием оператора присваивания и имеет два решения.

Решение №1 с использованием временной переменной:
ВременнаяПеременная = Переменная1;
Переменная1 = Переменная2;
Переменная2 = ВременнаяПеременная;

Решение №2:
Переменная1 = Переменная1 + Переменная2;
Переменная2 = Переменная1 – Переменная2;
Переменная1 = Переменная1 – Переменная2;

Условный оператор

Есть такой оператор Если, после которого необходимо описать некоторое условие (само условие может быть достаточно большим). После условия следует слово Тогда и выполняемые операторы.

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

Кроме простого и множественного условия существует сокращенная форма условного оператора: ?(Условие, Выражение1, Выражение2);

Если условие истинное, то будет выполняться Выражение1 , в противном случае – Выражение2 . Пример кода: ДорогойТовар = ?(Товар.Цена>100000, Истина, Ложь);

На практике вместо записей сравнения со значением Истина (Ложь ) типа:

Если Переменная = Истина Тогда
и
Если Переменная = Ложь Тогда

реально используются эквивалентные записи:

Если Переменная Тогда
и
Если НЕ Переменная Тогда

Циклические операторы

Для любого вида цикла обязательно явное указание окончания этого цикла с помощью ключевого слова КонецЦикла . Существует несколько типов циклов.

Цикл по счетчику – цикл с фиксированным количеством повторений. Условием выхода из цикла является превышение граничного значения. Пример использования для расчета значения А!

А = 5;
Факториал = 1;
Для Счетчик = 1 По А Цикл
Факториал = Факториал * Счетчик;
КонецЦикла;

Цикл по условию – выполняется пока истинно условие данного цикла. Пример:

ОстатокСуммы = 1000;
ЦенаДополнительногоТовара = 243;
Количество = 0;
Пока ОстатокСуммы>0 Цикл
Количество = Количество+1;
ОстатокСуммы = ОстатокСуммы – Количество*ЦенаДополнительногоТовара;
ЦенаДополнительногоТовара = ЦенаДополнительногоТовара * 0.8;
КонецЦикла
Количество = Количество-1;

Данный цикл вычисляет, сколько единиц товара можно купить на данную сумму (1000 рублей), если после покупки каждой единицы товара предыдущая его цена умножается на коэффициент 0,8. Изначальная цена товара – 243 рубля.

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

Цикл по коллекциям (другое название Для каждого).

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

Обойти элементы коллекции можно с помощью цикла специального вида.

Например, существует массив чисел, необходимо посчитать сумму всех элементов массива:

Сумма = 0;
Для каждого Элемент Из Массив Цикл
Сумма=Сумма+Элемент;
КонецЦикла;

Для циклов существуют специальные операторы: Продолжить и Прервать .

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

Оператор Прервать позволяет закончить выполнение цикла, даже если условие цикла истинно.

На этом мы завершаем наше первое знакомство с разработкой на внутреннем языке 1С.

А как же Hello World? Мы же его еще не написали, да? Да, но ничто не мешает вам сделать это самостоятельно, т.к. знаний УЖЕ достаточно. Ну а если не получается, то можете подглядеть сюда.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows