Какие функции отсутствуют во встроенном языке 1с предприятие 8

Обновлено: 05.07.2024

Требуется для просмотра Flash Player 9 или выше.

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

Также у встроенного языка есть такие особенности, как:

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

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

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

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

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

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

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

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

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

Массив

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

Структура

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

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

коллекция пар Ключ - Значение. Но тут ключ может быть почти любого типа.

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

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

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

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

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

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

COMSafeArray

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

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

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

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

Для указания разрешения использования процедур следует воспользоваться директивой препроцессора.

позволит указать системе, что процедура Проц1() должна выполняться на сервере, а конструкция

укажет на выполнение Проц2() на клиентской машине.

Для включения использования процедур и функций в сессии внешнего соединения применяется инструкция препроцессора

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

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

К системным перечислениям, например, относятся следующие:

  • КодВозвратаДиалога
  • РежимБегущейСтроки
  • ОбходРезультатаЗапроса
  • РежимПроведенияДокумента
  • ВариантПериода
  • и др.

Не следует путать системные перечисления и системные наборы значений (например системный набор значений "Символы").

Встроенный язык. Встроенные функции

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


Для работы с переменными типа "дата" в платформе предусмотрены следующие встроенные функции языка:

  • День(<дата>)
  • ДеньГода(<дата>)
  • ДеньНедели(<дата>)
  • ДобавитьМесяц(<дата>,<число>)
  • КонецГода(<дата>)
  • КонецДня(<дата>)
  • КонецЧаса(<дата>)
  • ТекущаяДата() и др.

Задание 8

Создайте внешнюю обработку "ПримерРаботыСДатой". На форме обработки разместите реквизиты: "ИсходнаяДата" и "КоличествоДней". По кнопке сформировать организуйте вывод в текстовое поле даты, полученной прибавлением к исходной дате указанного количества дней.

Встроенный язык. Глобальный контекст

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

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

Глобальный контекст:

В разделе "Интерфейсы" мы уже упоминали о программном переключении интерфейсов. Рассмотрим подробнее свойство глобального контекста "ГлавныйИнтерфейс". Тип значения: КоллекцияЭлементовУправленияИнтерфейсами. Используется для доступа к определенным в конфигурации пользовательским интерфейсам. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения .

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

У КоллекцияЭлементовУправленияИнтерфейсами есть метод

<Имена интерфейсов> (необязательный) - тип: Строка, перечисленные через запятую имена интерфейсов, которые следует сделать видимыми.

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

Свойства и методы глобального контекста не являются конструкциями встроенного языка.

Задание 9

Перед завершением работы системы задать вопрос: "Вы уверены, что хотите завершить работу с системой?".

Вопросы и ответы

В курсе О сновы конфигурирования в системе "1С:Предприятие 8.0" в Тест 1 нет условий с которыми надо согласиться и продолжить

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

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

Вот лишь некоторые, наиболее значимые особенности встроенного языка:

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

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

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

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


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

Предопределенные типы данных

Платформа 1С:Предприятия 8.0 позволяет разработчику использовать различные типы данных.

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


Описание примитивных типов данных :

  • NULL - отсутствующее значение. Используется, например, в запросах.
  • Неопределено - пустое, неопределенное значение. Используется, например, при оценке передачи параметров, в том случае, если при вызове процедуры или функции данный параметр опущен. Реквизиты, имеющие составной тип данных, по умолчанию имеют тип "Неопределено".
  • Булево - содержит два значения: Истина или Ложь. Используется, например, в логических выражениях - логическое выражение имеет тип "Булево".
  • Дата - содержит дату и время. По умолчанию имеет значение - 01.01.01 00:00:00 дата начала нашей эры. Время измеряется от начала дня. Запись выражения, имеющего литерал типа "дата", осуществляется следующим образом - '00010101000000'. Сначала записывается год, потом месяц, потом число и потом время. Возможна следующая запись: '20041031'. Время по умолчанию - начало дня.
  • Строка - бывает переменной, фиксированной и неограниченной длины. В общем случае рекомендуется использовать строки переменной длины.
  • Число - увеличена разрядность числа до 38 разрядов.
  • Тип - служит для определения типов значений. Используется, например, для сравнения типов данных. Не имеет литералов и возвращается функциями Тип(<Имя типа>) или ТипЗнч(<Значение>).

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


Типы данных "Универсальные коллекции" - список (набор) объектов данных любых типов, к значениям которого можно обратиться перебором или по указанному индексу (ключу). Нумерация элементов коллекций начинается с 0. Все указанные типы данных создаются только программно.

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

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

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

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

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

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

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

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

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


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

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

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

Пример использования хранилища значения на примере справочника "Картинки":

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

Для указания разрешения использования процедур следует воспользоваться директивой препроцессора.

позволит указать системе, что процедура Проц1() должна выполняться на сервере, а конструкция

укажет на выполнение Проц2() на клиентской машине.

Для включения использования процедур и функций в сессии внешнего соединения применяется инструкция препроцессора

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

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

К системным перечислениям, например, относятся следующие:

  • КодВозвратаДиалога
  • РежимБегущейСтроки
  • ОбходРезультатаЗапроса
  • РежимПроведенияДокумента
  • ВариантПериода
  • и др.

Не следует путать системные перечисления и системные наборы значений (например системный набор значений "Символы").

Встроенный язык. Встроенные функции

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


Для работы с переменными типа "дата" в платформе предусмотрены следующие встроенные функции языка:

  • День(<дата>)
  • ДеньГода(<дата>)
  • ДеньНедели(<дата>)
  • ДобавитьМесяц(<дата>,<число>)
  • КонецГода(<дата>)
  • КонецДня(<дата>)
  • КонецЧаса(<дата>)
  • ТекущаяДата() и др.

Задание 8

Создайте внешнюю обработку "ПримерРаботыСДатой". На форме обработки разместите реквизиты: "ИсходнаяДата" и "КоличествоДней". По кнопке сформировать организуйте вывод в текстовое поле даты, полученной прибавлением к исходной дате указанного количества дней.

Встроенный язык. Глобальный контекст

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

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

Глобальный контекст:

В разделе "Интерфейсы" мы уже упоминали о программном переключении интерфейсов. Рассмотрим подробнее свойство глобального контекста "ГлавныйИнтерфейс". Тип значения: КоллекцияЭлементовУправленияИнтерфейсами. Используется для доступа к определенным в конфигурации пользовательским интерфейсам. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения .

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

У КоллекцияЭлементовУправленияИнтерфейсами есть метод

<Имена интерфейсов> (необязательный) - тип: Строка, перечисленные через запятую имена интерфейсов, которые следует сделать видимыми.

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

Свойства и методы глобального контекста не являются конструкциями встроенного языка.

Задание 9

Перед завершением работы системы задать вопрос: "Вы уверены, что хотите завершить работу с системой?".

Вопросы и ответы

В курсе О сновы конфигурирования в системе "1С:Предприятие 8.0" в Тест 1 нет условий с которыми надо согласиться и продолжить

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Массив

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

Структура

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

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

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

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

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

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

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

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

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

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

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

COMSafeArray

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

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

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

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

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

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