Казалось бы, 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-файле, который вы можете скачать, есть обработка для тестирования функционала.
Стоит запомнить методы. VBScript придется изучать в необходимом объеме.