В рамках этого раздела будут приведены примеры скриптов (в синтаксисе Pascal), ориентированных на выполнение в среде программы spFlexiCalc.
Запуск системы 1С:Предприятие (в качестве OLE-Automation сервера) и соединение с локальной информационной базой, размещенной в файле C:\1C8.db\HomeLib.
#language PascalScript
Var
v1C : variant;
s1CResOpen : integer;
BEGIN
v1C := CreateOleObject('V82.Application');
if VariantOk(v1C) then begin
s1CResOpen:=v1C.Connect('File="C:\1C8.db\HomeLib";Usr="Admin";Pwd="0";');
v1C.Visible:=true;
end;
END.
Запуск MS Excel (в качестве OLE-Automation сервера) и запись различных данных в ячейки [1,1], [2,2], [3,3], [4,4], [4,5] листа № 1.
#language PascalScript
Var
Excel:variant;
ListExcel:variant;
V:variant;
BEGIN
Excel:=Excel_Открыть;
ListExcel:=Excel_Лист_ПоНомеру_Получить(Excel,1);
Excel_Лист_Ячейка_КакСтрока_Записать(ListExcel,
1,1,
'2.35',
false,false,false,
0, clRed);
V:=2.35;
Excel_Лист_Ячейка_КакVariant_Записать(ListExcel,
2,2,
V,
false,false,false,
0, clBlack);
V:=NOW;
Excel_Лист_Ячейка_КакVariant_Записать(ListExcel,
3,3,
V,
false,false,false,
0, clBlue);
V:=DateToStr(NOW);
Excel_Лист_Ячейка_КакVariant_Записать(ListExcel,
4,4,
V,
false,false,false,
0, clBlue);
V:=TimeToStr(NOW);
Excel_Лист_Ячейка_КакVariant_Записать(ListExcel,
4,5,
V,
false,false,false,
0, clBlue);
END.
Запуск MS Word (в качестве OLE-Automation сервера), создание нового документа и запись заданного текста в активный документ.
#language PascalScript
Var
vWord,
vDoc,
vRange :variant;
ВыводимаяСтрока:string;
function Word_Документ_Абзац_Добавить(Doc:variant;
YesRangeReturn:boolean=true;
YesRangeGoToEnd:boolean=true) : variant;
begin
Result:=UnAssigned;
if VariantOk(Doc) then begin
Result:=Doc.Paragraphs.Add;
if YesRangeReturn then begin
Result:=Doc.Paragraphs.Item(Doc.Paragraphs.Count).Range;
if YesRangeGoToEnd then begin
Result:=Doc.Range(Doc.Range.End-1,Doc.Range.End-1);
end;
end;
end;
end;
BEGIN
//Открыть MS Word (как OLE Automation server) и получить на него ссылку
vWord:=CreateOleObject('Word.Application');
//Сделать видимым главное окно <S Word
vWord.Visible:=true;
//Создать новый документ и получить на него ссылку
vDoc:=vWord.Documents.Add;
//Текст, выводимый в MS Word
ВыводимаяСтрока:='Улыбнись!'+#10+'Забудь про все проблемы...';
//------------------------
//Добавить новый абзац в созданный документ
vRange:=Word_Документ_Абзац_Добавить(vDoc);
//Вывести текст в этот абзац
vRange.InsertAfter(ВыводимаяСтрока);
//------------------------
END.
Получить ID даты, заданной в виде строки (в формате ДД.ММ.ГГГГ).
В данном примере:
Дата = ‘11.09.2015’, ID=20150911;
Дата = ‘1.3.2021’, ID=20210301.
#language PascalScript
function Дата_Вычислить_ID(sDate:string):integer;
Var
S:string;
Da,Mo,Ye:integer;
begin
Result:=0;
//sDate - дата, заданная в виде строки
//Получить первое слово из строки (День даты)
S:=trim(Строка_Слово_Получить(sDate,1, '.', true));
Da := Строка_ВЦелоеЧисло(S,0);
//Получить второе слово из строки (Месяц даты)
S:=trim(Строка_Слово_Получить(sDate,2, '.', true));
Mo := Строка_ВЦелоеЧисло(S,0);
//Получить третье слово из строки (Год даты)
S:=trim(Строка_Слово_Получить(sDate,3, '.', true));
Ye := Строка_ВЦелоеЧисло(S,0);
//Вычислить ID даты
Result:=Ye*10000 + Mo*100 + Da;
end;
Var
Дата_Значение:string;
Дата_ID:integer;
BEGIN
Дата_Значение := '11.09.2015';
Дата_ID := Дата_Вычислить_ID(Дата_Значение);
ShowMessage('Дата: '+Дата_Значение+'; ID='+IntToStr(Дата_ID));
Дата_Значение := '1.3.2021';
Дата_ID := Дата_Вычислить_ID(Дата_Значение);
ShowMessage('Дата: '+Дата_Значение+'; ID='+IntToStr(Дата_ID));
END.
Продолжение следует…