Расширяемая библиотека функций VBScript


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

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

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

Что может быть проще написать

vb_DateAdd("d", 12, ТекущаяДата())

Причем 1С нам дает только ДобавитьМесяц() и приходится для добавления произвольной части даты или определения разницы дат использовать Запрос…

Я думаю, что многие найдут интересное именно для себя.

Добавление же своих собственных функций на VBS тоже не составит труда:

Function GetMyFunctions()
Text = "
|Function Factor(x)
| Factor = 1
| For i = 1 To x
|  Factor = Factor * i
| Next
|End Function
|
|Function DecimalToBinary(x)
| n = x
|
| tmp = Trim(CStr(n Mod 2))
| n = n  2
|
| Do While n <> 0
|  tmp = Trim(CStr(n Mod 2)) & tmp
|  n = n  2
| Loop
|
| DecimalToBinary = tmp
|End Function
|
|Function PartOfString(str, x, delim)
| Arr = Split(str, delim)
| PartOfString = Arr(x - 1)
|End Function
|
|Function GetCurrTime()
|    dtTimer = Timer
|
|    intHours        = dtTimer  (60 * 60)
|    intMinutes      = (dtTimer - (intHours * (60 * 60)))  60
|    intSeconds      = Fix(dtTimer - (intHours * (60 * 60)) - intMinutes * 60)
|    intMilliSeconds = Fix((dtTimer - Fix(dtTimer)) * 1000)
|
|    GetCurrTime = CStr(TimeSerial(intHours, intMinutes, intSeconds)) & ""."" & Right(""000"" & CStr(intMilliSeconds), 3)
|End Function
|";

Return Text;
EndFunction

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

Вызов этих функций в коде можно оформит следующим образом:

vb_Run("PartOfString", Новый Структура("str,x,delim", "1 2 3 4 5 6", 4, " "));

Вторым параметром передается либо структура (ключи не важны, главное значения), либо массив, либо (для функций с одним параметром) отдельное значение. Типы значений параметров могут быть Число, Строка и Дата.

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

 Обработка тестирования

1 Comment

  1. jobkostya1c8

    Стоит запомнить методы. VBScript придется изучать в необходимом объеме.

    Reply

Leave a Comment

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