Главная страница
Навигация по странице:

  • Вопрос 1. Назначение и краткая характеристика встроенного языка.

  • Редактор программных модулей.

  • Вопрос 2. Типы данных.

  • Объявление переменных.

  • Оператор Новый.

  • Приведение типов.

  • Системные перечисления и наборы значений.

  • Вопрос 3. Формат программного модуля.

  • Вопрос 4. Конструкции встроенного языка.

  • администрирование и конфигурирование субд. администрирование. Тема Архитектура системы 1С Предприятие иее концепция Вопрос Этапы современного развития программного обеспечения на платформе 1С Предприятие


    Скачать 458.22 Kb.
    НазваниеТема Архитектура системы 1С Предприятие иее концепция Вопрос Этапы современного развития программного обеспечения на платформе 1С Предприятие
    Анкорадминистрирование и конфигурирование субд
    Дата26.04.2022
    Размер458.22 Kb.
    Формат файлаdocx
    Имя файлаадминистрирование.docx
    ТипДокументы
    #498743
    страница6 из 8
    1   2   3   4   5   6   7   8

    Тема 5. Встроенный язык. Основы программирования в системе «1С:Предприятие»

     

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

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

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

     

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

     

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

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

    В данном языке используется «мягкая» (не жесткая) типизация переменных, т.е. тип переменной определяется ее значением. Кроме того, переменные не обязательно объявлять в явном виде. Неявным определением переменной является ее первое упоминание в левой части оператора присваивания. Хотя явное объявление переменных также возможно при помощи соответствующего оператора.

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

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

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

         раздел объявления переменных;

         раздел процедур и функций;

         раздел основной программы.

     

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

     

    Перем НачДата Экспорт; //экспортируемая переменная

    Перем КонДата Экспорт; //экспортируемая переменная

    Перем ТекСтрока; //локальная переменная модуля

     

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

    Например, ниже приведен модуль документа:

     

    //эта процедура будет доступна

    //как метод объекта ДокументОбъект

    Процедура Печать(ТабДок=Неопределено) Экспорт

     

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

     

    //это локальная процедура модуля

    Процедура ПолучитьГруппировку(РезультатЗапроса,

    ИмяГруппировки)

     

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

     

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

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

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

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

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

    1.  Общие модули.

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

     

    2.  Модуль приложения.

    Это модуль, который относится ко всей конфигурации в целом и может быть только один. Модуль приложения является аналогом глобального модуля в версии 7.7. Он отвечает за пользовательскую сессию (сеанс) работы с «1С:Предприятием».

     

    3.  Модуль внешнего соединения.

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

     

    4.  Модули прикладных объектов.

    У некоторых прикладных объектов конфигурации могут быть собственные модули, например, модуль документа «РасходнаяНакладная», модуль справочника «Номенклатура». Не следует их путать с модулями форм этих объектов.

     

    5.  Модули форм.

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

     

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

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

    Можно выделить следующие виды контекстов, существующие в «1С:Предприятие»:

    1.  Глобальный контекст – доступен во всех остальных контекстах и состоит из следующих частей:

         свойства, методы и события глобального контекста;

         системные перечисления и системные наборы значений.

     

    2.  В контексте модуля приложения (модуля внешнего соединения) – доступны экспортируемые переменные, процедуры и функции общих модулей.

    3.  В контексте общего модуля – доступны экспортируемые процедуры и функции других общих модулей. В этом контексте недоступны экспортируемые переменные, процедуры и функции модуля приложения.

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

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

     

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

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

    2.  В модуле приложения (модуле внешнего соединения) доступны экспортируемые процедуры и функции общих модулей.

    3.  В общих модулях доступны экспортируемые процедуры и функции других общих модулей.

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

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

     

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

    Редактор программных модулей.

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

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

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

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

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

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

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

    Например, после написания строки «Документы.» появляется контекстное меню. Набираем первые буквы имени документа — «расх» — и курсор устанавливается на документ Расходная_Накладная. Остается нажать Enter и имя документа будет подставлено в текст модуля. Затем можно опять ввести точку и появится уже список свойств и методов документа РасходнаяНакладная. Необходимо учитывать, что область действия контекстной подсказки ограничена: она работает не во всех случаях и не для всех объектов.

    При написании программного кода для ускорения ввода часто используемых конструкций можно использовать шаблоны, например, для блока «Если...КонецЕсли;» или «Процедура...КонецПроцедуры». После набора определенного количества символов, указанных в шаблоне, и нажатии клавиш Ctrl+Q активизируется соответствующий шаблон, т.е. введенная строка будет заменена на текст шаблона. Помимо этого шаблоны можно включать в контекстную подсказку, для чего в настройках конфигуратора должен быть установлен признак «Включать шаблоны в список подсказок».

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

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

     

    Вопрос 2. Типы данных.

     

    Во встроенном языке системы «1С:Предприятия» поддерживаются следующие основные типы данных:

         число;

         строка;

         дата (включает в себя время);

         булево (имеет два значения: Истина и Ложь);

         значение Неопределенно;

         значение Null (для неуказанных значений в таблицах базы данных),;

         тип (значения специального типа «Тип» нужны для представления и сравнения типов данных).

     

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

     

    Объявление переменных.

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

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

    Если переменную модуля объявить с ключевым словом Экспорт, то она будет видна вне модуля.

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

     

    //явное объявление переменной модуля

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

    Перем Итог;

    //экспортируемая переменная модуля

    Перем Количество Экспорт;

    //неявное объявление переменных

    //(при первом присвоении значения)

    ном = 0;

     

    Оператор Новый.

    Оператор Новый предназначен для создания объектов определенных типов, например, СписокЗначений, Структура и т.д. Он применяется только для тех типов объектов, для которых допустимо создание новых значений. При объявлении переменных, ссылающихся на прикладные объекты, оператор Новый не используется.

    Ниже показываются различные варианты объявления переменных:

     

    //создание нового объекта типа »Структура»

    Отбор = Новый Структура;

    //вызов конструктора с параметрами

    Отбор = Новый Структура(«Контрагент»,ВыбКонтрагент);

    //получение объекта типа СправочникМенеджер

    Спр = Справочники.Контрагенты;

     

    Приведение типов.

    При программировании часто требуется преобразовать значение одного типа в значение другого типа, например, число 10 преобразовать в строку «10».

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

         Число();

         Строка();

         Дата();

         Булево().

     

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

     

    а = «Месяц» + НомерМесяца.

     

    Системные перечисления и наборы значений.

    В системе «1С:Предприятие» начиная с версии 8.0 для улучшения понятности программ были введены системные перечисления и системные наборы значений.

    Например, ниже используется системное перечисление ОриентацияСтраницы и его значение Портрет:

     

    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет.

     

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

         ПС – перевод строки (помещение курсора на следующую строку);

         ВК – возврат каретки (помещение курсора в начало строки);

         Таб – символ табуляции;

         ПФ – перевод формы (страницы);

         ВТаб – вертикальная табуляция;

         НПП – неразрывный пробел.

     

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

     

    стр = стр1 + Символы.ПС + Символы.ВК + стр2.

     

    Вопрос 3. Формат программного модуля.

     

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

    Комментарий используется для размещения в исходном тексте программного модуля всякого рода пояснений к работе модуля. Хорошим тоном программирования считается, когда исходный текст содержит исчерпывающий комментарий с описанием алгоритма. В режиме исполнения программы комментарии пропускаются. В тексте программного модуля комментарий начинается парой символов «//» и заканчивается концом строки. Это значит, что комментарий можно начинать с начала строки или записывать его после оператора на той же строке. После начала комментария писать оператор на той же строке нельзя, необходимо закончить комментарий концом строки. Например:

     

    А=В; // Это – комментарий

    // Это тоже комментарий

     

    Операторы имеют вид стандартного обращения к процедуре, за исключением оператора присваивания (А=В;) и управляющих конструкций (таких как Для, Пока, Если). Между собой операторы обязательно следует разделять символом «; « (точкой с запятой). Конец строки не является признаком конца оператора, т.е. операторы могут свободно переходить через строки и продолжаться на другой строке. Можно располагать произвольное число операторов на одной строке, разделяя их «точкой с запятой». Однако, после ключевых слов КонецПроцедуры или КонецФункции точка с запятой не ставится, поскольку это не операторы, а операторные скобки.

    Условно операторы языка в программном модуле можно подразделить на две категории: операторы объявления переменных и исполняемые операторы.

    Операторы объявления переменных создают имена переменных, которыми манипулируют исполняемые операторы.

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

    В общем случае формат оператора языка следующий:

     

    метка: Оператор[(параметры)] [ДобКлючевоеСлово].

     

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

     

    метка: А=В.

     

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

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

     

    Таблица 2.

     

    Если

    If

    He

    Not

    Тогда

    Then

    Знач

    Val

    ИначеЕсли

    Elsif

    КонецЦикла

    EndDo

    Иначе

    Else

    Перем

    Var

    КонецЕсли

    Endlf

    Перейти

    Goto

    Цикл

    Do

    Возврат

    Return

    Для

    For

    Продолжить

    Continue

    По

    To

    Прервать

    Break

    Пока

    While

    И

    And

    Функция

    Function

    Или

    Or

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

    EndProcedure

    Процедура

    Procedure

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

    EndFunction

     

     

     

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

     

    Таблица 3.

     

    //

    Двумя знаками «косая черта» начинается комментарий. Комментарием считается весь текст от знака «//» до конца текущей строки.

    |

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



    Знаком тильда начинается метка оператора.

    :

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

    ;

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

    ( )

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

    [ ]

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

    ,

    Запятая разделяет параметры в списке параметров методов, процедур и функций.

    « »

    В двойные кавычки заключаются строковые константы.

    ' '

    В одинарные кавычки заключаются константы даты.

    .

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

    +

    Символ «плюс» может использоваться как для выполнения операции сложения, так и конкатенации.

    -

    Символ «минус» обозначает операцию вычитания.

    *

    Символ «звездочка» обозначает операцию умножения.

    /

    Символ «косая черта» обозначает операцию деления.



    Правая угловая скобка обозначает логическую операцию «больше».

    >=

    Логическая операция «больше или равно».



    Левая угловая скобка обозначает логическую операцию «меньше».

    <=

    Логическая операция «меньше или равно».

    =

    Знак равенства обозначает присвоение или логическую операцию «равно».

    <> 

    Две угловые скобки обозначают логическую операцию «не равно».

     

    Вопрос 4. Конструкции встроенного языка.

     

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

     
    1   2   3   4   5   6   7   8


    написать администратору сайта