Что такое метод в 1с
Перейти к содержимому

Что такое метод в 1с

  • автор:

Программирование 1С 8.х для начинающих

  • Вы здесь:  
  • Описание языка 1С для начинающих

Конфигурация

Описание языка 1С для начинающих

  •  Печать 
  • E-mail

Описание языка 1С для начинающих

1. Что из себя представляет язык 1с.
2. Методы, переменные, другие конструкции языка.

Что из себя представляет язык 1с.

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

1. модуль приложения

3. модуль объекта

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

Методы, переменные, конструкции языка

Переменные используются для хранения данных во время сеанса работы пользователя. Переменная это такое слово которое начинается с буквы(русской или английской) или со знака подчеркивания «_» и состоит из букв цифр и знаков подчеркивания.
Например :

  • ЭтоПеременная
  • _ЭтоПеременная
  • _Это1_Переменная

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

Регистр букв в коде не учитывается, т.е. переменные « Переменная1 » и « пЕрЕмЕннАя1 » при выполнения кода для программы являются одинаковыми. Желательно чтобы названия переменных были осмысленные. Это улучшает читабельность кода.

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

Например : Объект «Товарный чек № 00018 от 01.01.2005».
Мы можем отличить этот товарный чек от других товарных чеков по данным реквизитов, которые он содержит. Это реквизит «Номер» со значением «00018»(тип строка) и реквизит «Дата»(тип дата) со значением «01.01.2005». Единственное что, мы могли определить по объекту, не зная значений его реквизитов — это его тип «Товарный чек».
Методы являются маленькими и как правило законченными инструкциями.

Например , системный метод « ТекущаяДата () » из названия понятно, что он будет возвращать текущую дату компьютера. Или допустим можно создать метод « СтрокаСодержитЦифру ( ПроверяемаяСтрока ) » который вернет ответ Истина или Ложь , здесь мы в скобках передаем параметры т.е. данные оперируя которыми метод должен сделать какие-то действия. Оба рассмотренных метода являются функциями, также в языке есть методы-процедуры. Отличие между ними одно Функция обязательно должна возвращать значение.

Другие конструкции языка (операторы, коллекции значений и т.д.) — это зарезервированные системой 1с слова которые помогают производить манипуляции над данными.

В примере приведена конструкция перебора элементов коллекции. Эта конструкция называется цикл. Большинство типов объектов, а также их реквизитов являются коллекциями, которые можно перебирать вышеуказанным способом и обращаться к элементу коллекции указывая его индекс ( ИмяКоллекции [ 0 ] ). Все коллекции начинаются с элемента, у которого индекс = 0.

Что такое метод в 1с

В 1С реализованы две модели представления данных – объектное и табличное. При этом объектное представление данных реализует принципы объектно-ориентированной модели.

Как минимум два раздела в экзамене 1С Профессионал по платформе посвящены этой тематике.

Хотите узнать про это?

Что такое данные 1С

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

В режиме Предприятие пользователи заполняют этот шаблон множество раз. Соответственно появляются множество документов: «Поступление товаров №1 от 10 января», «Поступление товаров №2 от 12 января» и т.д.

Все введенные пользователем документы, справочники в режиме Предприятие в целом – это данные 1С. Данные 1С хранятся в базе данных 1С (т.е. в базе с данными 1С).

Что такое модели представления данных

Я говорю «один». Это цифра. Она одна как на нее не посмотри, и от этого она не изменится.

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

  • Один
  • One
  • 1
  • I

В других алфавитах существуют еще модели представления данных «один».

Таким образом – модель представления данных – это форма, в которой возможно представить данные для разных людей. Данные при этом не меняются.

Представление данных 1С для пользователя

Для пользователя практически любой объект 1С является набором полей (и таблиц, если они есть у объекта).

Например, я хочу ввести в 1С товар «Лопата». Для меня это значит, что я в справочнике открою форму справочника товаров и буду заполнять поля:

  • Наименование = Лопата
  • Вид номенклатуры = Товар
  • Страна происхождения = Россия
  • И т.п.

Аналогично с документом или другим объектом 1С.

Таким образом пользовательское представление данных 1С – это набор полей, который нужно заполнить. Пример на картинке.

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

У разных объектов 1С такие поля разные:

  • Документы – номер и дата
  • Справочники и большинство других объектов – код и наименование
  • Регистры – произвольный набор полей, которые назначает программист, их называют «измерения регистра».

Когда пользователь говорит «У меня задвоился справочник», это может значить следующее:

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

Методы / функции объектов 1С

Термин «Метод» или «Функция» объекта 1С означает, что есть заранее запрограммированное действие, которое может быть выполнено. Действие может быть запущено, например, с помощью нажатию на кнопку на форме объекта. Или программированием на языке 1С «вызова» (запуска) этого действия.

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

Методы

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

Общая информация

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

Используемые определения

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

Определение метода Место в исходном коде, где создан метод Заголовок метода Часть определения метода, которая содержит ключевое слово метод , имя метода, описание формальных параметров в круглых скобках и комментарий, описывающий назначение метода Тело метода Инструкции, расположенные между заголовком метода и символом ; , описывающим завершение метода Вызов метода Место в тексте программы, где указывается имя метода с указанием фактических параметров и использованием результата работы (только в случае возвращаемого значения) Определение параметров и передача аргументов — это имена переменных, через которые тело метода получает доступ к значениям, которые предоставляются методу во время его вызова. — это значения, которые указываются во время вызова метода. Предоставление аргументов методу при его вызове называется . Возврат значения Передача вызывающему программному коду какого-либо значения при завершении работы метода. Метод не обязательно должен возвращать какое-либо значение

Определение метода

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

Каждый параметр описывается следующим образом:

имя-параметра задает имя параметра в соответствии со стандартными правилами формирования имен.

тип-параметра указывает, соответственно, тип параметра (в том числе и составной).

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

    Особенности передачи параметров

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

    ИмяМетода(ИмяПараметра1 = Значение, ИмяПараметра2 = Значение, . , ИмяПараметраN = Значение).

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

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

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

    При вызове метода можно смешивать позиционную и именованную формы параметризации. Например:

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

    При разрешении неоднозначности действуют следующие правила:

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

    Завершение метода и возвращаемое значение

    Метод завершает свою работу после того, как завершается исполнение тела метода. Другим способом прервать исполнение метода является указание в необходимом месте метода ключевого слова возврат .

    Если метод должен вернуть какое-либо значение, необходимо это значение указать в качестве параметра ключевого слова возврат . При этом тип фактически возвращаемого значения должен совпадать с типом возвращаемого значения, который указан при описании метода. Тип возвращаемого значения указывается после окончания списка формальных параметров метода. Тип указывается после символа «:» (двоеточие). Однако если метод, в котором нет ключевого слова возврат (или, другими словами, в котором не предполагается возвращаемого значения) будет использован в каком-то выражении или в качестве правого значения инструкции присваивания, то в качестве возвращаемого значения такого метода будет выступать значение Неопределено .

    Повторное определение (перегрузка) методов

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

    Рассмотрим примеры корректного и некорректного определения перегруженных методов:

    Метод Пример1() (строки 1, 2 и 3) нельзя переопределить предложенным способом. Текущее определение типов параметра метода не позволяет однозначно определить, какой вариант метода необходимо вызвать. Причина в том, что Параметр1 описан с использованием составного типа, при этом в каждом варианте метода присутствует тип Строка .

    Метод Пример2() (строки 4, 5 и 6) можно описать, только исключив строку 5. Причиной является тот факт, что тип Объект является базовым для всех типов «1С:Исполнителя» . В то же время заголовок метода в строке 6 имеет другое количество параметров.

    Метод Пример3() (строки 7, 8, 9) можно описать только исключив строку 9. Причиной является то, что второй параметр имеет значение по умолчанию, а следовательно, если указан один параметр (первый), компилятор не будет понимать, какой из вариантов метода использовать.

    Наконец, метод Пример4() (строки 10, 11, 12) может быть описан или строками 10 и 11 или строками 11 и 12. Причиной является тот факт, что перегруженные методы не могут отличаться только типом возвращаемого значения. Поэтому вариант со строками 10 и 12 отпадает.

    Объекты, атрибуты и методы

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

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

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

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

    Модули, процедуры и функции

    Вся конфигурация состоит из модулей. Это могут быть модули документов или модули отчетов или другие модули. Модули состоят из процедур и функций. Процедура — это небольшая программа для выполнения определенной задачи. Функция отличается от процедуры, только тем, что имеет результат. Говорят, «функция возвращает результат«. Например, модуль «Приказа о приеме на работу» может иметь следующие процедуры ПроверитьПравильность( ) и НапечататьПриказ( ).

    Глобальный модуль

    В системе 1С есть так называемый Глобальный модуль.Он относится к конфигурации в целом. Глобальный модуль нужен для того, что писать процедуры и функции, доступные в любом месте программы (в любом другом модуле). Для этого необходимо просто указать ключевое слово Экспорт. Также можно создать глобальные переменные, которыми можно будет пользоваться в любом месте программы. Но чем меньше будет таких глобальных переменных, тем лучше, так как модули получаются более независимыми друг от друга, что снижает количество ошибок в программе и облегчает отладку.

    Назначение конфигуратора

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

    Итак, основное правило:

    В режиме Конфигуратор — мы определяем структуру базы данных и пишем программы. В режиме Предприятие мы используем программы и вводим данные.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *