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

Обновлено: 02.07.2024

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

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


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

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

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

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

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

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

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


Переменные

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

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

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

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

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

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


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

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

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

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

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

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


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


Операторы

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

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

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

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

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


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

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

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

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

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


Ошибки

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

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

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

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

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


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

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

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

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

Функция Посчитать(Переменная1, Переменная2)
Возврат Переменная1 + Переменная2;
КонецФункции


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

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

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

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

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

Язык 1С считается самым простым в изучении. Одно из его конкурентных преимуществ – возможность написания кода на русском, что значительно упрощает процесс его освоения. Хотя имеются и англоязычные варианты языка, предназначенные для внедрения на зарубежных предприятиях.

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

3. Функции и процедуры;

Давайте разберём все их более детально.

Переменные

Допустим, имеется число 15. Это есть значение. Изначально оно нигде не сохраняется. Чтобы поместить её в информационную базу (ИБ) программы, необходимо выполнить сохранение в переменной, которая может именоваться хоть как, скажем, результат.

Строка в стандартной переменной не ограничена по длине, в реквизите – чётко определена (но если требуется выставить неограниченную длину – устанавливается значение длины 0). Выполнять обращение к отдельным буквам в слове нельзя, но можно искать целые части (Лев(), Прав(), Сред()).

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

Давайте разберём пример, когда переменной присвоено несколько значений.

По виду массив аналогичен колонке в Excel. Каждая ячейка – переменная, которая имеет только одно название. Чтобы перейти к определённой ячейке, нужно ввести её номер.

Ячейки в 1С нумеруются с 0, а не с 1.

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

Здесь программирование таблиц значений на 1С аналогично Excel – страничке со множеством строк и колонок.

Древовидная таблица, самый простой пример – окно конфигурации.

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

Операторы

Это средства, встроенные в язык 1С. Используются для создания простейшей последовательности.

Те или иные строки выполняются при наличии необходимых условий.

Строчки выполняются установленное количество раз или пока выполняется определённое условие.

Объекты

Любой объект в 1С полноценен, то есть ему могут присваиваться уникальные от остальных методы и данные.

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

Собственные объекты конфигурации 1С неизменяемы.

Ошибки в 1С

Программирование на 1С отличается тем, что при написании программы не всегда понятно, появится ли ошибка при выполнении той или иной строчки. Так, если во внешней обработке ввести:

и открыть её в базе, где указанного справочника нет – возникнет ошибка.

Чтобы она не выскочила, можно применять такой алгоритм:

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

Данные методы предназначены для одноимённого наименования сразу нескольких строчек. Затем, при написании этого названия в тексте кода, будет активирована соответствующая функция. Функции и процедуры – это стандартные методы и обработчики в языке 1С:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Массив

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

Структура

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

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

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

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

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

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

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

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

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

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

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

COMSafeArray

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

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

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

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

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

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

Языки программирование кроме 1С

Платформа 1С Предприятие 8 имеет полноценный функционал для разработки собственных решений для разработчика. Главный инструмент разработки — это встроенный язык программирования 1С 8.3.

На что похож язык программирования 1С

Встроенный язык программирования 1С — язык программирования, который используется для разработки приложения на базе платформы 1С Предприятие. Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня. Язык более всего напоминает по синтаксису Visual Basic в сочетании с языком запросов T-SQL.

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

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

Сложный ли язык программирования 1С?

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

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

Если Вы имели до знакомства с 1C солидный опыт на других предметно-ориентированных языках программирования, Вам не составит труда разобраться и в тонкостях конфигурирования 1С 8.2, главное — желание. Всё что Вам нужно — найти хороший самоучитель по языку программированию 1С.

Русский синтаксис языка 1С

Интересной особенностью встроенного языка программирования 1С является двуязычный синтаксис команд: русский и английский. Русский язык программирования сильно удивляет новичков в сфере 1С программирования 8.2.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Читайте также: