Система 1с предприятие встроенный язык программирования

Операторы встроенного языка в конфигурации системы 1С: Предприятие

Для полноценной работы в версии платформы 1С: Предприятие программисту потребуется специальный встроенный язык программирования, созданный разработчиками компании 1С. На текущий момент данный язык поддерживает написание основных операторов систем на русском и английском языках. Однако в связи с тем, что ранее встроенный язык программирования был доступен только на русском языке, многие типовые конфигурации 1С: Предприятие написаны с применением операторов на русском языке, доработка, как правило, ведется также на русском языке.
Если коротко то, встроенный язык программирования обладает следующими возможностями: · Предварительная компиляция; · Кэширование; · Мягкая типизация; · Событийная ориентированность; · Наличие сборщика мусора.
В то же время в нем нет классов, наследования, инкапсуляции классов, полиморфизма классов, анонимных функций и многого другого, что так часто ставят ему в минус, однако с возложенными на него задачами язык платформы справляется и не претендует на универсальность.

2. Операторы встроенного языка программирования в конфигурации системы 1С: Предприятие

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

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

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

Выражение
В случае с первым примером можно оператор условного выбора записать следующим образом, что по своей сути будет аналогичным:
Счетчик
Для ключевых слов, используемых в операторе условного выбора, есть соответствующие в 1С ключевые слова на английском языке: Если (If) Тогда (Then) ИначеЕсли (Elsif) Иначе (Else) КонецЕсли (End If) Операторы цикла можно разделить на циклы по счетчику, циклы по условию и циклы перебора элементов. Циклы по счетчику – это циклы с заранее известным количеством повторений:

Для Счетчик
Цикл по условию выполняется, пока выполняется условие цикла:

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

КонецЦикла
Кроме того в теле любого фрагмента программы оператора цикла можно использовать следующие ключевые слова: — Прервать – прерывает цикл выполнение команды и передает управление оператору, следующему за ключевым словом КонецЦикла. — Продолжить – передает управление в начало цикла, где производится проверка условия выполнения тела цикла, начинается новая итерация цикла.
Для ключевых слов, используемых в операторах цикла, также есть соответствующие ключевые слова на английском языке: Для (For) Пока (While) Каждого (Each) Из (In) По (To) Цикл (Do) Продолжить (Continue) Прервать (Break) КонецЦикла (End Do) Подпрограммы процедуры и функции – это подпрограммы, выполняющие какую-либо последовательность операций с данными. Основное отличие функции от процедуры в том, что функция возвращает значение, а процедура нет. Для возврата значения используется ключевое слово Возврат.
Перед вызовом процедуры, либо функции их необходимо объявить:
forma operatora 1s.png

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

ИмяПроцедуры
Ключевое отличие между аргументом и параметром заключается в том, что аргумент – это данные, переданные во время вызова процедуры, либо функции, а параметр – это переменная, определяемая при объявлении процедуры и функции, которая получает значение при вызове.
Ключевые слова, используемые при объявлении процедур и функций, также имеют соответствующие значения на английском языке: Процедура (Procedure) КонецПроцедуры (EndProcedure) Функция (Function) Возврат (Return) КонецФункции (EndFunction) Оператор безусловного перехода позволяет при необходимости переместить выполнение в любую точку программного кода 1С в пределах области действия, однако этой возможностью следует пользоваться с осторожностью, так как использование данного оператора может серьезно затруднить чтение и понимание программного кода 1С. Область действия оператора ограничивается программным модулем 1С, процедурой или функцией. Переход осуществляется на помеченную меткой строку программного кода. Метка может располагаться как до оператора безусловного перехода, так и после него. Обычно данный оператор используется для быстрого выхода из многократно вложенных циклов.

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

Читайте также:  Задача линейного программирования имеет оптимальное решение то целевая

Источник

Встроенный язык

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

Встроенный язык имеет много общих черт с другими языками, такими как Pascal, Java Script, Basic, что облегчает его освоение начинающими разработчиками. Однако он не является прямым аналогом какого-либо из перечисленных языков.

  • предварительная компиляция — перед исполнением модули, содержащие текст на встроенном языке, преобразуются во внутренний код;
  • кэширование скомпилированных модулей в памяти;
  • мягкая типизация — тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы;
  • отсутствие программного описания объектов конфигурации — разработчик может использовать либо встроенные в платформу объекты, либо объекты, созданные системой в результате визуального конструирования прикладного решения.

Событийная ориентированность встроенного языка

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

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

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

Встроенный язык

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

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

Универсальные коллекции значений

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

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

Встроенный язык

Перечислим кратко их возможности:

Массив

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

Структура

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

Соответствие

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

Список значений

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

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

Таблица значений

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

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

Дерево значений

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

COMSafeArray

Представляет собой объектную оболочку над многомерным массивом SAFEARRAY из COM. Позволяет создавать и использовать SAFEARRAY для обмена данными между COM-объектами.

Фиксированный массив

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

Редактор текстов и модулей

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

Источник

Оцените статью