Единый справочник по стандартной библиотеке и объектам движка: глобальные функции,
типы, объекты и перечисления — с параметрами, возвращаемыми значениями и свойствами.
Источник истины — код в src/: справочник описывает реализованное поведение, а не
эталонный C#-OneScript. Примеры использования — в README и
examples/, описание синтаксиса языка — в
bsl-surface.md. При изменении API обновляйте этот справочник в
том же изменении (правило 9 в AGENTS.md).
Имя(Параметр: Тип)— обязательный параметр;Параметр?— необязательный;…— произвольное число аргументов. Столбец «Возвращает»:Типили—(значения нет).- Имена функций, методов и свойств регистронезависимы. В таблицах русское имя — первым,
английский алиас — через
/(Сообщить / Message). В заголовках разделов через/указано рабочее английское имя, если оно есть у API (для некоторых типов английское имя — только перевод; это оговорено в разделе). - Пометки окружения:
[Node]— только Node.js/CLI;[браузер]— только браузерная сборка; без пометки — общий stdlib (везде). - Свойства объектов: «Доступ» —
чтение,записьиличтение/запись. Объекты создаются черезНовый <Тип>(…); индексация и итерация описаны под таблицами. Любое— значение любого типа;Объект— объект BSL.- Неочевидные ограничения и расхождения с 1С даны примечаниями
>под таблицами.
- Вывод, пауза и базовые значения
- Строки
- Числа, математика и даты
- Формат
- JSON
- Битовые операции
- Типы значений
- Двоичные данные и кодировки
- Файлы (только Node)
- Сценарии и модули
- Встроенные функции языка
- Система и окружение
- Коллекции
- Перечисления
- НаправлениеПоиска / SearchDirection
- СтатусСообщения / MessageStatus
- ХешФункция / HashFunction
- ЦветКонсоли / ConsoleColor
- КодировкаТекста / TextEncoding
- СпециальнаяПапка / SpecialFolder
- ТипДиска / DriveType
- НаправлениеСортировки / SortDirection
- СпособКодированияСтроки / StringEncodingMethod
- СостояниеФоновогоЗадания / BackgroundJobState
- ПорядокБайтов / ByteOrder
- ТипПлатформы / PlatformType
- РасположениеПеременнойСреды / EnvironmentVariableTarget
- Символы
- Двоичные данные: объекты
- Значения и типы
- Инструменты
Все функции ниже входят в общий stdlib и доступны и в Node, и в браузере, поэтому пометки окружения не нужны. Имена функций регистронезависимы (сообщить = Сообщить).
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
Сообщить / Message |
Текст?: Любое, Статус?: СтатусСообщения |
— | Выводит текст в консоль; уровень задаёт статус. |
Новый / New |
Тип: Строка | Тип, Аргументы…: Любое |
Объект | Динамический конструктор зарегистрированного типа. |
Приостановить / Sleep |
Миллисекунды?: Число |
— | Кооперативная пауза текущего логического потока. |
КраткоеПредставлениеОшибки / BriefErrorDescription |
Ошибка: ИнформацияОбОшибке | Любое |
Строка | Краткое описание ошибки. |
ПодробноеПредставлениеОшибки / DetailErrorDescription |
Ошибка: ИнформацияОбОшибке | Любое |
Строка | Подробное описание ошибки. |
СообщитьприводитТекстк строке (без аргумента — пустая строка).Статус— значение перечисленияСтатусСообщения(см. Перечисления):Информация→console.info,Внимание→console.warn,Важное/ОченьВажное→console.error, остальные значения и не-перечисления →console.log. В CLIwarn/errorидут в stderr.Новыйв форме функции:Новый("Массив", 3)илиНовый(Тип("Массив"), 3); в форме оператора:Новый Массив(3). Имя типа регистронезависимо; неизвестное имя — исключениеТип '<имя>' не найден. Доступны типы из разделов Коллекции, Двоичные данные: объекты, Интеграции: HTTP, Инструменты, а также классы подключённых модулей.Приостановить— асинхронная пауза в миллисекундах (по умолчанию 0), приостанавливает только текущий логический поток: страница и другие фоновые задания продолжают работу. Отрицательное значение — исключение «Неверное значение аргумента: Приостановить», нечисловое — «Нельзя преобразовать к Числу». В xUnit-раннере не поддерживается (см. Тестирование).КраткоеПредставлениеОшибкииПодробноеПредставлениеОшибкивозвращают одно и то же: строкуОписаниеперехваченного объектаИнформацияОбОшибке(см. Встроенные функции языка), для прочих значений — их строковое представление. Вложенные причины (Cause) не реализованы.
Позиции символов — с 1, как в 1С; длина и позиции считаются в кодовых единицах UTF-16.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
Строка / String |
Значение?: Любое |
Строка | Строковое представление значения; без аргумента — пустая строка. |
Число / Number |
Значение: Любое |
Число | Приведение к числу: булево → 0/1, Null/Неопределено/пустая строка → 0, строка — через Number. |
СтрДлина / StrLen |
Строка: Строка |
Число | Длина строки. |
ВРег / Upper |
Строка: Строка |
Строка | Верхний регистр. |
НРег / Lower |
Строка: Строка |
Строка | Нижний регистр. |
СокрЛП / TrimAll |
Строка: Строка |
Строка | Убирает пробельные символы с обоих концов. |
СокрЛ / TrimL |
Строка: Строка |
Строка | Убирает пробельные символы слева. |
СокрП / TrimR |
Строка: Строка |
Строка | Убирает пробельные символы справа. |
ПустаяСтрока / IsBlankString |
Строка: Строка |
Булево | Истина, если строка пуста или состоит из пробельных символов. |
Лев / Left |
Строка: Строка, Длина: Число |
Строка | Первые Длина символов. |
Прав / Right |
Строка: Строка, Длина: Число |
Строка | Последние Длина символов. |
Сред / Mid |
Строка: Строка, Позиция: Число, Длина: Число |
Строка | Подстрока с позиции Позиция (с 1) длиной Длина. |
Найти / Find |
Строка: Строка, Подстрока: Строка |
Число | Позиция первого вхождения (с 1) или 0. |
СтрЗаменить / StrReplace |
Строка: Строка, Поиск: Строка, Замена: Строка |
Строка | Замена всех вхождений. |
СтрЧислоВхождений / StrOccurrenceCount |
Строка: Строка, Подстрока: Строка |
Число | Число вхождений; пустая подстрока → 0. |
СтрНачинаетсяС / StrStartsWith |
Строка: Строка, Начало: Строка |
Булево | Начинается ли строка с указанной подстроки. |
СтрЗаканчиваетсяНа / StrEndsWith |
Строка: Строка, Конец: Строка |
Булево | Заканчивается ли строка указанной подстрокой. |
СтрРазделить / StrSplit |
Строка: Строка, Разделитель: Строка |
Массив | Делит строку на Массив; пустой разделитель — по символам. |
СтрСоединить / StrJoin |
Строки: Массив, Разделитель?: Строка |
Строка | Соединяет элементы массива через разделитель (по умолчанию пустой). |
Символ / Char |
Код: Число |
Строка | Символ по коду UTF-16. |
КодСимвола / CharCode |
Строка: Строка, Позиция?: Число |
Число | Код символа в позиции (с 1, по умолчанию 1). |
НСтр / NStr |
Строка: Строка |
Строка | Извлекает текст ru='…' из строки локализации. |
ТРег / Title |
Строка: Строка |
Строка | Первая буква каждого слова заглавная, остальные строчные. |
СтрЧислоСтрок / StrLineCount |
Строка: Строка |
Число | Число строк (разделитель — LF). |
СтрПолучитьСтроку / StrGetLine |
Строка: Строка, НомерСтроки: Число |
Строка | Строка по номеру (с 1). |
СтрНайти / StrFind |
Строка: Строка, Подстрока: Строка, Направление?: НаправлениеПоиска, НачальнаяПозиция?: Число, НомерВхождения?: Число |
Число | Позиция N-го вхождения (с 1) или 0; умеет искать с конца. |
СтрШаблон / StrTemplate |
Шаблон: Строка, Значение1…: Любое |
Строка | Подставляет аргументы вместо %1, %2, … |
Строка(Дата)даётДД.ММ.ГГГГ Ч:ММ:СС(час без ведущего нуля, компоненты по UTC); булево —Истина/Ложь;Null/Неопределено— пустая строка; объекты — собственное представление (Тип, перечисления, UUID,СписокЗначений,Обещание,Сценарий), у остальных — JavaScript-представление ([object Object]дляМассив,Структураи т. п.).Числобросает исключение для нечисловой строки (Нельзя преобразовать к Числу: 'abc') и для даты/объекта.Лев/Прав/Средиспользуютslice: некорректные длины дают пустую или обрезанную строку, исключений нет;СредбезДлинавозвращает пустую строку.Найтиищет только с начала; третий аргумент (НаправлениеПоиска) не поддерживается — для поиска с конца используйтеСтрНайти.Найти(Строка, "")= 1,Найти(Строка, "нет")= 0.СтрРазделитьне поддерживает отключение пустых элементов: пустые части сохраняются ("a,,b"→ 3 элемента).СтрСоединитьпреобразует элементы черезСтрока; первый аргумент должен быть объектом (обычноМассив), не-объект — исключение, объект без итерации даёт пустую строку.СтрНайти: пустая подстрока → 1; пустая строка при непустой подстроке → 0; направление по умолчаниюСНачала(можноНаправлениеПоиска.СКонцаили строкой);НачальнаяПозицияпо умолчанию 1 (при поиске с конца — длина строки),0трактуется как «не задано», отрицательное или больше длины — исключение «Недопустимое значение начальной позиции»;НомерВхожденияпо умолчанию 1, значение 0 — исключение, отрицательное — 0.СтрШаблонзаменяет только метки%N(N ≥ 1); отсутствующий аргумент даёт пустую строку,%%спецпоследовательностью не является.КодСимволавне границ строки возвращаетNaN.НСтрпонимает только языкruи удвоенные кавычки''внутри значения; при отсутствииruвозвращает исходную строку.СтрЧислоСтрок/СтрПолучитьСтрокуделят только по LF;Возврат каретки(CR) в конце строки сохраняется.СтрПолучитьСтрокувне диапазона возвращает пустую строку.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
Мин / Min |
Значения…: Число |
Число | Минимум аргументов. |
Макс / Max |
Значения…: Число |
Число | Максимум аргументов. |
Окр / Round |
Число: Число |
Число | Округление до целого. |
Цел / Int |
Число: Число |
Число | Отбрасывание дробной части (к нулю). |
Pow |
Основание: Число, Степень: Число |
Число | Возведение в степень с decimal-точностью 1С. |
ТекущаяДата / CurrentDate |
— | Дата | Текущий момент. |
ТекущаяУниверсальнаяДата / CurrentUniversalDate |
— | Дата | Текущий момент (реализация совпадает с ТекущаяДата). |
Дата / Date |
Год?: Число, Месяц?: Число, День?: Число, Час?: Число, Минута?: Число, Секунда?: Число |
Дата | Конструирует дату из числовых компонент. |
Мин/Макс— variadic; аргументы приводятся к числу (Число); без аргументов возвращаютInfinity/-Infinity.Окр/Целпринимают только одно значение: разрядность и режим округления 1С не поддерживаются (второй аргумент игнорируется).Окрокругляет половину в сторону+∞(JSMath.round), поэтомуОкр(-2.5)= -2, аОкр(2.5)= 3.Pow— единственная функция раздела без русского алиаса. Целая неотрицательная степень считается точно в decimal (до 29 значащих цифр); в остальных случаях —Math.powс округлением до 15 значащих цифр.Дата: месяц — с 1, по умолчанию месяц и день = 1, время = 0. Компоненты трактуются как UTC и так же выводятся (Строка), поэтомуСтрока(Дата(2026, 1, 5, 10, 30, 0))=05.01.2026 10:30:00. Год задавайте явно: без него получается 1900 (особенностьDate.UTC(0, …)); для дат из литералов ('20260101') конструктор не нужен.ТекущаяДатаиТекущаяУниверсальнаяДатаобе возвращаютnew Date()— один и тот же текущий момент; при выводе компоненты берутся по UTC (для московского времени сдвиг −3 часа).
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
Формат / Format |
Значение: Любое, ФорматнаяСтрока?: Строка |
Строка | Форматирует число, дату или булево по форматной строке. |
Форматная строка — параметры вида
Имя=Значение, разделённые;; порядок любой, неизвестные параметры игнорируются, имена параметров чувствительны к регистру (ЧДЦ, а нечдц). Строковые значения можно брать в одинарные или двойные кавычки. Без форматной строки (или пустой) возвращаетсяСтрока(Значение).
| Параметр | Значение | Действие |
|---|---|---|
ЧЦ |
целое | Общее число разрядов; при переполнении целая и дробная части заменяются девятками; работает вместе с ЧДЦ. |
ЧДЦ |
целое | Число знаков после запятой; отрицательное → 0; без параметра число не округляется. |
ЧН |
строка | Текст для нулевого значения; без параметра ноль форматируется как обычно. |
ЧРД |
символ | Разделитель дробной части (по умолчанию .; при локали ru… — ,). |
ЧРГ |
символ | Разделитель групп разрядов (по умолчанию ,; при локали ru… — неразрывный пробел). |
ЧГ |
0 |
ЧГ=0 отключает группировку по 3 разряда; любое другое значение включает. |
ЧВН |
— | Дополнять целую часть нулями до ЧЦ. |
ЧО |
0–4 | Вид отрицательного числа: 0 → (n), 2 → - n, 3 → n-, 4 → n -; 1 и иное → -n. |
Л |
локаль | ru… → , и неразрывный пробел; иначе . и ,. |
| Параметр | Действие |
|---|---|
БИ |
Текст для Истина (по умолчанию Истина). |
БЛ |
Текст для Ложь (по умолчанию Ложь). |
| Параметр | Значение | Действие |
|---|---|---|
ДФ |
шаблон | Собственный формат даты (токены — ниже). |
ДЛФ |
Д, В, ДВ |
Локальный формат: только дата, только время, дата и время. |
В
ДФподдерживаются токеныд,дд,М,ММ,гг,гггг,Ч,ЧЧ(24 часа),м,мм,с,сси эквивалентные латинские (d,M,y,H,m,s); прочие символы выводятся как есть. Токеныч/h(час без ведущего нуля) не поддерживаются — выводятся буквально; используйтеЧ/H. Компоненты даты берутся по UTC. Числа безЧДЦвыводятся какString(число)без округления (например,0.1 + 0.2→0.30000000000000004); сЧДЦ— округление half-away-from-zero.ЧЦбезЧВНне дополняет целую часть нулями.ЧГподдерживает только включение/выключение группировки по 3 разряда — настраиваемый размер групп не реализован;ДП(текст пустой даты) иДД(длинный формат даты) не поддерживаются. Для булева используются толькоБИ/БЛ, остальные параметры игнорируются. Для строк и прочих типов форматная строка игнорируется — возвращаетсяСтрока(Значение).
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
ЗаписатьJSON / WriteJSON |
Значение: Любое |
Строка | Сериализует значение в JSON-строку. |
ПрочитатьJSON / ReadJSON |
Строка: Строка |
Любое | Разбирает JSON-строку в значение. |
При записи:
| BSL-значение | JSON |
|---|---|
Структура, ФиксированнаяСтруктура |
объект; ключи — в нижнем регистре |
Массив и другие объекты с итерацией элементов |
массив |
ТаблицаЗначений |
массив массивов (строка → массив значений колонок) |
Соответствие |
массив ключей (значения не сериализуются) |
Число, Строка, Булево |
соответствующее JSON-значение |
Дата |
строка ISO 8601 (UTC), например "2026-01-05T10:30:15.000Z" |
Null, Неопределено |
null |
СписокЗначений |
массив элементов; пустой → [], непустой → исключение (ЭлементСпискаЗначений не сериализуется) |
прочие объекты (УникальныйИдентификатор и т. п.) |
исключение ЗаписатьJSON: тип '<имя>' не сериализуется |
При чтении: JSON-объект → Структура, массив → Массив, число → Число, строка → Строка, true/false → Булево, null → Null.
ПрочитатьJSONпринимает только строку; при синтаксической ошибке бросает исключение. Ключи прочитанных объектов хранятся в нижнем регистре, доступ к ним регистронезависим (как уСтруктуры). ОбъектныеЗаписьJSON/ЧтениеJSON(с потоком/параметрами) не реализованы — только функции с одним аргументом. НепустойСписокЗначенийи объекты без итерации элементов не сериализуются; для объекта используйтеСтруктуру.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
ПобитовоеИ / BitAnd |
Значение1: Число, Значение2: Число |
Число | Поразрядное И. |
ПобитовоеИли / BitOr |
Значение1: Число, Значение2: Число |
Число | Поразрядное ИЛИ. |
ПобитовоеНе / BitNot |
Значение: Число |
Число | Поразрядное НЕ. |
ПобитовоеИНе / BitAndNot |
Значение1: Число, Значение2: Число |
Число | Значение1 И НЕ Значение2. |
ПобитовоеИсключительноеИли / BitXor |
Значение1: Число, Значение2: Число |
Число | Поразрядное исключающее ИЛИ. |
ПобитовыйСдвигВлево / BitShiftLeft |
Значение: Число, Смещение: Число |
Число | Сдвиг влево на Смещение бит. |
ПобитовыйСдвигВправо / BitShiftRight |
Значение: Число, Смещение: Число |
Число | Сдвиг вправо на Смещение бит. |
ПроверитьБит / CheckBit |
Значение: Число, НомерБита: Число |
Булево | Установлен ли бит с номером НомерБита. |
УстановитьБит / SetBit |
Значение: Число, НомерБита: Число, Бит: Число |
Число | Устанавливает бит при Бит=1, иначе сбрасывает. |
ПроверитьПоБитовойМаске / CheckByBitMask |
Значение: Число, Маска: Число |
Булево | Все биты маски установлены в значении. |
Все аргументы и результаты — 32-битные беззнаковые (
uint32): значения приводятся по модулю 2³², результат в диапазоне 0…4294967295 (например,ПобитовоеНе(0)= 4294967295,ПобитовоеИ(-1, 5)= 5). Смещение у сдвигов — целое 0…31, иначе исключение «Неверное значение аргумента: <значение>». УПроверитьБит/УстановитьБитномер бита не проверяется: используется JS-сдвиг по модулю 32 (ПроверитьБит(5, 32)=ПроверитьБит(5, 0),УстановитьБит(0, 33, 1)= 2).УстановитьБитустанавливает бит только приБитровно 1; любое другое значение сбрасывает бит.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
Тип / Type |
ИмяТипа: Строка | Тип |
Тип | Создаёт значение типа по имени. |
ТипЗнч / TypeOf |
Значение: Любое |
Тип | Возвращает тип значения. |
Тип понимает двуязычные имена и приводит их к каноническому русскому:
| Принимаемые имена | Каноническое имя |
|---|---|
Число, Number |
Число |
Строка, String |
Строка |
Булево, Boolean |
Булево |
Дата, Date |
Дата |
Неопределено, Undefined |
Неопределено |
Null |
Null |
Массив, Array |
Массив |
Структура, Structure |
Структура |
Соответствие, Map |
Соответствие |
ФиксированныйМассив, FixedArray |
ФиксированныйМассив |
ФиксированнаяСтруктура, FixedStructure |
ФиксированнаяСтруктура |
ФиксированноеСоответствие, FixedMap |
ФиксированноеСоответствие |
Тип, Type |
Тип |
ИнформацияОбОшибке, ErrorInfo |
ИнформацияОбОшибке |
УникальныйИдентификатор, UUID |
УникальныйИдентификатор |
Имена сравниваются по каноническому виду и регистронезависимы только в этом списке:
Тип("число") = Тип("Number")— истина. Незнакомое имя не является ошибкой:Тип("Фу")вернёт типФу, при этомТип("Фу") <> Тип("фу").Строка(Тип("Массив"))=Массив; у значенияТипнет свойств и методов, индексация недоступна. Подробнее о значенииТип— Значения и типы.ТипЗнчдля примитивов возвращаетЧисло,Строка,Булево,Дата,Null,Неопределено; для объектов — собственное имя типа (Массив,Структура,ТаблицаЗначений,УникальныйИдентификатор,Сценарий,Обещание,ИнформацияОбОшибкеи т. д.); для перечисления — имя перечисления (например,СтатусСообщения); для самого типа —Тип.
Глобальные функции преобразования между строками, Hex- и Base64-представлениями,
буферами (БуферДвоичныхДанных/BinaryDataBuffer) и неизменяемыми данными
(ДвоичныеДанные). Объекты этих типов, их конструкторы, свойства и методы описаны
в разделе Двоичные данные: объекты.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
ПолучитьБуферДвоичныхДанныхИзСтроки / GetBinaryDataBufferFromString |
Текст: Строка, Кодировка?: КодировкаТекста | Строка, ДобавлятьBOM?: Булево |
БуферДвоичныхДанных |
Кодирует строку в байты; BOM добавляется только при ДобавлятьBOM = Истина |
ПолучитьСтрокуИзБуфераДвоичныхДанных / GetStringFromBinaryDataBuffer |
Буфер: БуферДвоичныхДанных, Кодировка?: КодировкаТекста | Строка |
Строка |
Декодирует байты буфера; BOM распознаётся автоматически |
ПолучитьДвоичныеДанныеИзСтроки / GetBinaryDataFromString |
Текст: Строка, Кодировка?: КодировкаТекста | Строка, ДобавлятьBOM?: Булево |
ДвоичныеДанные |
Кодирует строку в ДвоичныеДанные; правила BOM те же, что у буфера |
ПолучитьСтрокуИзДвоичныхДанных / GetStringFromBinaryData |
Данные: ДвоичныеДанные, Кодировка?: КодировкаТекста | Строка |
Строка |
Декодирует двоичные данные в строку |
ПолучитьБуферДвоичныхДанныхИзHexСтроки / GetBinaryDataBufferFromHexString |
HexСтрока: Строка |
БуферДвоичныхДанных |
Разбирает Hex-текст; символы не из Hex-алфавита пропускаются, нечётная длина — ошибка |
ПолучитьHexСтрокуИзБуфераДвоичныхДанных / GetHexStringFromBinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
Строка |
Hex-представление в верхнем регистре |
ПолучитьДвоичныеДанныеИзHexСтроки / GetBinaryDataFromHexString |
HexСтрока: Строка |
ДвоичныеДанные |
Hex-текст → двоичные данные |
ПолучитьHexСтрокуИзДвоичныхДанных / GetHexStringFromBinaryData |
Данные: ДвоичныеДанные |
Строка |
Двоичные данные → Hex-строка (верхний регистр) |
ПолучитьБуферДвоичныхДанныхИзBase64Строки / GetBinaryDataBufferFromBase64String |
Base64Строка: Строка |
БуферДвоичныхДанных |
Разбирает Base64; пробельные символы игнорируются, неверные данные дают пустой буфер |
ПолучитьBase64СтрокуИзБуфераДвоичныхДанных / GetBase64StringFromBinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
Строка |
Base64-представление байтов |
ПолучитьДвоичныеДанныеИзBase64Строки / GetBinaryDataFromBase64String |
Base64Строка: Строка |
ДвоичныеДанные |
Base64 → двоичные данные |
ПолучитьBase64СтрокуИзДвоичныхДанных / GetBase64StringFromBinaryData |
Данные: ДвоичныеДанные |
Строка |
Двоичные данные → Base64-строка |
ПолучитьБуферДвоичныхДанныхИзHexБуфераДвоичныхДанных / GetBinaryDataBufferFromHexBinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
БуферДвоичныхДанных |
Байты буфера трактуются как ASCII Hex-текст; байты не из Hex-алфавита пропускаются, нечётный хвост отбрасывается |
ПолучитьHexБуферДвоичныхДанныхИзБуфераДвоичныхДанных / GetHexBinaryDataBufferFromBinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
БуферДвоичныхДанных |
Hex-текст (верхний регистр) в байтах UTF-8 без BOM |
ПолучитьДвоичныеДанныеИзHexДвоичныхДанных / GetBinaryDataFromHexBinaryData |
Данные: ДвоичныеДанные |
ДвоичныеДанные |
ASCII Hex-текст из данных → байты |
ПолучитьHexДвоичныеДанныеИзДвоичныхДанных / GetHexBinaryDataFromBinaryData |
Данные: ДвоичныеДанные |
ДвоичныеДанные |
Hex-текст (верхний регистр) в байтах UTF-8 без BOM |
ПолучитьБуферДвоичныхДанныхИзBase64БуфераДвоичныхДанных / GetBinaryDataBufferFromBase64BinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
БуферДвоичныхДанных |
Байты буфера трактуются как Base64-текст UTF-8 и декодируются |
ПолучитьBase64БуферДвоичныхДанныхИзБуфераДвоичныхДанных / GetBase64BinaryDataBufferFromBinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
БуферДвоичныхДанных |
Base64-текст в байтах UTF-8 без BOM |
ПолучитьДвоичныеДанныеИзBase64ДвоичныхДанных / GetBinaryDataFromBase64BinaryData |
Данные: ДвоичныеДанные |
ДвоичныеДанные |
Base64-текст из данных → байты |
ПолучитьBase64ДвоичныеДанныеИзДвоичныхДанных / GetBase64BinaryDataFromBinaryData |
Данные: ДвоичныеДанные |
ДвоичныеДанные |
Base64-текст в байтах UTF-8 без BOM |
ПолучитьБуферДвоичныхДанныхИзДвоичныхДанных / GetBinaryDataBufferFromBinaryData |
Данные: ДвоичныеДанные |
БуферДвоичныхДанных |
Копия байтов в изменяемый буфер |
ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных / GetBinaryDataFromBinaryDataBuffer |
Буфер: БуферДвоичныхДанных |
ДвоичныеДанные |
Копия байтов буфера в неизменяемые данные |
СоединитьДвоичныеДанные / ConcatBinaryData |
Части: Массив |
ДвоичныеДанные |
Конкатенация массива элементов ДвоичныеДанные (другой тип элемента — ошибка) |
РазделитьДвоичныеДанные / SplitBinaryData |
Данные: ДвоичныеДанные, РазмерЧасти: Число |
Массив |
Делит данные на части указанного размера (последняя может быть короче); РазмерЧасти <= 0 — ошибка |
Параметр Кодировка принимает значение перечисления
КодировкаТекста / TextEncoding или строковую метку
(регистронезависимо); по умолчанию — UTF-8.
Значение Кодировка |
Кодировка | Запись | Чтение |
|---|---|---|---|
КодировкаТекста.Системная / System |
UTF-8 | да | да |
КодировкаТекста.UTF8 / UTF8 |
UTF-8 | да | да |
"utf-8", "utf8" |
UTF-8 | да | да |
КодировкаТекста.UTF8БезBOM / UTF8NoBOM |
UTF-8 без BOM | да; BOM не добавляется даже при ДобавлятьBOM = Истина |
да |
КодировкаТекста.UTF16 / UTF16 |
UTF-16LE | да | да |
"utf-16", "utf16", "utf-16le" |
UTF-16LE | да | да |
"utf-16be" |
UTF-16BE | усечение до младшего байта | да |
КодировкаТекста.ANSI / ANSI |
windows-1251 | усечение до младшего байта | да |
"windows-1251", "cp1251" |
windows-1251 | усечение до младшего байта | да |
КодировкаТекста.OEM / OEM |
cp866 | усечение до младшего байта | да |
"cp866", "ibm866" |
cp866 | усечение до младшего байта | да |
| не задано | UTF-8 | да | да |
Запись корректно реализована только для UTF-8 и UTF-16LE. Для остальных кодировок (ANSI, OEM, UTF-16BE) код каждого символа усекается до младшего байта, поэтому кириллица будет записана неверно; для кириллицы используйте UTF-8 или UTF-16. Чтение ANSI/OEM/UTF-16BE выполняется штатным
TextDecoderи корректно.
При чтении BOM распознаётся автоматически и переопределяет запрошенную кодировку: UTF-8 (
EF BB BF), UTF-16LE (FF FE), UTF-16BE (FE FF), UTF-32LE (FF FE 00 00). Для кодировок без преамбулы (например, windows-1251) BOM не отбрасывается и попадает в результат как символ.
ДобавлятьBOMдействует только при записи и только при значенииИстина.
РазделитьДвоичныеДанныерассчитывает на целый положительный размер части; при дробном значении границы частей округляются.
Файловые функции [Node] регистрируются только в Node/CLI-контексте
(createNodeGlobalContext); в браузерной сборке и в createGlobalContext() их нет
(вызов — ошибка «Неизвестная функция»).
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
ОбъединитьПути / PathCombine |
Часть: Строка, … |
Строка |
Склеивает части пути через node:path.join: пустые части игнорируются, .. нормализуется; без аргументов — "." |
ЧтениеТекста / ReadText |
Путь: Строка |
Строка |
Читает файл целиком как UTF-8; BOM не удаляется (остаётся символом U+FEFF) |
ЗаписьТекста / WriteText |
Путь: Строка, Текст: Строка |
— | Записывает строку в UTF-8 без BOM, перезаписывая файл; каталог должен существовать |
ЗагрузитьСценарий / LoadScript |
Путь: Строка |
Сценарий |
Читает файл, снимает BOM, исполняет тело и возвращает объект Сценарий |
Относительные пути разрешаются от текущего рабочего каталога процесса (CWD), а не от каталога исполняемого скрипта. Импорты
#Использоватьвнутри сценария, наоборот, разрешаются относительно файла сценария (см. Сценарии и модули).
Ошибки файловой системы (
ENOENTи др.) — обычные исключения исполнения: ловятсяПопытка/Исключение, текст доступен черезОписаниеОшибки().
ЗагрузитьСценарийсоздаёт новый экземпляр сценария при каждом вызове: тело исполняется сразу, экспортные методы и переменные доступны через объект, неэкспортные — нет. Второй параметр (Структура параметров) не поддерживается — ошибка «Второй параметр ЗагрузитьСценарий (Структура) не поддерживается». СвойствоИсточникзагруженного сценария — абсолютный путь к файлу.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
ЗагрузитьСценарийИзСтроки / LoadScriptFromString |
Исходник: Строка, Имя?: Строка |
Сценарий |
Разбирает и исполняет исходник в новом сценарии; Имя задаёт путь сценария и базу разрешения его импортов (пустая строка = не задано) |
ТекущийСценарий / CurrentScript |
— | Сценарий |
Текущий исполняемый сценарий: внутри тела или метода загруженного сценария — он сам, иначе сценарий, запущенный через run()/CLI |
СтартовыйСценарий / StartupScript |
— | Сценарий |
Сценарий, переданный в run()/CLI; не меняется при загрузке других сценариев |
ЗагрузитьСценарийИзСтрокидоступна везде (stdlib). Импорты внутри динамического сценария разрешаются относительноИмя(или текущего сценария): в Node — с чтением с диска, в браузере — только из предзагруженных источников (недостающий файл — ошибка «Файл не найден»). Если у контекста нет загрузчика модулей (например,createGlobalContext()), импорт в динамическом сценарии — ошибка «Импорт файлов не поддерживается текущим контекстом исполнения».
ТекущийСценарий().Источниквозвращает путь, переданный при запуске/загрузке, без нормализации: в CLI — аргумент как есть (может быть относительным), уЗагрузитьСценарийИзСтроки— переданноеИмя, уЗагрузитьСценарий— абсолютный путь.
Загрузка файла с диска — это
ЗагрузитьСценарий(только Node), см. Файлы (только Node). Модули, подключаемые директивой#Использовать, — другой механизм (ниже).
Возвращается функциями загрузки сценариев и функциями текущего/стартового сценария;
представляет исполненный модуль BSL: экспортные методы вызываются как методы объекта,
экспортные переменные — как свойства. Основные свойства: Источник/Source,
Каталог/Directory, Имя/Name (только чтение) и экспортные переменные модуля
(чтение/запись). Полное описание типа, свойств и Строка(Сценарий) — в разделе
Сценарий.
| Форма | Синтаксис | Описание |
|---|---|---|
| Импорт файла | #Использовать "<путь>" |
Подключает файл как модуль-синглтон (обращение по имени файла) или как класс (ПриСозданииОбъекта, экземпляры через Новый) |
| Встроенная библиотека | #Использовать asserts |
No-op: Ожидаем уже доступен глобально |
Путь импорта — относительно текущего файла или от
/(корень ФС в Node, корень сервера в браузере). В Node файлы читаются с диска, в браузере — черезfetch; кеш — на один запуск, с защитой от циклов. Порядок секций модуля:#Использовать→Перем→ методы → исполняемый код; импорт после кода — ошибка. Поиск библиотек по имени (lib.config,OSCRIPT_LIB) не поддерживается. В кодеВыполнить/Вычислитьдирективы#не обрабатываются.
Реализованы интерпретатором (src/runtime/interpreter.ts) и поддерживаются парсером.
| Функция/оператор | Синтаксис | Возвращает | Описание |
|---|---|---|---|
Выполнить / Execute |
Выполнить <Исходник: Строка>; |
— | Исполняет операторы из строки в текущей области видимости |
Вычислить / Eval |
Вычислить(<Выражение: Строка>) |
Любое |
Вычисляет выражение в текущей области видимости |
ВызватьИсключение / Raise |
ВызватьИсключение [<Значение>]; |
— | Бросает исключение; без аргумента перевыбрасывает текущее |
ОписаниеОшибки / ErrorDescription |
ОписаниеОшибки() |
Строка |
Текст текущего исключения; вне блока Исключение — "" |
ИнформацияОбОшибке / ErrorInfo |
ИнформацияОбОшибке() |
ИнформацияОбОшибке |
Объект сведений о текущем исключении |
ВызватьСобытие / RaiseEvent |
ВызватьСобытие(<ИмяСобытия: Строка>[, <Параметры?: Массив>]) |
— | Вызывает подписчиков события на объекте текущего модуля |
ДобавитьОбработчик / AddHandler |
ДобавитьОбработчик <Источник>.<Событие>, <Обработчик>; |
— | Подписывает обработчик на событие |
УдалитьОбработчик / RemoveHandler |
УдалитьОбработчик <Источник>.<Событие>, <Обработчик>; |
— | Отписывает обработчик от события |
ЭтотОбъект / ThisObject |
ЭтотОбъект |
Объект |
Объект текущего модуля (для подписки и объектной формы обработчика) |
Выполнить/Вычислитьработают в текущей области видимости: видят локальные переменные и методы модуля. Методы, объявленные вВыполнить, добавляются в модуль. Директивы#в динамическом коде не поддерживаются; ошибки разбора — исключения исполнения (ловятсяПопытка, текст начинается с «Ошибка разбора:»). Неизвестное имя вВычислитьдаётНеопределено, а не ошибку.Возвратвне метода — ошибка.
ВызватьИсключениебез аргумента допустимо только внутри блокаИсключение(иначе ошибка разбора). Если аргумент —ИнформацияОбОшибке, исключение перевыбрасывается с его описанием. Свойства объекта:Описание/Description,ПодробноеОписаниеОшибки/DetailErrorDescription(то же значение),Причина/Cause(всегдаNull); подробнее — в разделе ИнформацияОбОшибке / ErrorInfo.
Формы события:
Источник.СобытиеилиИсточник["Событие"]. Формы обработчика: имя локального метода (находит и неэкспортный метод текущего модуля),Объект.МетодилиОбъект["Метод"](объектная форма требует экспортного метода — в том числе дляЭтотОбъект; иначе при подписке ошибка «Метод объекта не обнаружен»). Источник должен быть объектом, иначе — ошибка исполнения.
Обработчики вызываются синхронно в порядке подписки. Повторная подписка той же пары (источник, событие, объект, метод) не дублирует вызов; отписка от отсутствующей подписки — не ошибка. Второй аргумент
ВызватьСобытие— коллекция, элементы которой передаются обработчикам позиционными аргументами; без него обработчики вызываются без параметров. Исключение в обработчике доходит до кода, вызвавшего событие.
Имена
Вычислить,ОписаниеОшибки,ИнформацияОбОшибке,ВызватьСобытиеобрабатываются интерпретатором до поиска методов и глобальных функций — пользовательские методы с такими именами не будут вызваны.
| Функция | Параметры | Возвращает | Описание |
|---|---|---|---|
ПеременныеСреды / EnvironmentVariables |
— | Соответствие |
Снимок переменных среды процесса: ключи и строковые значения |
ПолучитьПеременнуюСреды / GetEnvironmentVariable |
Имя: Строка |
Строка | Неопределено |
Значение переменной или Неопределено, если её нет |
УстановитьПеременнуюСреды / SetEnvironmentVariable |
Имя: Строка, Значение: Любое |
— | Задаёт переменную (значение приводится к строке); Неопределено/Null удаляют её |
Область действия — только текущий процесс (
РасположениеПеременнойСреды.Процесс). Параметра области у функций нет; значенияПользователь/Машинаперечисления РасположениеПеременнойСреды / EnvironmentVariableTarget не поддерживаются. Изменения видны дочерним процессам, в том числе HTTP-транспорту Node.
[браузер]processотсутствует:ПеременныеСреды()возвращает пустоеСоответствие,ПолучитьПеременнуюСреды()—Неопределено,УстановитьПеременнуюСреды()— no-op (без ошибки).
Те же операции доступны методами объекта
СистемнаяИнформация/SystemInfo(ПеременныеСреды,ПолучитьПеременнуюСреды,УстановитьПеременнуюСреды,ПолучитьПутьПапки); описание объекта — в разделе СистемнаяИнформация / SystemInfo.
Коллекции стандартной библиотеки создаются через Новый <Тип> и доступны и в Node, и в браузере.
Общее для всех: доступ к элементам — Коллекция[Индекс], к именованным свойствам — Объект.Свойство,
вызов методов — Объект.Метод(…). Для Каждого обходит коллекцию в порядке добавления; исключение —
Структура и Соответствие, где обход даёт ключи. Фиксированные варианты после создания доступны
только для чтения. Про Тип/ТипЗнч и имена типов — см. Типы значений.
Создание: Новый Массив / Новый Array — пустой массив; Новый Массив(Размер1, Размер2, …) — многомерный массив
с заданными размерами (размерности — числа, элементы заполняются Неопределено);
Новый Массив(ДругойМассив) — поверхностная копия массива.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
| — | — | — | Предопределённых свойств нет |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
Значение: Произвольный |
— | Добавляет элемент в конец |
Удалить / Delete |
Индекс: Число |
— | Удаляет элемент по индексу, остальные сдвигаются |
Очистить / Clear |
— | — | Удаляет все элементы |
Найти / Find |
Значение: Произвольный |
Число, Неопределено |
Индекс первого элемента, равного значению; Неопределено, если элемент не найден |
Количество / Count |
— | Число |
Текущее число элементов |
ВГраница / UBound |
— | Число |
Верхняя граница индексов, Количество() - 1; у пустого массива -1 |
Индексация: М[Индекс] — чтение и запись, индексы с 0; для многомерного — М[0][0].
Итерация: Для Каждого Элемент Из М.
Границы индексов не проверяются: чтение
М[Индекс]за пределами даётНеопределено, запись за пределами расширяет массив,Удалитьс несуществующим индексом ничего не делает.Новый Массив(5)создаёт 5 элементовНеопределено, а не массив из одного числа5.Новый Массив(ДругойМассив)копирует только верхний уровень: вложенные массивы общие с исходным; при создании по размерностям вложенные массивы — обычныеМассив.
Создание: как у Массива — Новый ФиксированныйМассив / Новый FixedArray (пустой),
Новый ФиксированныйМассив(Размер1, Размер2, …), Новый ФиксированныйМассив(Массив) — копия.
Английский синоним типа — FixedArray.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
| — | — | — | Предопределённых свойств нет |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
Значение: Произвольный |
— | Только чтение: бросает ошибку |
Удалить / Delete |
Индекс: Число |
— | Только чтение: бросает ошибку |
Очистить / Clear |
— | — | Только чтение: бросает ошибку |
Найти / Find |
Значение: Произвольный |
Число, Неопределено |
Как у массива |
Количество / Count |
— | Число |
Как у массива |
ВГраница / UBound |
— | Число |
Как у массива |
Индексация: М[Индекс] — только чтение; запись бросает Индексированное значение доступно только для чтения.
Итерация: Для Каждого Элемент Из М.
Изменяющие методы бросают
Коллекция 'ФиксированныйМассив' только для чтения. Фиксированность поверхностная:М[0][0] = …для многомерного массива работает — вложенные массивы остаются обычнымиМассив; при создании из другого массива копируется только верхний уровень.
Создание: Новый Структура / Новый Structure — пустая; Новый Структура("Ключ1, Ключ2, …", Значение1, Значение2, …) —
ключи задаются строкой через запятую (пробелы по краям отбрасываются), значения — позиционно, недостающие
равны Неопределено; Новый Структура(ДругаяСтруктура) — независимая копия верхнего уровня.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
<Ключ> |
Произвольный |
чтение/запись | Значение по ключу; имя ключа регистронезависимо |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Вставить / Insert |
Ключ: Строка, Значение: Произвольный |
— | Добавляет пару или заменяет значение существующего ключа |
Свойство / Property |
Ключ: Строка |
Булево |
Истина, если ключ есть |
Удалить / Delete |
Ключ: Строка |
— | Удаляет ключ, если он есть |
Очистить / Clear |
— | — | Удаляет все ключи |
Количество / Count |
— | Число |
Число ключей |
Индексация: не поддерживается (С[Ключ] — ошибка); доступ к значениям — через свойство С.Ключ
или Свойство. Итерация: Для Каждого Ключ Из С — ключи.
Ключи регистронезависимы (
С.Ключ,С.КЛЮЧ,С.ключ— одно и то же) и хранятся в нижнем регистре: таким их возвращает обход и такими они попадают в JSON. Обращение к отсутствующему ключу как к свойству — ошибкаПоле объекта не обнаружено: 'Имя'; для проверки наличия используйтеС.Свойство("Имя").
Создание: как у Структуры — Новый ФиксированнаяСтруктура / Новый FixedStructure,
Новый ФиксированнаяСтруктура("Ключ1, Ключ2, …", …), Новый ФиксированнаяСтруктура(ДругаяСтруктура).
Английский синоним типа — FixedStructure.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
<Ключ> |
Произвольный |
чтение | Значение по ключу; имя ключа регистронезависимо |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Вставить / Insert |
Ключ: Строка, Значение: Произвольный |
— | Только чтение: бросает ошибку |
Свойство / Property |
Ключ: Строка |
Булево |
Истина, если ключ есть |
Удалить / Delete |
Ключ: Строка |
— | Только чтение: бросает ошибку |
Очистить / Clear |
— | — | Только чтение: бросает ошибку |
Количество / Count |
— | Число |
Число ключей |
Итерация: Для Каждого Ключ Из С — ключи.
Запись значения по ключу и изменяющие методы бросают
Коллекция 'ФиксированнаяСтруктура' только для чтения. Чтение, обход иСвойствоработают как у обычной структуры.
Создание: Новый Соответствие / Новый Map — пустое; Новый Соответствие(ДругоеСоответствие) — копия.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
| — | — | — | Предопределённых свойств нет |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Вставить / Insert |
Ключ: Произвольный, Значение: Произвольный |
— | Добавляет пару или заменяет значение существующего ключа |
Получить / Get |
Ключ: Произвольный |
Произвольный, Неопределено |
Значение по ключу; Неопределено, если ключа нет |
Удалить / Delete |
Ключ: Произвольный |
— | Удаляет пару, если ключ есть |
Количество / Count |
— | Число |
Число пар |
Индексация: С[Ключ] — чтение и запись; при чтении отсутствующий ключ даёт Неопределено,
при записи — добавляет пару. Итерация: Для Каждого Ключ Из С — ключи.
Ключи сравниваются по значению (
=), а не по строке: строковые ключи регистрозависимы (С["А"]иС["а"]— разные пары), ключом может быть значение любого типа. В отличие отСтруктуры, доступ по имени свойства (С.Ключ) не поддерживается — толькоС[Ключ].
Создание: как у Соответствия — Новый ФиксированноеСоответствие / Новый FixedMap,
Новый ФиксированноеСоответствие(ДругоеСоответствие) — копия. Английский синоним типа — FixedMap.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
| — | — | — | Предопределённых свойств нет |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Вставить / Insert |
Ключ: Произвольный, Значение: Произвольный |
— | Только чтение: бросает ошибку |
Получить / Get |
Ключ: Произвольный |
Произвольный, Неопределено |
Как у обычного соответствия |
Удалить / Delete |
Ключ: Произвольный |
— | Только чтение: бросает ошибку |
Количество / Count |
— | Число |
Число пар |
Индексация: С[Ключ] — только чтение; запись бросает Коллекция 'ФиксированноеСоответствие' только для чтения.
Итерация: Для Каждого Ключ Из С — ключи.
Чтение, обход и
Получитьработают как у обычного соответствия, включаяНеопределенодля отсутствующего ключа.
Создание: Новый СписокЗначений / Новый ValueList — пустой список (аргументы конструктора игнорируются).
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
ТипЗначения / ValueType |
Произвольный |
чтение/запись | Тип (описание типов) значений элементов; в реализации хранится как есть и не проверяется |
ДоступныеЗначения / AvailableValues |
Произвольный |
чтение/запись | Ограничение допустимых значений; в реализации хранится как есть и не проверяется |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
Значение?: Произвольный, Представление?: Строка, Пометка?: Булево, Картинка?: Произвольный |
ЭлементСпискаЗначений |
Добавляет элемент в конец |
Вставить / Insert |
Индекс: Число, Значение?: Произвольный, Представление?: Строка, Пометка?: Булево, Картинка?: Произвольный |
ЭлементСпискаЗначений |
Вставляет элемент в позицию 0…Количество() |
Удалить / Delete |
Индекс: Число или Элемент: ЭлементСпискаЗначений |
— | Удаляет элемент |
Индекс / IndexOf |
Элемент: ЭлементСпискаЗначений |
Число |
Позиция элемента; -1, если элемент не из этого списка |
Количество / Count |
— | Число |
Число элементов |
ВГраница / UBound |
— | Число |
Верхняя граница индексов; у пустого списка -1 |
Получить / Get |
Индекс: Число |
ЭлементСпискаЗначений |
Элемент по индексу; выход за границы — ошибка |
НайтиПоЗначению / FindByValue |
Значение: Произвольный |
ЭлементСпискаЗначений, Неопределено |
Первый элемент с равным значением |
Сдвинуть / Move |
Индекс: Число или Элемент: ЭлементСпискаЗначений, Смещение: Число |
— | Сдвигает элемент на указанное число позиций; выход за диапазон — ошибка |
СортироватьПоЗначению / SortByValue |
Направление?: НаправлениеСортировки |
— | Сортирует по значениям; по умолчанию по возрастанию |
СортироватьПоПредставлению / SortByPresentation |
Направление?: НаправлениеСортировки |
— | Сортирует по представлениям; по умолчанию по возрастанию |
ВыгрузитьЗначения / UnloadValues |
— | Массив |
Новый массив значений элементов |
ЗагрузитьЗначения / LoadValues |
Массив: Массив |
— | Заменяет содержимое значениями массива |
Очистить / Clear |
— | — | Удаляет все элементы |
Скопировать / Copy |
— | СписокЗначений |
Копия списка (значение, представление, пометка, картинка) |
Индексация: СЗ[Индекс] — только чтение элемента; запись бросает
Индексированное значение доступно только для чтения. Итерация: Для Каждого Элемент Из СЗ.
Строка(СЗ)— значения элементов через"; ";Строка(Элемент)— представление (если непустое), иначе значение, а дляНеопределено/Null—<Пустое значение>.Индексвозвращает-1для чужого элемента;Удалить/Сдвинутьдополнительно принимают сам элемент (Удалитьчужого элемента — ошибка «Элемент не принадлежит списку значений»). Направление сортировкиНаправлениеСортировки.Убыв— по убыванию (см. Перечисления).
Создание: возвращается методами Добавить, Вставить, Получить, НайтиПоЗначению; отдельно не создаётся.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Значение / Value |
Произвольный |
чтение/запись | Значение элемента |
Представление / Presentation |
Строка |
чтение/запись | Строковое представление; по умолчанию пустая строка |
Пометка / Check |
Булево |
чтение/запись | Пометка элемента; по умолчанию Ложь |
Картинка / Picture |
Произвольный |
чтение/запись | Картинка элемента; по умолчанию Неопределено |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
ПолучитьИдентификатор / GetID |
— | Число |
Уникальный идентификатор элемента в пределах списка; не меняется при сдвиге и удалении других элементов |
Создание: Новый ТаблицаЗначений / Новый ValueTable — пустая таблица без колонок и строк.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Колонки / Columns |
КоллекцияКолонокТаблицыЗначений |
чтение | Коллекция колонок |
Индексы / Indexes |
ИндексыКоллекции |
чтение | Коллекция индексов (описаний индексируемых колонок) |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
— | СтрокаТаблицыЗначений |
Добавляет строку в конец |
Вставить / Insert |
Индекс: Число |
СтрокаТаблицыЗначений |
Вставляет строку в позицию; индекс вне диапазона — строка добавляется в конец |
Удалить / Delete |
Индекс: Число или Строка: СтрокаТаблицыЗначений |
— | Удаляет строку |
Индекс / IndexOf |
Строка: СтрокаТаблицыЗначений |
Число |
Позиция строки; -1, если строки нет в таблице |
Количество / Count |
— | Число |
Число строк |
Получить / Get |
Индекс: Число |
СтрокаТаблицыЗначений |
Строка по индексу |
Очистить / Clear |
— | — | Удаляет все строки; структура колонок не меняется |
Сдвинуть / Move |
Индекс: Число или Строка: СтрокаТаблицыЗначений, Смещение: Число |
— | Сдвигает строку; выход за диапазон — ошибка |
ВыгрузитьКолонку / UnloadColumn |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
Массив |
Значения колонки по строкам |
ЗагрузитьКолонку / LoadColumn |
Массив: Массив, Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
— | Устанавливает значения по строкам; недостающие элементы массива — Неопределено |
ЗаполнитьЗначения / FillValues |
Значение: Произвольный, Колонки?: Строка |
— | Заполняет указанные колонки (через запятую); пусто или не указано — все колонки |
Итог / Total |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
Число |
Сумма числовых значений колонки; нечисловые игнорируются, для пустой колонки 0 |
Найти / Find |
Значение: Произвольный, Колонки?: Строка |
СтрокаТаблицыЗначений, Неопределено |
Первая строка, где в одной из указанных колонок значение равно искомому |
НайтиСтроки / FindRows |
Отбор: Структура |
Массив |
Строки, у которых значения колонок совпадают с ключами структуры |
Сортировать / Sort |
Правила: Строка |
— | Сортирует по правилам Колонка [Возр или Убыв], …; по возрастанию по умолчанию |
Свернуть / GroupBy |
Группировки: Строка, Суммируемые?: Строка |
— | Группирует строки по колонкам и суммирует числовые значения суммируемых; прочие колонки удаляются |
СкопироватьКолонки / CopyColumns |
Колонки?: Строка |
ТаблицаЗначений |
Новая таблица с копиями указанных колонок, без строк |
Скопировать / Copy |
Строки?: Массив (строк этой таблицы) или Строки?: Структура, Колонки?: Строка |
ТаблицаЗначений |
Копия указанных строк и колонок; без аргументов — полная копия |
Индексация: Т[Индекс] — строка, только чтение (запись по индексу не поддерживается).
Итерация: Для Каждого Строка Из Т — строки.
Колонки и строки нумеруются с 0; неверный индекс строки — ошибка
Значение индекса выходит за пределы диапазона. Имена колонок регистронезависимы и должны быть идентификаторами (буквы, цифры,_; цифра не в начале); дубли и неверные имена — ошибка.Найти/НайтиСтрокивозвращают ссылки на строки таблицы;Свернутьгруппирует по равенству значений колонок, суммирует только числа (нечисловые считаются0) и удаляет колонки вне группировок и сумм. В этой реализацииТипЗначенияколонки не проверяется, аИндексыне ускоряют поиск — они лишь хранят описание. Строки таблицы можно обходить и по колонкам (Для Каждогопо строке даёт значения по колонкам).
Создание: свойство Т.Колонки; отдельно не создаётся.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
| — | — | — | Предопределённых свойств нет |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
Имя: Строка, ТипЗначения?: Произвольный, Заголовок?: Строка, Ширина?: Число |
КолонкаТаблицыЗначений |
Добавляет колонку; заголовок по умолчанию равен имени, ширина — 0 |
Вставить / Insert |
Индекс: Число, Имя: Строка, ТипЗначения?: Произвольный, Заголовок?: Строка, Ширина?: Число |
КолонкаТаблицыЗначений |
Вставляет колонку в позицию |
Удалить / Delete |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
— | Удаляет колонку; её значения удаляются из строк и индексов |
Индекс / IndexOf |
Колонка: КолонкаТаблицыЗначений |
Число |
Позиция колонки; -1, если колонки нет в таблице |
Количество / Count |
— | Число |
Число колонок |
Найти / Find |
Имя: Строка |
КолонкаТаблицыЗначений, Неопределено |
Колонка по имени |
Получить / Get |
Индекс: Число |
КолонкаТаблицыЗначений |
Колонка по индексу |
Сдвинуть / Move |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число, Смещение: Число |
— | Сдвигает колонку; позиция зацикливается по модулю |
Очистить / Clear |
— | — | Удаляет все колонки и их значения |
Индексация: Колонки[Индекс] и Колонки[Имя] — чтение; свойство Т.Колонки.ИмяКолонки также возвращает
колонку (отсутствующая — ошибка Поле объекта не обнаружено). Итерация: Для Каждого Колонка Из Т.Колонки.
Создание: возвращается методами Т.Колонки.Добавить, Вставить, Получить, Найти; отдельно не создаётся.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Имя / Name |
Строка |
чтение/запись | Имя колонки (регистронезависимо при поиске) |
Заголовок / Title |
Строка |
чтение/запись | Заголовок; по умолчанию равен имени |
ТипЗначения / ValueType |
Произвольный |
чтение | Тип (описание типов) значений; только чтение |
Ширина / Width |
Число |
чтение/запись | Ширина колонки; по умолчанию 0 |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
| — | — | — | Предопределённых методов нет |
ТипЗначениятолько для чтения: попытка записи — ошибкаСвойство 'ТипЗначения' не найдено у типа КолонкаТаблицыЗначений. ПрисвоениеИмяменяет имя для поиска и доступа к значениям, но не проверяет уникальность и корректность имени — для контролируемого переименования используйтеУдалить+Добавить.
Создание: возвращается методами Т.Добавить, Т.Вставить, Т.Получить и индексацией Т[Индекс];
отдельно не создаётся.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
<Колонка> |
Произвольный |
чтение/запись | Значение по имени колонки (регистронезависимо) |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Получить / Get |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
Произвольный |
Значение колонки |
Установить / Set |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число, Значение: Произвольный |
— | Устанавливает значение колонки |
Владелец / Owner |
— | ТаблицаЗначений |
Таблица-владелец |
Количество / Count |
— | Число |
Число колонок таблицы |
Индексация: Строка[Индекс] или Строка[ИмяКолонки] — чтение/запись значения.
Итерация: Для Каждого Значение Из Строка — значения в порядке колонок.
Получить/Установитьс несуществующей колонкой бросаютПоле объекта не обнаружено. Обращение к несуществующей колонке через свойство ошибку не бросает: чтение даётНеопределено, а запись сохраняет значение отдельно от колонок (в таблицу и выгрузку оно не попадает).
Создание: свойство Т.Индексы; отдельно не создаётся. Один индекс (ИндексКоллекции) — список имён
индексируемых колонок, создаётся методом Добавить.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
| — | — | — | Предопределённых свойств нет |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
ИменаКолонок: Строка |
ИндексКоллекции |
Создаёт индекс по колонкам (имена через запятую; все должны существовать) |
Удалить / Delete |
Индекс: Число или Индекс: ИндексКоллекции |
— | Удаляет индекс |
Количество / Count |
— | Число |
Число индексов |
Очистить / Clear |
— | — | Удаляет все индексы |
Индексация: Т.Индексы[Индекс] — чтение индекса. Итерация: Для Каждого Индекс Из Т.Индексы.
Индекс (ИндексКоллекции): Индекс[Позиция] — имя колонки (только чтение); итерация — имена колонок;
Строка(Индекс) — имена через ", ". Методов и свойств у индекса нет.
При удалении колонки из таблицы она автоматически убирается из всех индексов. Индексы хранят только описание: поиск и сортировка их не используют.
Создание: Новый ДеревоЗначений / Новый ValueTree — пустое дерево без колонок и строк.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Колонки / Columns |
КоллекцияКолонокТаблицыЗначений |
чтение | Коллекция колонок (тот же тип, что у таблицы значений) |
Строки / Rows |
КоллекцияСтрокДереваЗначений |
чтение | Корневые строки дерева |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Скопировать / Copy |
— | ДеревоЗначений |
Глубокая копия: колонки и все узлы дерева |
Индексация: не поддерживается (Д[Индекс] — ошибка); строки — Д.Строки[Индекс] или Д.Строки.Получить(…).
Для Каждого по дереву не работает (дерево — не коллекция); обходите Д.Строки, а подузлы — Строка.Строки.
Колонки дерева — тот же тип, что у таблицы значений: см. Колонки таблицы значений и Колонка таблицы значений.
Создание: возвращается методами Д.Строки.Добавить, Вставить, Получить, индексацией
Д.Строки[Индекс], а также Строка.Строки.Добавить для подузлов; отдельно не создаётся.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Родитель / Parent |
СтрокаДереваЗначений, Неопределено |
чтение | Родительская строка; у корневой — Неопределено |
Строки / Rows |
КоллекцияСтрокДереваЗначений |
чтение | Подчинённые строки |
<Колонка> |
Произвольный |
чтение/запись | Значение по имени колонки (регистронезависимо) |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Получить / Get |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
Произвольный |
Значение колонки |
Установить / Set |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число, Значение: Произвольный |
— | Устанавливает значение колонки |
Владелец / Owner |
— | ДеревоЗначений |
Дерево-владелец |
Уровень / Level |
— | Число |
Уровень строки: 0 у корневых, далее +1 на каждый подузел |
Индексация: Строка[Индекс] или Строка[ИмяКолонки] — чтение/запись значения.
Для Каждого по строке не работает; для обхода значений используйте Д.Колонки и Строка[Колонка].
РодительиСтроки— только для чтения (запись — ошибкаСвойство '…' доступно только для чтения). Обращение к несуществующей колонке — ошибкаПоле объекта не обнаружено.
Создание: свойство Д.Строки (корневые строки) или Строка.Строки (подузлы); отдельно не создаётся.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Родитель / Parent |
СтрокаДереваЗначений, Неопределено |
чтение | Строка-владелец коллекции; у корневой коллекции — Неопределено |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Добавить / Add |
— | СтрокаДереваЗначений |
Добавляет строку в конец |
Вставить / Insert |
Индекс: Число |
СтрокаДереваЗначений |
Вставляет строку в позицию |
Удалить / Delete |
Индекс: Число или Строка: СтрокаДереваЗначений |
— | Удаляет строку вместе с подузлами |
Индекс / IndexOf |
Строка: СтрокаДереваЗначений |
Число |
Позиция строки; -1, если строки нет в коллекции |
Количество / Count |
— | Число |
Число строк в коллекции |
Получить / Get |
Индекс: Число |
СтрокаДереваЗначений |
Строка по индексу |
Очистить / Clear |
— | — | Удаляет все строки коллекции |
Владелец / Owner |
— | ДеревоЗначений |
Дерево-владелец |
Сдвинуть / Move |
Индекс: Число или Строка: СтрокаДереваЗначений, Смещение: Число |
— | Сдвигает строку; позиция зацикливается по модулю |
ВыгрузитьКолонку / UnloadColumn |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
Массив |
Значения колонки по строкам коллекции |
ЗагрузитьКолонку / LoadColumn |
Массив: Массив, Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число |
— | Устанавливает значения по строкам; недостающие элементы массива — Неопределено |
Итог / Total |
Колонка: КолонкаТаблицыЗначений или Имя: Строка или Индекс: Число, ВключатьПодузлы?: Булево |
Число |
Сумма числовых значений; при ВключатьПодузлы = Истина — рекурсивно по всем подузлам |
Найти / Find |
Значение: Произвольный, Колонки?: Строка, ВключатьПодузлы?: Булево |
СтрокаДереваЗначений, Неопределено |
Первая строка с равным значением; при ВключатьПодузлы = Истина — рекурсивно |
НайтиСтроки / FindRows |
Отбор: Структура, ВключатьПодузлы?: Булево |
Массив |
Строки, у которых значения колонок совпадают с ключами структуры; при ВключатьПодузлы = Истина — рекурсивно |
Сортировать / Sort |
Правила: Строка, СортироватьПодузлы?: Булево |
— | Сортирует по правилам Колонка [Возр или Убыв], …; при СортироватьПодузлы = Истина — рекурсивно |
Индексация: Коллекция[Индекс] — только чтение; запись не поддерживается.
Итерация: Для Каждого Строка Из Д.Строки (или Из Строка.Строки).
Коллекция.Родитель— строка, которой принадлежат подузлы (Д.Строки.Родитель—Неопределено).Найти/НайтиСтроки/Итог/Сортироватьбез флага подузлов работают только с текущим уровнем.
В системе 13 системных перечислений. Каждое зарегистрировано глобально под русским и
английским именем (НаправлениеПоиска и SearchDirection — одно и то же). Значение
перечисления получается как свойство: НаправлениеПоиска.СНачала, СпециальнаяПапка.MyDocuments
(английский алиас значения), ТипДиска.ЖесткийДиск.
Имена перечислений и их значений регистронезависимы:
направлениепоиска.сначала=НаправлениеПоиска.СНачала,ТипДиска.fixed=ТипДиска.ЖесткийДиск.Тип значения — имя перечисления:
ТипЗнч(ТипДиска.ЖесткийДиск)=ТипДиска,Тип("НаправлениеПоиска")=ТипЗнч(НаправлениеПоиска.СНачала).Строка(Значение)— каноническое русское имя:Строка(SearchDirection.FromBegin)=СНачала.Сравнение
=/<>— по типу и имени: равны только значения одного перечисления с одинаковым именем, поэтомуНаправлениеПоиска.СНачала <> ТипДиска.ЖесткийДиск(разные типы). Например,ПорядокБайтов.LittleEndian = ПорядокБайтов.LittleEndian— истина.У значения нет свойств и методов:
.Имя/.Nameне поддерживаются (имя даётСтрока()), индексация недоступна. Обращение к несуществующему значению — исключение «Значение '…' не найдено у перечисления …»; всё это ловитсяПопытка.Часть перечислений объявлена без реализованного API — они помечены ниже как «объявлено, не реализовано»; сами значения при этом доступны, сравниваются и выводятся.
Направление поиска в строке — используется в СтрНайти (3-й аргумент).
| Значение | Англ. алиас | Смысл |
|---|---|---|
СНачала |
FromBegin |
Искать с начала строки (первое вхождение) — по умолчанию |
СКонца |
FromEnd |
Искать с конца строки (последнее вхождение) |
В
СтрНайтинаправление можно передать и строкой:"СНачала"/"FromBegin","СКонца"/"FromEnd"; любая другая строка трактуется какСНачала. Подробнее о функции — в разделе Строки.
Уровень сообщения — 2-й аргумент Сообщить; определяет поток вывода.
| Значение | Англ. алиас | Смысл |
|---|---|---|
БезСтатуса |
WithoutStatus |
Без статуса |
Обычное |
Ordinary |
Обычное сообщение |
Информация |
Information |
Информационное сообщение |
Внимание |
Attention |
Предупреждение |
Важное |
Important |
Важное сообщение |
ОченьВажное |
VeryImportant |
Очень важное сообщение |
Сообщить:Информация→console.info,Внимание→console.warn,Важное/ОченьВажное→console.error,БезСтатуса/Обычноеи не-перечисления →console.log. В CLI предупреждения и ошибки идут в stderr. Подробнее — в Вывод, пауза и базовые значения.
Алгоритм хеширования. Объявлено, не реализовано: функций вычисления хеша в движке нет, значения доступны только для сравнения и вывода.
| Значение | Англ. алиас | Смысл |
|---|---|---|
MD5 |
MD5 |
MD5 |
SHA1 |
SHA1 |
SHA-1 |
SHA256 |
SHA256 |
SHA-256 |
SHA384 |
SHA384 |
SHA-384 |
SHA512 |
SHA512 |
SHA-512 |
CRC32 |
CRC32 |
CRC32 |
Цвет вывода в консоль. Объявлено, не реализовано: окрашивания вывода и функций, принимающих цвет, нет; значения доступны для сравнения и вывода.
| Значение | Англ. алиас | Смысл |
|---|---|---|
Черный |
Black |
Чёрный |
ТемноСиний |
DarkBlue |
Тёмно-синий |
ТемноЗеленый |
DarkGreen |
Тёмно-зелёный |
ТемноБирюзовый |
DarkCyan |
Тёмно-бирюзовый |
ТемноКрасный |
DarkRed |
Тёмно-красный |
ТемноМалиновый |
DarkMagenta |
Тёмно-малиновый |
ТемноЖелтый |
DarkYellow |
Тёмно-жёлтый |
Серый |
Gray |
Серый |
ТемноСерый |
DarkGray |
Тёмно-серый |
Синий |
Blue |
Синий |
Зеленый |
Green |
Зелёный |
Бирюза |
Cyan |
Бирюзовый |
Красный |
Red |
Красный |
Малиновый |
Magenta |
Малиновый |
Желтый |
Yellow |
Жёлтый |
Белый |
White |
Белый |
Кодировка текста для операций с двоичными данными; используется 2-м аргументом функций
ПолучитьБуферДвоичныхДанныхИзСтроки, ПолучитьСтрокуИзБуфераДвоичныхДанных и парных им
(см. Двоичные данные и кодировки).
| Значение | Англ. алиас | Смысл |
|---|---|---|
Системная |
System |
Системная кодировка — в реализации UTF-8 |
UTF8 |
UTF8 |
UTF-8 (BOM — только по флагу) |
UTF8БезBOM |
UTF8NoBOM |
UTF-8 без BOM при любой записи |
UTF16 |
UTF16 |
UTF-16LE |
ANSI |
ANSI |
windows-1251 |
OEM |
OEM |
cp866 |
Точное поведение кодировок при записи и чтении (усечение не-UTF кодировок, автоопределение BOM) — в разделе Кодировки и BOM. Кроме значения перечисления функции принимают и строковую метку (
"utf-8","windows-1251","cp866"и т. п.).
Специальные папки файловой системы — аргумент СистемнаяИнформация.ПолучитьПутьПапки
(см. СистемнаяИнформация / SystemInfo).
| Значение | Англ. алиас | Смысл |
|---|---|---|
МоиДокументы |
MyDocuments |
Каталог документов пользователя |
ДанныеПриложений |
ApplicationData |
Каталог данных приложений (APPDATA или ~/.config) |
ЛокальныйКаталогДанныхПриложений |
LocalApplicationData |
Локальный каталог данных приложений (LOCALAPPDATA или ~/.local/share) |
РабочийСтол |
Desktop |
Рабочий стол |
КаталогРабочийСтол |
DesktopDirectory |
Каталог рабочего стола |
МояМузыка |
MyMusic |
Каталог музыки |
МоиРисунки |
MyPictures |
Каталог изображений |
Шаблоны |
Templates |
Каталог шаблонов |
МоиВидеозаписи |
MyVideos |
Каталог видео |
ОбщиеШаблоны |
CommonTemplates |
Общие шаблоны |
ПрофильПользователя |
UserProfile |
Домашний каталог пользователя |
ОбщийКаталогДанныхПриложения |
CommonApplicationData |
Общий каталог данных приложений (ProgramData или /usr/share) |
Пути вычисляются по переменным среды: для
ДанныеПриложений/ЛокальныйКаталогДанныхПриложенийберётсяAPPDATA/LOCALAPPDATA, если переменная задана, иначе — подкаталог домашнего каталога; остальные пути строятся от домашнего каталога. Каталог не создаётся и на существование не проверяется.
Тип логического диска. Объявлено, не реализовано: API, возвращающего типы дисков, нет;
СистемнаяИнформация.ИменаЛогическихДисков даёт только пути.
| Значение | Англ. алиас | Смысл |
|---|---|---|
Неизвестный |
Unknown |
Тип неизвестен |
НеИмеетКорневойКаталог |
NoRootDirectory |
Нет корневого каталога |
СъемноеЗапоминающееУстройство |
Removable |
Съёмное запоминающее устройство |
ЖесткийДиск |
Fixed |
Жёсткий диск |
СетевойДиск |
Network |
Сетевой диск |
ОптическийДиск |
CDRom |
Оптический диск |
ДискОЗУ |
Ram |
Диск ОЗУ |
Направление сортировки — аргумент методов СписокЗначений.СортироватьПоЗначению и
СортироватьПоПредставлению (см. Коллекции).
| Значение | Англ. алиас | Смысл |
|---|---|---|
Возр |
ASC |
По возрастанию — по умолчанию |
Убыв |
DESC |
По убыванию |
Строковые значения (
"Убыв"и т. п.) эти методы не распознают — передавайте значение перечисления.
Способ кодирования строки. Объявлено, не реализовано: функций URL-кодирования, принимающих это перечисление, нет.
| Значение | Англ. алиас | Смысл |
|---|---|---|
КодировкаURL |
URLEncoding |
Кодирование по правилам URL |
URLВКодировкеURL |
URLInURLEncoding |
URL в URL-кодировке |
Состояние фонового задания — свойство ФоновоеЗадание.Состояние (см.
Фоновые задания).
| Значение | Англ. алиас | Смысл |
|---|---|---|
НеВыполнялось |
NotRunned |
Задание ещё не начинало выполняться |
Активно |
Active |
Задание выполняется |
Завершено |
Completed |
Задание завершилось успешно |
ЗавершеноАварийно |
Failed |
Задание завершилось ошибкой |
Порядок байтов при чтении/записи целых в БуферДвоичныхДанных; значение по умолчанию —
LittleEndian. У перечисления нет отдельных русских имён значений.
| Значение | Англ. алиас | Смысл |
|---|---|---|
LittleEndian |
LittleEndian |
Младший байт первым |
BigEndian |
BigEndian |
Старший байт первым |
Тип платформы — свойство СистемнаяИнформация.ТипПлатформы. У значений нет отдельных
русских имён: русский и английский алиасы совпадают.
| Значение | Англ. алиас | Смысл |
|---|---|---|
Linux_x86 |
Linux_x86 |
Linux, 32-бит |
Linux_x86_64 |
Linux_x86_64 |
Linux, 64-бит |
MacOS_x86 |
MacOS_x86 |
macOS, 32-бит |
MacOS_x86_64 |
MacOS_x86_64 |
macOS, 64-бит |
Windows_x86 |
Windows_x86 |
Windows, 32-бит |
Windows_x86_64 |
Windows_x86_64 |
Windows, 64-бит |
Unknown |
Unknown |
Неизвестная платформа |
Область переменной среды. Объявлено, не реализовано: функции ПеременныеСреды,
ПолучитьПеременнуюСреды, УстановитьПеременнуюСреды работают только с процессом и
область не принимают (см. Система и окружение).
| Значение | Англ. алиас | Смысл |
|---|---|---|
Процесс |
Process |
Переменные текущего процесса |
Пользователь |
User |
Переменные пользователя |
Машина |
Machine |
Переменные машины |
Глобальный объект Символы / Chars — контейнер строковых констант (не значение-тип).
Значения доступны как свойства и являются обычными строками.
| Константа | Англ. алиас | Смысл | Код UTF-16 |
|---|---|---|---|
ПС |
LF |
Перевод строки | 10 |
ВК |
CR |
Возврат каретки | 13 |
ВТаб |
VTab |
Вертикальная табуляция | 11 |
Таб |
Tab |
Табуляция | 9 |
ПФ |
FF |
Перевод страницы | 12 |
НПП |
Nbsp |
Неразрывный пробел | 160 |
Имена констант регистронезависимы:
Символы.ПС=символы.пс=Chars.LF.ТипЗнч(Символы)=Символы. Константы только для чтения; запись — исключение «Свойство '…' недоступно для записи», несуществующая константа — «Свойство '…' не найдено у Символы». Строкой является само значение:СтрДлина(Символы.Таб)= 1, аСимволы.ПС <> Символы.ВК.
Два типа для работы с байтами: изменяемый БуферДвоичныхДанных и неизменяемые
ДвоичныеДанные. Глобальные функции преобразования строк/Hex/Base64 и объектов — в
разделе Двоичные данные и кодировки.
Создание: Новый БуферДвоичныхДанных(Размер: Число) — буфер из Размер нулевых байт
(без аргумента — пустой; отрицательный размер — исключение). Также буферы возвращают
функции ПолучитьБуферДвоичныхДанныхИзСтроки, …ИзHexСтроки, …ИзBase64Строки,
…ИзДвоичныхДанных и методы Прочитать, Перевернуть, Скопировать, Соединить.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Размер / Size |
Число |
чтение | Количество байт в буфере |
ТолькоЧтение / ReadOnly |
Булево |
чтение | Истина, если буфер переведён в режим только для чтения |
ПорядокБайтов / ByteOrder |
ПорядокБайтов |
чтение/запись | Порядок байтов для ПрочитатьЦелое*/ЗаписатьЦелое*; по умолчанию LittleEndian |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Получить / Get |
Индекс: Число |
Число |
Байт по индексу (0–255) |
Установить / Set |
Индекс: Число, Значение: Число |
— | Записывает байт; значение вне 0–255 — исключение |
Записать / Write |
Позиция: Число, Буфер: БуферДвоичныхДанных, Количество?: Число |
— | Копирует в позицию Позиция первые Количество байт из буфера; 0 — весь буфер |
Прочитать / Read |
Позиция: Число, Количество: Число |
БуферДвоичныхДанных |
Новый буфер из Количество байт начиная с Позиция |
Перевернуть / Reverse |
— | БуферДвоичныхДанных |
Новый буфер с байтами в обратном порядке |
Скопировать / Copy |
— | БуферДвоичныхДанных |
Независимая копия буфера |
Соединить / Concat |
Буферы: Массив |
БуферДвоичныхДанных |
Новый буфер — конкатенация элементов массива |
УстановитьТолькоЧтение / SetReadOnly |
— | — | Переводит буфер в режим только для чтения |
ЗаписатьЦелое16 / WriteInt16 |
Позиция: Число, Значение: Число |
— | Записывает 2 байта целого |
ЗаписатьЦелое32 / WriteInt32 |
Позиция: Число, Значение: Число |
— | Записывает 4 байта целого |
ЗаписатьЦелое64 / WriteInt64 |
Позиция: Число, Значение: Число |
— | Записывает 8 байт целого |
ПрочитатьЦелое16 / ReadInt16 |
Позиция: Число |
Число |
Читает беззнаковое целое из 2 байт |
ПрочитатьЦелое32 / ReadInt32 |
Позиция: Число |
Число |
Читает беззнаковое целое из 4 байт |
ПрочитатьЦелое64 / ReadInt64 |
Позиция: Число |
Число |
Читает беззнаковое целое из 8 байт |
ЗаписатьПобитовоеИ / WriteBitwiseAnd |
Позиция: Число, Буфер: БуферДвоичныхДанных, Количество?: Число |
— | Побайтовое И с буфером |
ЗаписатьПобитовоеИли / WriteBitwiseOr |
Позиция: Число, Буфер: БуферДвоичныхДанных, Количество?: Число |
— | Побайтовое ИЛИ с буфером |
ЗаписатьПобитовоеИсключительноеИли / WriteBitwiseXor |
Позиция: Число, Буфер: БуферДвоичныхДанных, Количество?: Число |
— | Побайтовое исключающее ИЛИ с буфером |
ЗаписатьПобитовоеИНе / WriteBitwiseAndNot |
Позиция: Число, Буфер: БуферДвоичныхДанных, Количество?: Число |
— | Побайтовое И с инвертированным буфером (И-НЕ) |
Буфер индексируется:
Буфер[Индекс]— чтение и запись байта (какПолучить/Установить). Чтение за границами возвращаетНеопределено, исключения нет; запись значения вне 0–255 — «Неверное значение аргумента».
Количество = 0(и отсутствие аргумента) уЗаписать/ЗаписатьПобитовое*означает «весь буфер-аргумент».Записатькопирует байты аргумента с его начала и не учитывает никакого смещения.
Прочитать,Перевернуть,Скопироватьсоздают новый независимый буфер и не меняют исходный.Соединитьсобирает результат только из элементовМассив; сам буфер, у которого вызван метод, в результат не добавляется (расхождение с C#-эталоном, где возвращается конкатенация текущего буфера и буфера-аргумента).Соединитьпринимает толькоМассивбуферов, другой тип элемента — исключение.
ЗаписатьЦелое*иЗаписатьПобитовое*приТолькоЧтение = Истинабросают исключение «Буфер предназначен только для чтения»; чтение при этом работает. Целые читаются как беззнаковые (например, послеЗаписатьЦелое16(0, -1)чтение даёт 65535). Порядок байтов для целых берётся только из свойстваПорядокБайтов— необязательного аргумента порядка нет.Сравнение
=/<>двух буферов — побайтовое (по содержимому, не по ссылке).
Создание: только функциями преобразования — через Новый тип не создаётся: типа
ДвоичныеДанные в конструкторе нет — объект создаётся только функциями
ПолучитьДвоичныеДанныеИзСтроки, …ИзHexСтроки, …ИзBase64Строки,
…ИзДвоичныхДанных, ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных,
СоединитьДвоичныеДанные (см. Двоичные данные и кодировки).
Английского алиаса типа нет:
Тип("BinaryData")не канонизируется,Новый BinaryData— «Тип … не найден».
Свойства — нет.
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Размер / Size |
— | Число |
Количество байт |
Размер— именно метод (Данные.Размер()), свойстваРазмернет. Сравнение=/<>— побайтовое; с буфером (БуферДвоичныхДанных) данные не равны. Изменение невозможно: нет ни методов записи, ни индексации.
Создание: функции Тип(ИмяТипа) и ТипЗнч(Значение) (см. Типы значений).
Значение используется для сравнения типов и динамического создания:
Новый(Тип("Массив"), 3).
Свойства — нет. Методы — нет.
Строка(Тип("Массив"))=Массив;ТипЗнч(Тип("Массив"))=Тип. Сравнение=/<>— по имени типа:Тип("Булево") = Тип("Boolean")— истина,Тип("Массив") = ТипЗнч(Новый Массив)— истина.У значения нет свойства
Имя, методов и индексации:.Имя— исключение «Свойство 'Имя' не найдено у типа Тип», индексация — «Индексация недоступна для типа Тип».
Тип()канонизирует только известный список двуязычных имён (см. таблицу в Типы значений); любое другое имя берётся как есть и остаётся регистрозависимым. Поэтому для сравнения указывайте точное каноническое имя:Тип("РегулярноеВыражение") = ТипЗнч(Новый РегулярноеВыражение("a"))— истина, аТип("Regex")даст тип с именемRegexи не будет равен. Незнакомое имя не ошибка:Тип("МойТип")вернёт типМойТип.
Создание: значение перечисления (НаправлениеПоиска.СНачала, КодировкаТекста.UTF8, …)
получается как свойство перечисления; конструктора у него нет (см.
Перечисления).
Свойства — нет. Методы — нет.
Строка(Значение)возвращает каноническое русское имя значения (Строка(ТипДиска.Fixed)=ЖесткийДиск).ТипЗнч(Значение)возвращает имя перечисления (ТипЗнч(ТипДиска.ЖесткийДиск)=ТипДиска). СвойстваИмя/Nameнет — имя получайте черезСтрока(). Сравнение — по типу и имени; индексация недоступна.
Создание: Новый УникальныйИдентификатор() — новый случайный UUID (v4);
Новый УникальныйИдентификатор(Строка: Строка) — UUID из строки. Алиас типа — UUID:
Новый UUID(…).
Свойства — нет. Методы — нет.
Если аргумент —
Неопределено/Null, создаётся новый случайный идентификатор. Строка приводится к нижнему регистру и проверяется по форматуxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; иначе — исключение «Неверный формат УникальногоИдентификатора».Строка(УникальныйИдентификатор)— 36-символьный UUID в нижнем регистре. Сравнение=/<>— по значению, поэтомуНовый УникальныйИдентификатор(Строка(У)) = У— истина. Свойств, методов и индексации нет;ТипЗнч(У)=УникальныйИдентификатор,Тип("UUID")канонизируется в него же.
Загруженный модуль BSL. Создание: только функции загрузки — ЗагрузитьСценарийИзСтроки,
ЗагрузитьСценарий (только Node), ТекущийСценарий, СтартовыйСценарий; тип
Сценарий через Новый не создаётся (см. Сценарии и модули).
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Источник / Source |
Строка |
чтение | Путь, переданный при запуске/загрузке; "", если путь неизвестен |
Каталог / Directory |
Строка |
чтение | Каталог из Источник; "", если пути нет |
Имя / Name |
Строка |
чтение | Имя файла из Источник; "", если пути нет |
| Экспортные переменные модуля | Любое |
чтение/запись | Доступны по имени, как свойства объекта |
Методы — собственных нет; экспортные методы модуля вызываются как методы объекта
(Сценарий.Метод(…)).
Свойства
Путьнет — путь хранится вИсточник. Неэкспортные методы и переменные снаружи недоступны (Метод '…' не найден у типа Сценарий).Строка(Сценарий)=Сценарийлибо представление, заданное методом модуляОбработкаПолученияПредставления(Представление, СтандартнаяОбработка). Индексация недоступна. Английского алиаса типа нет:Тип("Script")не канонизируется.
Сведения о перехваченном исключении. Создание: функция ИнформацияОбОшибке() в блоке
Исключение (см. Встроенные функции языка); тип через Новый
не создаётся. Вне блока Исключение описание пустое.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Описание / Description |
Строка |
чтение | Текст текущего исключения |
ПодробноеОписаниеОшибки / DetailErrorDescription |
Строка |
чтение | То же значение, что и Описание (отдельного стека нет) |
Причина / Cause |
Null |
чтение | Всегда Null: вложенные причины не поддерживаются |
Методы — нет.
ТипЗнч(ИнформацияОбОшибке())=ИнформацияОбОшибке;Тип("ErrorInfo")канонизируется в него же. Свойства только для чтения; неизвестное свойство — исключение.ОписаниеОшибки()возвращает то же значение строкой (см. Встроенные функции языка); для повторного броска объект можно передать вВызватьИсключение. Индексации нет.
Сведения о системе и окружении. Создание: Новый СистемнаяИнформация — аргументы
игнорируются; алиас — SystemInfo.
Свойства (все только для чтения)
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
ИмяКомпьютера / MachineName |
Строка |
чтение | Имя компьютера из переменных среды; может быть пустой строкой |
ВерсияОС / OSVersion |
Строка |
чтение | Платформа и архитектура, например darwin arm64 |
ПолнаяКоманднаяСтрока / FullCommandLine |
Строка |
чтение | Командная строка процесса через пробел |
ИмяЯдра / KernelName |
Строка |
чтение | WindowsNT, Darwin, Linux или Unknown |
Версия / Version |
Строка |
чтение | Версия движка (в текущей сборке — 0.1.0) |
ТипПлатформы / PlatformType |
ТипПлатформы |
чтение | Тип платформы (см. ТипПлатформы) |
ПользовательОС / OSUser |
Строка |
чтение | Имя пользователя из переменных среды |
Это64БитнаяОперационнаяСистема |
Булево |
чтение | Признак 64-битной ОС (английского алиаса нет) |
КоличествоПроцессоров / ProcessorCount |
Число |
чтение | Число процессоров (в браузере — navigator.hardwareConcurrency) |
РазмерСистемнойСтраницы / SystemPageSize |
Число |
чтение | Размер страницы памяти; в реализации — 4096 |
ВремяРаботыСМоментаЗагрузки / TickCount |
Число |
чтение | Время работы системы в миллисекундах |
ИменаЛогическихДисков |
Массив |
чтение | Пути корней дисков (английского алиаса нет) |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
ПолучитьПутьПапки / GetFolderPath |
Папка: СпециальнаяПапка |
Строка |
Путь специальной папки (см. СпециальнаяПапка) |
ПеременныеСреды / EnvironmentVariables |
— | Соответствие |
Снимок переменных среды процесса |
ПолучитьПеременнуюСреды / GetEnvironmentVariable |
Имя: Строка |
Строка | Неопределено |
Значение переменной или Неопределено |
УстановитьПеременнуюСреды / SetEnvironmentVariable |
Имя: Строка, Значение: Любое |
— | Задаёт переменную (Неопределено/Null удаляют её) |
Свойства только для чтения, индексация недоступна.
ПолучитьПутьПапкипринимает значениеСпециальнаяПапка; другой тип — «Неверный тип аргумента». Каталог не создаётся.Методы работы с переменными среды — те же операции, что и глобальные функции
ПеременныеСреды/ПолучитьПеременнуюСреды/УстановитьПеременнуюСреды(см. Система и окружение).В браузере
processотсутствует:ИмяКомпьютера,ПользовательОС,ПолнаяКоманднаяСтрокапустые,ВерсияОС,ИмяЯдра,ТипПлатформы— заглушки,ИменаЛогическихДисков=["/"],УстановитьПеременнуюСреды— no-op.
Тип("SystemInfo")не канонизируется (в списке двуязычных имён его нет): для сравнения используйтеТип("СистемнаяИнформация")илиТипЗнч(Система).
Создание: Новый РегулярноеВыражение(Шаблон?: Строка); без шаблона — пустое выражение
(совпадает с любой строкой). Алиас — Regex.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
ИгнорироватьРегистр / IgnoreCase |
Булево |
чтение/запись | Игнорировать регистр; по умолчанию Истина |
Многострочный / Multiline |
Булево |
чтение/запись | Многострочный режим (^/$ на границах строк); по умолчанию Истина |
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Совпадает / IsMatch |
ВходнаяСтрока: Строка, НачальнаяПозиция?: Число |
Булево |
Есть ли хотя бы одно совпадение |
НайтиСовпадения / Matches |
ВходнаяСтрока: Строка, НачальнаяПозиция?: Число |
КоллекцияСовпаденийРегулярногоВыражения |
Все совпадения начиная с позиции |
Разделить / Split |
ВходнаяСтрока: Строка, Количество?: Число, НачальнаяПозиция?: Число |
Массив |
Делит строку по совпадениям-разделителям |
Заменить / Replace |
ВходнаяСтрока: Строка, Замена: Строка |
Строка |
Заменяет все совпадения |
Свойства
Шаблоннет — сохранённый шаблон недоступен. Регистр и многострочность задаются свойствами, а не аргументом конструктора; по умолчанию оба флага включены.
НачальнаяПозиция— позиция в строке (с 0); по умолчанию 0. ДляСовпадаетиНайтиСовпаденияпоиск начинается с неё; дляРазделитьона задаёт только место начала поиска разделителей — текст до неё попадает в первую часть.
КоличествоуРазделить— максимальное число частей (0 — без ограничения); остаток строки после последнего разделителя всегда становится последней частью.
Заменаподдерживает обратные ссылки$1…$99и$<имя>;$&— всё совпадение.$0(как в .NET/1С) не поддерживается: он остаётся в тексте буквально. Пустые совпадения обрабатываются без зацикливания.Группы нумеруются как в .NET: сначала безымянные в порядке появления (1, 2, …), затем именованные. Группа 0 — всё совпадение. Именованные группы задаются синтаксисом
(?<имя>…); имена распознаются только из латиницы/_(затем буквы/цифры) — группа с кириллическим именем не попадёт в нумерацию .NET, хотя JS-движок её скомпилирует.Некорректный шаблон обнаруживается при первом вызове метода (компиляция при создании не выполняется) и приводит к исключению с текстом ошибки JS-движка.
ТипЗнч(Новый РегулярноеВыражение("a"))=РегулярноеВыражение;Тип("Regex")не канонизируется — для сравнения используйтеТип("РегулярноеВыражение").
Одно совпадение. Создание: только как результат НайтиСовпадения; конструктора нет.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Значение / Value |
Строка |
чтение | Текст совпадения (группа 0) |
Индекс / Index |
Число |
чтение | Позиция совпадения в исходной строке (с 0) |
Длина / Length |
Число |
чтение | Длина совпадения |
Группы / Groups |
КоллекцияГруппРегулярногоВыражения |
чтение | Группы совпадения, включая нулевую |
Методы — нет.
Индексация недоступна;
ТипЗнч(Совпадение)=СовпадениеРегулярногоВыражения.
Одна группа совпадения. Создание: только из коллекции групп; конструктора нет.
Свойства
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Значение / Value |
Строка |
чтение | Текст группы ("", если группа не участвовала) |
Индекс / Index |
Число |
чтение | Позиция группы в исходной строке (с 0) |
Длина / Length |
Число |
чтение | Длина группы |
Имя / Name |
Строка |
чтение | Имя группы; для безымянной — её номер строкой ("1", "2", …), для нулевой — "0" |
Методы — нет.
Индексация недоступна;
ТипЗнч(Группа)=ГруппаРегулярногоВыражения.
Все совпадения. Создание: только как результат НайтиСовпадения; конструктора нет.
Свойства — нет.
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Количество / Count |
— | Число |
Число совпадений |
Коллекция индексируется с 0:
Коллекция[0]→СовпадениеРегулярногоВыражения. Поддерживается обходДля Каждого Совпадение Из Коллекция Цикл … КонецЦикла.ТипЗнч(Коллекция)=КоллекцияСовпаденийРегулярногоВыражения.
Группы одного совпадения. Создание: только как Совпадение.Группы; конструктора нет.
Свойства — нет.
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Количество / Count |
— | Число |
Число групп, включая нулевую |
ПоИмени / FromName |
Имя: Строка |
ГруппаРегулярногоВыражения |
Группа по имени; неизвестное имя — исключение |
Индексируется с 0 (0 — всё совпадение); поддерживается обход
Для Каждого. Нумерация — как в .NET: безымянные группы, затем именованные.ТипЗнч(Коллекция)=КоллекцияГруппРегулярногоВыражения.
Создание: Новый ГенераторСлучайныхЧисел(НачальноеЧисло?: Число). Без аргумента (или при
НачальноеЧисло = 0) генератор неинициализирован — последовательность неповторяема; при
ненулевом начальном числе последовательность детерминирована (mulberry32).
Свойства — нет.
Методы
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
СлучайноеЧисло / RandomNumber |
Минимум?: Число, Максимум?: Число |
Число |
Целое в диапазоне [Минимум, Максимум] включительно |
Значения по умолчанию:
Минимум = 0,Максимум = 4294967295(2³²−1). Оба аргумента должны быть целыми в диапазоне0…4294967295, иначе — исключение «Неверное значение аргумента»;Минимум > Максимум— та же ошибка.СлучайноеЧисло(7, 7)= 7.Одинаковое ненулевое начальное число даёт одинаковую последовательность (в том числе для больших и дробных чисел — берутся младшие 32 бита). Дробное начальное число допустимо. Свойств, индексации и других методов нет;
ТипЗнч(Генератор)=ГенераторСлучайныхЧисел.
Синхронный HTTP-клиент BSL: объекты HTTPСоединение, HTTPЗапрос, HTTPОтвет.
Вызовы блокируют исполнение, как в эталоне. Транспорт зависит от окружения:
[браузер] — синхронный XMLHttpRequest; [Node] — дочерний процесс node -e
с fetch (каждый запрос ≈ 100 мс). В библиотечном createGlobalContext() без
переданного транспорта Новый HTTPСоединение бросает «HTTP-запросы недоступны в
этом окружении»; TS-тип транспорта HttpTransport передаётся в
createGlobalContext(transport). Прокси, произвольные SSL-сертификаты, файловое
тело и потоки не поддерживаются.
Создание: Новый HTTPСоединение(Сервер, Порт, Пользователь, Пароль, Прокси, Таймаут, ЗащищенноеСоединение, ИспользоватьАутентификациюОС) — обязателен только Сервер; необязательные параметры можно пропускать.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Сервер / Host |
Строка |
чтение | Хост из адреса соединения (без пути и порта) |
Порт / Port |
Число |
чтение | Эффективный порт: из аргумента, иначе из адреса, иначе 80/443 |
Пользователь / User |
Строка |
чтение | Имя для basic-auth; по умолчанию "" |
Пароль / Password |
Строка |
чтение | Пароль для basic-auth; по умолчанию "" |
Прокси / Proxy |
Неопределено |
чтение | Прокси не поддерживается, всегда Неопределено |
Таймаут / Timeout |
Число |
чтение | Таймаут запроса в секундах; 0 — без ограничения |
РазрешитьАвтоматическоеПеренаправление / AllowAutoRedirect |
Булево |
чтение/запись | Следовать редиректам; по умолчанию Истина |
ИспользоватьАутентификациюОС / UseOSAuthentication |
Булево |
чтение | Принимается, но транспортом не используется |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Получить / Get |
Запрос: HTTPЗапрос, ИмяФайлаОтвета?: Строка |
HTTPОтвет |
Запрос GET |
ОтправитьДляОбработки / Post |
Запрос: HTTPЗапрос, ИмяФайлаОтвета?: Строка |
HTTPОтвет |
Запрос POST |
Записать / Put |
Запрос: HTTPЗапрос |
HTTPОтвет |
Запрос PUT |
Удалить / Delete |
Запрос: HTTPЗапрос |
HTTPОтвет |
Запрос DELETE |
Изменить / Patch |
Запрос: HTTPЗапрос |
HTTPОтвет |
Запрос PATCH |
ПолучитьЗаголовки / Head |
Запрос: HTTPЗапрос |
HTTPОтвет |
Запрос HEAD; тело не возвращается |
ВызватьHTTPМетод / CallHTTPMethod |
Метод: Строка, Запрос: HTTPЗапрос, ИмяФайлаОтвета?: Строка |
HTTPОтвет |
Произвольный метод; имя приводится к верхнему регистру |
Сервер— адрес с протоколом или без (example.com=http://example.com); допускаются только схемыhttp/https, иначе ошибка. В адресе можно указать путь базы: адрес ресурса разрешается относительно него (URL), абсолютный URL в запросе переопределяет базу.Портиз аргумента переопределяет порт из адреса;0/пропуск — оставить порт адреса, иначе используется 80/443 по схеме. Недопустимый порт — ошибка.
Таймаутзадаётся в секундах (в миллисекунды переводит клиент);[Node]прерывает запрос по таймауту черезAbortSignal.timeout.[браузер]таймаут не применяется, настройкаРазрешитьАвтоматическоеПеренаправлениетоже игнорируется — синхронный XHR сам следует редиректам.[Node]приРазрешитьАвтоматическоеПеренаправление = Ложьответ3xxвозвращается как есть.
Пользователь/Пароль: если хотя бы один непустой, к запросу добавляется заголовокAuthorization: Basic <base64(Пользователь:Пароль)>, перекрывая одноимённый заголовок из запроса.Прокси-аргумент игнорируется.ЗащищенноеСоединение(7-й аргумент): любое значение, кромеНеопределено, — ошибка «Защищенное соединение по произвольным сертификатам не поддерживается…»; используйтеhttpsв адресе.
Тело не отправляется для
GET/HEAD(а такжеCONNECTчерезВызватьHTTPМетод), даже если оно задано в запросе. Ответ4xx/5xx— обычныйHTTPОтвет, а не исключение. Ошибки транспорта оборачиваются в исключение «Не удалось выполнить HTTP-запрос <МЕТОД> : <причина>».
Второй аргумент
ИмяФайлаОтвета(Получить,ОтправитьДляОбработки; третий уВызватьHTTPМетод) принимается для совместимости, но непустое значение — ошибка «Запись ответа в файл не поддерживается». У остальных методов лишние аргументы игнорируются.ТипЗнч(Соединение)=HTTPСоединение.
[браузер]нужен CORS; заголовки, которые браузер запрещает менять (Cookie,User-Agentи т.п.), молча игнорируются; при сетевой ошибке или CORS-отказе — исключение.[Node]передfetchотбрасывает служебные заголовки (Content-Length,Host,Connection,User-Agent,Transfer-Encodingи т.п.), TLS проверяется стандартно для Node; имена заголовков ответа приводятся к видуContent-Type.
Создание: Новый HTTPЗапрос(АдресРесурса, Заголовки); оба аргумента необязательны — по умолчанию адрес "" (база соединения), заголовки — пустое Соответствие.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
АдресРесурса / ResourceAddress |
Строка |
чтение/запись | Абсолютный URL или путь относительно адреса соединения |
Заголовки / Headers |
Соответствие |
чтение/запись | Заголовки запроса; ключи сравниваются с учётом регистра |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
УстановитьТелоИзСтроки / SetBodyFromString |
Текст: Строка, Кодировка?: КодировкаТекста | Строка |
— | Кодирует строку в тело; по умолчанию UTF-8 без BOM |
ПолучитьТелоКакСтроку / GetBodyAsString |
— | Строка | Неопределено |
Тело как текст (UTF-8, BOM распознаётся) |
УстановитьТелоИзДвоичныхДанных / SetBodyFromBinaryData |
Данные: ДвоичныеДанные |
— | Тело из двоичных данных |
ПолучитьТелоКакДвоичныеДанные / GetBodyAsBinaryData |
— | ДвоичныеДанные | Неопределено |
Тело как ДвоичныеДанные |
Заголовкиобязаны бытьСоответствием, иначе ошибка «Неверный тип аргумента: Заголовки должны быть Соответствием». Присвоение свойства замещает объектСоответствиецеликом. КлючиСоответствиясравниваются по значению, для строк — с учётом регистра, поэтому ищите/удаляйте заголовок в том же написании, в каком вставили; при basic-authAuthorizationперекрывается без учёта регистра имени. Пока тело не задано, методыПолучитьТелоКак*возвращаютНеопределено.
Кодировка, переданная в
УстановитьТелоИзСтроки, не запоминается:ПолучитьТелоКакСтрокувсегда декодирует UTF-8 (с учётом BOM).ПолучитьТелоКакДвоичныеДанныевозвращаетДвоичныеДанные(см. Двоичные данные: объекты). Индексация недоступна;ТипЗнч(Запрос)=HTTPЗапрос.
Создание: напрямую не создаётся (Новый HTTPОтвет — «Тип 'HTTPОтвет' не найден»); экземпляр возвращают методы HTTPСоединения.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
КодСостояния / StatusCode |
Число |
чтение | HTTP-статус ответа |
Заголовки / Headers |
Соответствие |
чтение | Заголовки ответа; содержимое Соответствия изменяемо |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
ПолучитьТелоКакСтроку / GetBodyAsString |
Кодировка?: КодировкаТекста | Строка |
Строка | Неопределено |
Тело как текст; по умолчанию кодировка из Content-Type |
ПолучитьТелоКакДвоичныеДанные / GetBodyAsBinaryData |
— | ДвоичныеДанные | Неопределено |
Тело как ДвоичныеДанные |
Закрыть / Close |
— | — | Освобождает тело ответа; идемпотентно |
ПолучитьТелоКакСтрокубез аргумента берётcharsetизContent-Type(по умолчанию UTF-8); явная кодировка перекрывает заголовок. Тело отсутствует (методы возвращаютНеопределено) приHEAD, статусах204/304иContent-Length: 0.
gzip/сжатый ответ нормализуется транспортом: тело приходит распакованным, заголовокContent-Encodingудаляется,Content-Lengthпересчитывается под фактическую длину.
Закрытьосвобождает тело, ноКодСостоянияиЗаголовкиостаются доступны; повторный вызов безопасен. СвойствоЗаголовкитолько для чтения (менять можно содержимоеСоответствия); имена заголовков — как их вернул транспорт ([Node]приводит к видуContent-Type), поиск по имени — с учётом регистра, а служебныеContent-Type/Content-Encoding/Content-Lengthклиент ищет без учёта регистра. Индексация недоступна;ТипЗнч(Ответ)=HTTPОтвет.
Глобальный объект ФоновыеЗадания/BackgroundJobs — единственный экземпляр
МенеджерФоновыхЗаданий; регистрируется в stdlib и доступен и в Node, и в браузере.
Модель кооперативная: задания — логические потоки в одном JS-потоке с общим
состоянием модуля; переключение происходит в точках ожидания и по квантам (~10 мс).
Создание: глобальный объект; собственного конструктора нет (Новый МенеджерФоновыхЗаданий — «Тип … не найден»).
Свойства: нет.
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Выполнить / Execute |
Объект: Объект, ИмяМетода: Строка, Параметры?: Массив, Длительное?: Булево |
ФоновоеЗадание |
Запускает метод объекта в фоновом задании |
Очистить / Clear |
— | — | Очищает реестр заданий |
ОжидатьВсе / WaitAll |
Задания: Массив, Таймаут?: Число |
Булево |
Ждёт завершения всех заданий из массива |
ОжидатьЛюбое / WaitAny |
Задания: Массив, Таймаут?: Число |
Число |
Ждёт первое завершившееся задание |
ОжидатьЗавершенияЗадач / WaitCompletionOfTasks |
— | — | Ждёт все задания реестра; при аварийном — исключение |
ПолучитьФоновыеЗадания / GetBackgroundJobs |
Фильтр?: Структура |
Массив |
Снимок заданий, возможно с фильтром |
ПолучитьТекущее / GetCurrent |
— | ФоновоеЗадание | Неопределено |
Текущее задание (внутри задания) |
Параметры задания —
Массив, его элементы передаются методу позиционными аргументами:Новый Массив(20)— это массив из 20 пустых элементов, а не один аргумент20; один аргумент —Массивиз одного элемента (Параметры.Добавить(20)). Состав массива копируется в момент запуска (значения элементов общие), поэтому дальнейшие изменения массива-источника на задание не влияют.Параметрыдолжны бытьМассивомлибоНеопределено.
Выполнитьсинхронно возвращаетФоновоеЗадание, а исполнение стартует в ближайшем кванте (queueMicrotask): сразу после запуска состояние —НеВыполнялось. Объект —ЭтотОбъектилиСценарий; проверяется наличие метода (Метод объекта не обнаружен). Четвёртый аргументДлительноепринимается для совместимости и не влияет на исполнение.
Таймауты ожиданий — миллисекунды;
0или пропуск — ждать бесконечно; отрицательное значение — ошибка «Неверное значение аргумента: таймаут».ОжидатьВсевозвращаетЛожьпо таймауту (задания продолжают работу); по пустому массиву —Истина.ОжидатьЛюбоевозвращает индекс первого завершившегося задания или-1по таймауту; пустой массив — ошибка «ОжидатьЛюбое: нужен непустой массив заданий».
ОжидатьЗавершенияЗадачдожидается заданий, бывших в реестре на момент вызова; при аварийном завершении бросает исключение со списком методов и описаний (задания остаются в реестре), при успехе удаляет ожидавшиеся задания. Задания, созданные во время ожидания, остаются. Если реестр пуст — сразу возвращаетНеопределено.
Очиститьочищает реестр, но не отменяет уже выполняющиеся задания.
ПолучитьФоновыеЗаданиявозвращает снимокМассив: активные — в порядке запуска, затем завершённые — в порядке завершения. Фильтр —Структурас ключамиСостояние/State(значениеСостояниеФоновогоЗадания),ИмяМетода/MethodName(без учёта регистра),Объект/Object,УникальныйИдентификатор/UUID; неизвестные ключи и значения неверного типа игнорируются.ПолучитьТекущеевнутри задания возвращает самоФоновоеЗадание, вне задания —Неопределено.
Хост после тела скрипта дожидается активных заданий и
Обещаний(flushAsync), поэтому отложенный вывод не теряется. Единственные точки переключения основного скрипта — ожидания заданий иПриостановить(см. Вывод, пауза и базовые значения); импортируемые#Использовать-модули рекомендуется держать синхронными.ТипЗнч(ФоновыеЗадания)=МенеджерФоновыхЗаданий.
Нет настоящего параллелизма CPU, отмены, приоритетов,
ТекущийПотокиБлокировкаРесурса(осознанное расхождение с эталонными потоками C#). Задание наАсинх-метод получаетОбещаниевРезультати не ждёт его.
Создание: возвращается ФоновыеЗадания.Выполнить(...); публичного конструктора нет (Новый ФоновоеЗадание — «Тип … не найден»).
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
УникальныйИдентификатор / UUID |
УникальныйИдентификатор |
чтение | Уникальный идентификатор задания |
ИмяМетода / MethodName |
Строка |
чтение | Имя запущенного метода |
Объект / Object |
Объект |
чтение | Объект, которому принадлежит метод |
Состояние / State |
[СостояниеФоновогоЗадания](#перечисления) |
чтение | НеВыполнялось, Активно, Завершено, ЗавершеноАварийно |
Параметры / Parameters |
Массив | Неопределено |
чтение | Копия массива аргументов на момент запуска |
Результат / Result |
Любое |
чтение | Значение, возвращённое методом; Неопределено до завершения |
ИнформацияОбОшибке / ExceptionInfo |
ИнформацияОбОшибке | Неопределено |
чтение | Ошибка аварийного завершения |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
ОжидатьЗавершения / Wait |
Таймаут?: Число |
Булево |
Истина — задание завершено, Ложь — таймаут |
ОжидатьЗавершениявозвращаетИстинаи для успешно, и для аварийно завершённого задания: ошибка задания не бросается ожиданием, а попадает вИнформацияОбОшибке(Описание— текст ошибки). По таймауту (миллисекунды,0— бесконечно) возвращаетсяЛожь, задание продолжает работу. Повторное ожидание завершённого задания сразу возвращаетИстина.ТипЗнч(Задание)=ФоновоеЗадание. Английского алиаса типа нет:Тип("BackgroundTask")не канонизируется.
Обещание — непрозрачный handle вызова Асинх-метода. Синтаксис Асинх/Ждать,
правила и диагностика — в README, «Асинх/Ждать»; краткая выборка —
bsl-surface.md.
Создание: конструктора нет (Новый Обещание — «Тип 'Обещание' не найден»); экземпляр возвращает вызов Асинх-функции или Асинх-процедуры.
Свойства: нет. Методы: нет. Индексация недоступна. Английского алиаса типа нет:
Тип("Promise") не канонизируется.
Единственный способ получить результат — оператор
Ждать: для выполненного обещания он сразу возвращает значение, для отвергнутого — бросает исходную ошибку в точке ожидания, для незавершённого — приостанавливает текущий логический поток. Параметры async-методов передаются по значению;Асинх-процедура тоже возвращаетОбещание(её результат —Неопределено).
Строка(Обещание)="Обещание";ТипЗнч(Обещание)=Обещание;Тип("Обещание") = ТипЗнч(Обещание)— истина. Доступ к методам/свойствам и индексация дают ошибки «Метод … не найден», «Свойство … не найдено», «Индексация недоступна».
Повторное ожидание кэшируется: результат или ошибка вычисляются один раз и возвращаются повторно. Ошибка, возникшая до первой приостановки, сохраняется в
Обещаниии не бросается в точке вызова. Необработанная ошибка (обещание никто неЖдать) уходит вconsole.error/stderr после текущего тика и не прерывает сценарий; хост дожидается async-тела и всехОбещаний(flushAsync), поэтому отложенный вывод не теряется.
Ждатьне-Обещаниявозвращает значение как есть. Рекурсивного разворачивания нет: еслиАсинх-функция вернула другоеОбещание,Ждатьвернёт это вложенноеОбещание— его нужно ожидать отдельно. Отмены, таймаутов ожидания иКогдаВсе/КогдаЛюбойнет.
Объекты Документ/Document, ЭлементDOM, СобытиеDOM и СтильDOM существуют только
в браузерной сборке (createBrowserGlobalContext, элемент <one-script>) — [браузер].
В Node/CLI и в createGlobalContext() глобального Документ нет: Документ =
Неопределено, обращение к методу — ошибка «Метод '…' недоступен для Неопределено».
Общая stdlib остаётся Node-совместимой.
Имена типов для
ТипЗнч:ДокументDOM,ЭлементDOM,СобытиеDOM,СтильDOM. Конструкторы в BSL не зарегистрированы:Новый Документ/Новый ЭлементDOM— «Тип … не найден».
Декларативные обработчики
data-os-*и переменнаяСобытиев них описаны в README, «События элементов»; здесь — программный APIНаСобытие. Код обработчика исполняется в области видимости скрипта-подписчика.
Создание: глобальный объект браузерной сборки (Документ/Document); обёртка над document.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
ТелоКорпуса / Body |
ЭлементDOM | Неопределено |
чтение | Элемент <body> |
Заголовок / Title |
Строка |
чтение/запись | Заголовок документа (document.title) |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
ПолучитьЭлемент / GetElementById |
Идентификатор: Строка |
ЭлементDOM | Неопределено |
Элемент по id |
СоздатьЭлемент / CreateElement |
ИмяТега?: Строка |
ЭлементDOM |
Новый несмонтированный элемент; без аргумента — div |
Запросить / QuerySelector |
Селектор: Строка |
ЭлементDOM | Неопределено |
Первый элемент по CSS-селектору |
ЗапроситьВсе / QuerySelectorAll |
Селектор: Строка |
Массив |
Все элементы по CSS-селектору |
Ненайденный элемент —
Неопределено.ЗапроситьВсевозвращает снимокМассивэлементов. Индексация недоступна;ТипЗнч(Документ)=ДокументDOM.
Создание: возвращается методами Документа и других элементов; напрямую не создаётся.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Текст / Text |
Строка |
чтение/запись | Текстовое содержимое (textContent) |
HTML / InnerHTML |
Строка |
чтение/запись | HTML-содержимое (innerHTML) |
Значение / Value |
Строка |
чтение/запись | Значение поля ввода; у прочих элементов — пустая строка |
Идентификатор / Id |
Строка |
чтение/запись | Атрибут id |
Класс / ClassName |
Строка |
чтение/запись | Атрибут class |
ИмяТега / TagName |
Строка |
чтение | Имя тега в нижнем регистре |
Стиль / Style |
СтильDOM |
чтение | Обёртка над element.style |
Родитель / Parent |
ЭлементDOM | Неопределено |
чтение | Родительский элемент |
Дети / Children |
Массив |
чтение | Дочерние элементы (без текстовых узлов) |
Индексация: Элемент[i] — дочерний элемент с индексом i (с нуля) или Неопределено; запись по индексу недоступна.
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
УстановитьАтрибут / SetAttribute |
Имя: Строка, Значение: Строка |
— | Устанавливает атрибут |
ПолучитьАтрибут / GetAttribute |
Имя: Строка |
Строка | Неопределено |
Значение атрибута; нет атрибута — Неопределено |
УдалитьАтрибут / RemoveAttribute |
Имя: Строка |
— | Удаляет атрибут |
ДобавитьВ / AppendTo |
Родитель: ЭлементDOM |
— | Вставляет элемент в конец родителя (переносит узел) |
Добавить / Append |
Ребёнок: ЭлементDOM |
— | Добавляет дочерний элемент (переносит узел) |
Удалить / Remove |
— | — | Удаляет элемент из документа |
ДобавитьКласс / AddClass |
Класс: Строка |
— | Добавляет CSS-класс |
УбратьКласс / RemoveClass |
Класс: Строка |
— | Удаляет CSS-класс |
ЕстьКласс / HasClass |
Класс: Строка |
Булево |
Проверяет наличие CSS-класса |
НаСобытие / OnEvent |
Событие: Строка, Код: Строка |
— | Подписка на DOM-событие; код исполняется в области модуля |
СнятьСобытие / OffEvent |
Событие: Строка |
— | Снимает обработчик DOM-события |
Запросить / QuerySelector |
Селектор: Строка |
ЭлементDOM | Неопределено |
Первый потомок по CSS-селектору |
НаСобытиеисполняетКодкак фрагмент модуля с локальной переменнойСобытие(см. СобытиеDOM); повторная подписка на тот же тип DOM-события замещает предыдущий обработчик,СнятьСобытиеудаляет его. Имена событий русские/английские (см. таблицу ниже), неизвестное имя передаётся в DOM как есть — так подписываются на произвольные события (pointerdownи т.п.).
| Имя в BSL | DOM-событие |
|---|---|
Нажатие / Click |
click |
ДвойноеНажатие / DoubleClick |
dblclick |
Ввод / Input |
input |
Изменение / Change |
change |
Наведение / MouseEnter |
mouseenter |
Уход / MouseLeave |
mouseleave |
НажатиеКлавиши / KeyDown |
keydown |
Отправка / Submit |
submit |
Ошибки в обработчике (синхронные и асинхронные) выводятся в
console.errorи не ломают страницу.ДобавитьВ/Добавитьпереносят существующий узел (DOMappendChild).Класс— строка атрибутаclass; для массовых классов используйтеДобавитьКласс/УбратьКласс. Индексация только для чтения;ТипЗнч(Элемент)=ЭлементDOM.
Создание: движок создаёт объект на каждое DOM-событие; в inline-коде обработчика доступен как Событие (метод НаСобытие, декларативные data-os-*); в вызываемые процедуры автоматически не передаётся.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Тип / Type |
Строка |
чтение | Тип DOM-события (click, input, …) |
Цель / Target |
ЭлементDOM | Неопределено |
чтение | Элемент-источник события (event.target) |
Отменено / DefaultPrevented |
Булево |
чтение | Отменено ли действие по умолчанию |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Отменить / PreventDefault |
— | — | Отменяет действие по умолчанию |
ОстановитьРаспространение |
— | — | Останавливает всплытие события |
Объект живёт, пока выполняется обработчик (при
Ждать/Приостановить— до его завершения); переменная между вызовами — черезПерем.Цель— именноevent.target, отдельногоcurrentTargetнет: контейнер определяйте черезРодительили передавайте явно. В реализации распознаётся только русское имяОстановитьРаспространение(английский алиасStopPropagationне срабатывает — ошибка «Метод … не найден»).
Создание: Элемент.Стиль; напрямую не создаётся.
| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
CSS-свойство (например, color) |
Строка |
чтение/запись | Значение CSS-свойства; имя приводится к нижнему регистру |
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Установить / Set |
Свойство: Строка, Значение: Строка |
— | Устанавливает CSS-свойство (style.setProperty) |
Получить / Get |
Свойство: Строка |
Строка |
Значение CSS-свойства; не задано — пустая строка |
Удалить / Remove |
Свойство: Строка |
— | Удаляет CSS-свойство (style.removeProperty) |
Свойства через точку доступны только для имён без дефиса (
Стиль.color); для CSS-имён с дефисом (font-size) и custom properties (--x) используйтеУстановить/Получить/Удалить. Индексация недоступна;ТипЗнч(Стиль)=СтильDOM.
Тестовый модуль в формате xUnitFor1C: функция ПолучитьСписокТестов(ЮнитТестирование)
возвращает Массив имён процедур, которые прогоняет библиотечная функция runTests
(TS; возвращает TestResult[] — name, passed, error?, упавший тест не прерывает
прогон). Запуск и формат — в README, «Файлы и тестирование».
Раннер синхронный: тесты с Приостановить и ожиданиями не поддерживаются (ошибка
«xUnit-тесты с приостановкой не поддерживаются»). Утверждения доступны через переданный
юТест и глобальный Ожидаем (директива #Использовать asserts не нужна — no-op).
Создание: экземпляр создаёт раннер и передаёт его аргументом в ПолучитьСписокТестов; в BSL тип называется ЮнитТестирование, отдельного конструктора нет (Новый ЮнитТестирование — «Тип … не найден»). TS-класс — BslTestContext (это не BSL-алиас: Тип("BslTestContext") не
канонизируется).
Свойства: нет.
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
ПодробныеОписанияОшибок / ShowDetailedErrors |
Использовать: Булево |
— | Запоминает флаг подробных сообщений |
ТестПровален / Fail |
Описание?: Строка |
— | Проваливает тест исключением «Тест провален…» |
ИмяВременногоФайла / TempFileName |
Расширение?: Строка |
Строка |
Имя временного файла в каталоге TMPDIR/TEMP/TMP; по умолчанию расширение tmp |
ПроверитьРавенство / AssertEquals |
Ожидаемое: Любое, Фактическое: Любое |
— | Проверяет равенство |
ПроверитьНеравенство / AssertNotEquals |
Ожидаемое: Любое, Фактическое: Любое |
— | Проверяет неравенство |
Проверить / Assert / ПроверитьВерно / AssertTrue |
Условие: Булево |
— | Проверяет истинность условия |
ПроверитьИстина / ПроверитьИстину |
Значение: Булево |
— | Проверяет, что значение истинно |
ПроверитьЛожь / AssertFalse |
Значение: Булево |
— | Проверяет, что значение ложно |
ПроверитьЗаполнено |
Значение: Любое |
— | Проверяет, что значение приводится к Истина |
ПроверитьБольше |
Большее: Число, Меньшее: Число |
— | Первый аргумент должен быть больше второго |
ПроверитьМеньше |
Меньшее: Число, Большее: Число |
— | Первый аргумент должен быть меньше второго |
ПроверитьВхождение |
Строка: Строка, Подстрока: Строка |
— | Проверяет вхождение подстроки |
ПроверитьТип |
Значение: Любое, ОжидаемыйТип: Тип | Строка |
— | Сверяет ТипЗнч значения |
При провале проверки бросается исключение (его перехватывает раннер и пишет в
error); успешная проверка возвращаетНеопределено. Третий аргумент-сообщение уПроверитьРавенство/ПроверитьНеравенстводля совместимости принимается, но в тексте ошибки не используется.
ПроверитьЗаполненосчитает пустым всё, что приводится кЛожь: пустая строка,0,Ложь,Неопределено,Null— проверка проваливается.ИмяВременногоФайлатолько строит имя: файл не создаётся и автоматически не удаляется.ПодробныеОписанияОшибоксохраняет флаг, но текущий раннер его не использует.ТипЗнч(юТест)=ЮнитТестирование.
Создание: глобальный объект stdlib (доступен в Node и в браузере).
Свойства: нет.
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Что / What |
Значение: Любое, Текст?: Строка |
Ожидание |
Начинает цепочку проверок; Текст попадает в сообщение об ошибке |
Ожидаем.Что(2 + 2).Равно(4)— проверки выполняются по мере вызова матчеров; при провале бросается исключение, иначе матчер возвращаетНеопределено.ТипЗнч(Ожидаем)=Ожидаем.
Создание: возвращается Ожидаем.Что(...); напрямую не создаётся.
Свойства: нет.
| Метод | Параметры | Возвращает | Описание |
|---|---|---|---|
Равно / Equals |
Ожидаемое: Любое |
— | Значения равны |
НеРавно / NotEquals |
Ожидаемое: Любое |
— | Значения не равны |
Больше / Greater |
Ожидаемое: Любое |
— | Фактическое больше |
Меньше / Less |
Ожидаемое: Любое |
— | Фактическое меньше |
БольшеИлиРавно / GreaterOrEqual |
Ожидаемое: Любое |
— | Фактическое не меньше |
МеньшеИлиРавно / LessOrEqual |
Ожидаемое: Любое |
— | Фактическое не больше |
ЭтоИстина / IsTrue |
— | — | Фактическое истинно |
ЭтоЛожь / IsFalse |
— | — | Фактическое ложно |
ЭтоНе / Not |
— | Ожидание |
Инвертирует следующую проверку цепочки |
ИмеетДлину / HasLength |
Длина: Число |
— | Длина строки или коллекции |
Существует / Exists |
— | — | Значение не Неопределено и не Null |
Содержит / Contains |
Подстрока: Строка |
— | Строковое представление содержит подстроку |
ЭтоНе()возвращает новое ожидание с инверсией:Ожидаем.Что(1).ЭтоНе().Равно(2).ИмеетДлинуработает для строк и BSL-коллекций (длина итератора), для прочих типов — ошибка.Содержитсравнивает строковые представления. При наличииТекствОжидаем.Что(...)сообщение об ошибке начинается с него.ТипЗнч(Ожидание)=Ожидание.