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

03.01.15

Разработка - Универсальные функции

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Конфигурация (cf) с подсистемой vbFunction
.cf 16,86Kb ver:fst.n.lst
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

Вступайте в нашу телеграмм-группу Инфостарт

VBS VBScript scripting функции

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4156    Abysswalker    11    

46

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

14.05.2025    7752    DeerCven    15    

61

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

21.05.2024    52929    dimanich70    84    

174

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

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

1 стартмани

18.03.2024    7692    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    67442    atdonya    31    

72

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9635    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. jobkostya1c_ERP 101 06.01.15 21:54 Сейчас в теме
Стоит запомнить методы. VBScript придется изучать в необходимом объеме.
Для отправки сообщения требуется регистрация/авторизация