Отличия встроенного языка от версии 7.7
-
Разработана новая унифицированная объектная модель встроенного языка 1С:Предприятия 8.0. Переименованы, добавлены или удалены многие объекты, свойства, методы и события. Все это привело к несовместимости с языком версии 7.7, но позволило резко расширить возможности платформы, ускорить ее освоение, повысить понятность программных модулей.
-
Введены новые литералы и типы данных, например, литералы Неопределено, Null, Истина и Ложь (тип данных «булево»).
-
Тип «дата» включает в себя время. Для указания пустой даты используется литерал ‘0001010Г.
-
Введено сокращенное вычисление логических выражений.
-
С помощью оператора [...] (квадратные скобки) производится обращение к свойствам объектов по их имени. Таким же образом возможно обращение по индексу или другому параметру к элементам некоторых коллекций.
-
Введены общие модули, в которых не может быть объявлений переменных модуля и нет блока основной программы. В них есть только раздел процедур и функций. Если процедуру или функцию общего модуля объявить с ключевым словом Экспорт, то она будет доступна в любом месте конфигурации, в том числе в модуле приложения и других общих модулях.
-
У многих прикладных объектов (например, справочников, документов…) есть собственные модули объектов, которые не следует путать с модулями форм. Экспортируемые процедуры, функции и переменные модуля объекта дополняют контекст объекта при работе с ним извне средствами встроенного языка.
-
Введен новый тип циклов «Для Каждого» (for each), используемый для обхода элементов коллекций.
-
• Введен оператор Новый, предназначенный для создания новых значений определенных типов. Для обращения к прикладным объектам этот оператор не используется, например, «Спр = Справочники.Контрагенты». Функции СоздатьОбъект больше не существует. »
-
• Новое ключевое слово Выполнить позволяет исполнить программу на встроенному языке, заданную строкой. При этом в ней не может быть процедур и функций. Другое ключевое слово Вычислить позволяет определить значение выражения, заданное строкой.
-
• При вычислении разницы между датами возвращается число секунд между ними.
-
• Введены инструкции препроцессора, задающие место выполнения фрагмента программного модуля. В свойствах общего модуля также можно указать место его выполнения.
-
• Введены системные перечисления и системные наборы значений, дополняющие глобальный контекст.
-
• Теперь нельзя передать контекст, как было раньше, с помощью параметра Контекст. Всегда передается конкретный объект, например, Форма или СправочникОбъект.
-
• Больше нет ключевого слова Далее. Теперь предварительное объявление процедур и функций не требуется, т.е. внутри модуля они могут располагаться в любом порядке.
-
• Текстовый редактор программных модулей поддерживает группировку (свертку) синтаксических конструкций, а также описаний процедур и функций, записанных в виде комментариев.
-
• Введена технология контекстной подсказки, предназначенная для ускорения написания программы и уменьшения количества ошибок.
Изменения во встроенных функциях, свойствах и методах глобального контекста:
-
• Добавлены математические функции Sin, Cos, Tan, ASin, ACos, ATan, Exp, Log (натуральный логарифм), LoglO (десятичный логарифм), Pow (возведение в степень), Sqrt (квадратный корень).
-
• Для получения типа значения используется функция ТипЗнч(), которая возвращает объект специального типа «Тип». Для получения типа по его строковому представлению используется функция Тип().
-
Вместо команды ОткрытьФорму для просмотра значений или объектов (справочников, документов и т.д.) можно применять команду ОткрытьЗначение. Для открытия нужной формы объекта также применяются методы, аналогичные ПолучитьФорму() и метод Открыть() объекта Форма.
-
Доступ к внешним обработкам производится не через ОткрытьФорму, как было в версии 7.7, а через менеджер внешних обработок, который содержится в свойстве ВнешниеОбработки глобального контекста.
-
Расширены возможности форматирования, для чего существуют функции Формат, НСтр, ПредставлениеПериода.
-
Добавлены или изменены события ПередНачаломРаботыСистемы, ПриНачалеРаботыСистемы, ПередЗавершениемРаботыСистемы и ПриЗавершенииРаботыСистемы. Добавлены процедуры ПрекратитьРаботуСистемы и ЗаблокироватьРаботуПользователя.
-
Функции КаталогИБ и КаталогПользователя удалены, поскольку теперь эти каталоги существуют не всегда.
-
Изменена функция ПравоДоступа и введена новая функция РольДоступна.
-
Функция ЗаголовокСистемы заменена на функции УстановитьЗаголовокСистемы и ПолучитьЗаголовокСистемы.
-
Приемы работы с монопольным режимом изменились. Введена функция МонопольныйРежим и процедура УстановитьМонопольныйРежим.
-
Для работы с объектами, помеченными на удаление, существуют процедуры и функции НайтиПомеченныеНаУдаление, НайтиПоСсьлкам, УдалитьОбъекты.
-
Вместо функции ОбработкаОжидания введены функции ПодключитьОбработчикОжидания и ОтключитьОбработчикОжидания.
-
Для работы со справочной системой по конфигурации введены новые функции ОткрытьСправку, ОткрытьСодержаниеСправки, ОткрытьИндексСправки.
-
Функция РабочаяДата() заменена на свойство глобального контекста РабочаяДата, которое доступно для записи в случае, если свойство ИспользованиеРабочейДаты имеет значение РежимРабочейДаты.Назначать.
-
Функции ПустоеЗначение больше не существует.
-
Функции ДатаЧисло, ДатаМесяц, ДатаГод заменены на День, Месяц, Год. Так как значения типа «дата» включают в себя время, то добавлены аналогичные функции для извлечения времени из даты: Час, Минута, Секунда.