Изменения

Перейти к: навигация, поиск

Руководство программиста

5934 байта добавлено, 16 январь
Объект TBase
);
</source>
 
'''AttachDebugger''' - Команда позволяет подключить открытый [[Отладчик_встроенных_скриптов]] к текущему скрипту. Команда AttachDebugger должна быть '''первой командой''' в скрипте. Добавьте её в самое начало скрипта:
 
<source lang="json">
<?>
AttachDebugger;
set($a, 10);
set($b, 20);
set($sum, $a + $b);
showmessage($sum);
</source>
 
'''Как работает:'''
# При выполнении команды AttachDebugger скрипт останавливается.
# Отладчик автоматически подключается к выполняющемуся скрипту.
# Текст скрипта загружается в редактор отладчика.
# Можно ставить точки останова, просматривать переменные и продолжать отладку.
 
'''Важно:'''
* Отладчик должен быть в режиме отслеживания до того, как скрипт дойдёт до команды AttachDebugger.
* Если режим отслеживания не включён, команда `AttachDebugger` игнорируется.
* В режиме отслеживания может работать только один отладчик.
* Команда AttachDebugger должна быть первой командой в скрипте.
=== Строковые функции ===
'''QUOTEDSTR(s)''' – квотирует строку s символом «\» (обратный слеш). Возвращает строку s, помещенную между символами одинарной кавычки, при этом все вхождения в строку s символов: «\», «"» и «'» экранируются квотирующим символом, а символы #0, #10 и #13 заменяются на \0, \n и \r соответственно.
 
 
'''SQLFloat(f)''' – Приводит число с плавающей точкой к виду, пригодному для SQL-запроса, т.е. к тексту с разделителем дробной части – точка.
'''FormatTextXML(s)''' - квотирует строку s для использования в XML. Производит замены спец. символов для корректности XML-синтаксиса.
=== Прочие функции ===
 
SQLFloat(f) – Приводит число с плавающей точкой к виду, пригодному для SQL-запроса, т.е. к тексту с разделителем дробной части – точка.
SetPhoneParams(CountryCode, TownCode) – Устанавливает глобальные настройки кода телефонных кодов страны и города соответственно. По-умолчанию код страны – 7, код города – 495.
'''GetItemByName(Name)'''
'''GetA4Printer([GetPrinterPort=False])''' - возвращает имя принтера выбранного для печати документов. GetPrinterPort - попытаться по имени принтера найти порт принтера.  '''GetStickerPrinter([GetPrinterPort=False])''' - возвращает имя принтера выбранного для печати стикеров. GetPrinterPort - попытаться по имени принтера найти порт принтера.
'''GetStickerPrinterGetDuplexPrinter([GetPrinterPort=False])''' - возвращает имя принтера выбранного для двусторонней печати стикеров, если принтер не выбран, возвращает пустую строку.
'''GetDuplexPrinterPrintAttachPDFPage(Code, FileName, Page, Printer)''' - возвращает имя принтера выбранного для двусторонней печатипечатает страницу из вложенного файла PDF. Code - код вложения (attachment) или путь к файлу, Page - номер страницы, если Printer - 0 = принтер не выбранA4, возвращает пустую строку1 = принтер этикеток.
'''PrintAttachPDFPageAttachPDFToText(Code, FileName, Page, Printer[TextFileName])''' - печатает страницу преобразует файл PDF из вложенного файла PDFвложений в текст. Code - код вложения (attachment)или путь к файлу, Page TextFileName - номер страницыимя текстового файла, Printer - 0 = принтер A4в который записывается результат (если не указан, 1 = принтер этикетокиспользуется временный файл). Возвращает текст в виде строки.
'''AttachPDFToTextGhostScript(GScript, Code, [TextFileName])''' - преобразует файл PDF из вложений в текст— функция для выполнения консольных команд утилиты [https://ghostscript.readthedocs.io/en/latest/Use.html ghostscript]. Где, GScript — строка с командами Ghostscript; Code - код вложения (attachment)или путь к PDF-файлу, TextFileName - имя текстового файлапредназначенному для обработки. В командах доступен специальный тег %MeasoftInFile%, в который записывается результат автоматически заменяется на путь к предварительно загруженному файлу (если не указан, используется временный файлCode). Возвращает текст Если в виде строкикоманде необходимо указать путь для сохранения результата обработки, используйте тег %MeasoftOutFile%. В этом случае функция на основании параметра Code автоматически сформирует имя временного выходного файла. После успешного выполнения команд функция возвращает путь к сгенерированному выходному файлу - %MeasoftOutFile%.
'''GetActiveForm([SkipFormName])''' - возвращает код активной формы в программе где происходит сканирование. SkipFormName - не обязательны параметр, имя формы которую нужно пропустить при определении интерфейса.
== Объект TFieldObject ==
Создается только автоматически. Объект для доступа к записям, используется в картах и допдополнительных услугах (addressrecord) и событиях карточки корреспонденции (fieldlist).услугахМетоды объекта: '''_GetTableInfo''' - возвращает данные о полях и примеры данных объекта.
_GETTABLEINFO '''_Self''' - возвращает данные о полях ссылку на объект. '''_Set(fieldname, fieldvalue [, DoUpdateForm])''' - Если базовый объект строка. Устаналивает для поля fieldname значение fieldvalue. DoUpdateForm по уолчанию false, если указать true то обновление поля будет не только в объекте но и примеры данных объектапользовательском интерфейсе. Обновление работает только в карточке корреспнденции для ограниченного набора полей: vlog, mode, type, date_put, time_put, message, kurier, state1. '''_Set(keyfield, keyvalue, filed, value)''' - Если базовый объект таблица (addressrecord.boxes). Работает перегруженная версия метода _set, cначала происходит поиск строки по ключу, далее меняется значение указанного столбца. keyfield - ключевое поле, keyvalue - искомое значение, filed - имя столбца, value - новое значение столбца. Пример, отключение услуги база:  addressrecord.advprice._Set('priceconf', 1, 'active', 'F') priceconf - поле где записан код услуги; 1 - услуга База; active - поле показывающее включение услуги.
== Объект TMessage ==
'''Add(Value:string)''' - добавляет значение Value в конец списка.
 
'''SetText(Value:string)''' - устанавливает значение списка в значение Value.
'''Insert(Number:integer, Value:string)''' - добавляет строку Value в позицию Number.
Объект реализует создание и использование функций в скриптовом языке. Позволяет определять переиспользуемые блоки кода с параметрами.
Важно учитывать, что внтури функции создается свой инстанс интерпретатора и от туда не доступны никакие переменные\объекты кроме переданных в функцию.
C функциями поддерживают работу следующие классы: TExcel, TDirectExcel, TCSVFile, TADO, TSelfADO, TPrinter, TCanvas, TPicture, TTable, TINIFile, TSMS, TXML, TJSON, TZip, TStringList, TBaseUtils.
Основные методы:
'''New'''(FuncName, Param1, Param2, ..., Body) — создание новой функции.Функция возвращает результат выполнения последней команды в теле функции. Аргументы:
* `FuncName` — имя функции (строка)
* `Param1, Param2, ...` — имена параметров функции (переменные начинаются с `$`, объекты — без префикса, но обязательно получить указатель через метод _self класса)
* `Body` — тело функции (скрипт, выполняемый при вызове)
'''FuncName'''(Arg1, Arg2, ...) — вызов созданной функции по имени. Если в объявлении была указана тип переменная, то и подставлять в аргумент надо обязательно переменную. Будет передано значение этой переменной (переменные словарине поддерживаются!). Если был объявлен объект, то указатель на объект должен быть получен через метод '''_self'''. C функциями поддерживают работу следующие классы: TExcel, TDirectExcel, TCSVFile, TADO, TSelfADO, TPrinter, TCanvas, TPicture, TTable, TINIFile, TSMS, TXML, TJSON, TZip, TStringList, TBaseUtils, а также объект addressrecord (TFieldObject). Результатом работы функции может быть число или строка.
Пример 1, обработка результатов функции:
<source>
<?>
new('TFunc', 'calc');
calc.new('Sum', '$a', '$b',
</source>
Пример 2, с использованием передача объектав функцию:
<source>
<?>
=== Недавние изменения ===
{|
||'''Изменено:'''
|2026.0.0.550 Доработка функций интерпретатора GetA4Printer, GetStickerPrinter, GetDuplexPrinter.
|-
||'''Изменено:'''
|2026.0.0.547 Доработка функций ATTACHPDFTOTEXT и PRINTATTACHPDFPAGE, добавлена возможность указать путь к файлу
|-
||'''Добавлено:'''
|2025.0.0.539 Добавлена поддержка отладчика AttachDebugger
|-
||'''Добавлено:'''
|2025.0.0.534 Добавлена поддержка оператора CASE и класса TFunc
538
правок

Навигация