Котов Дмитрий | Программист-разработчик | ООО "Саянскгазобетон"

«Автоматизация обработки потока документов, на примере разработки "Терминала путевых листов" для диспетчерской службы»

Пример возможности разработки полностью автоматизированного места для получения, обработки и возврата документов через терминал на платформе 1С:Предприятие 8.3, без участия оператора. В примере демонстрирую возможность реализации "Терминала путевых листов" в диспетчерской службе компании ООО "Саянскгазобетон". Основное направление компании - производство автоклавного газобетона. Диспетчерская служба не имеет возможности круглосуточной работы, в связи с чем сложилась проблема в своевременным возврате путевых листов от водителей. «Терминал путевых листов», продемонстрированный в докладе, позволяет решит данную проблему путем создания интерфейса прямого доступа в информационную систему с помощью нового режима запуска 1С – "Киоск". Водитель самостоятельно получает и возвращает путевой лист в прикладном решении 1С: Управление автотранспортом 2.1.

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

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

Скачать файлы

Наименование Файл Версия Размер
Конфигурация (cf) с подсистемой vbFunction
.cf 16,86Kb
03.01.15
7
.cf fst.n.lst 16,86Kb 7 Скачать

См. также

Комментарии
Сортировка: Древо
1. kostyaomsk 74 06.01.15 21:54 Сейчас в теме
Стоит запомнить методы. VBScript придется изучать в необходимом объеме.
Оставьте свое сообщение