PerfectScript¶
PerfectScript — это язык сценариев (скриптовый язык), встроенный в офисный пакет Corel WordPerfect Office, предназначенный для автоматизации задач, создания макросов и расширения функциональности приложений пакета, в первую очередь текстового процессора WordPerfect. Язык предоставляет пользователям и разработчикам возможность управлять приложениями, обрабатывать данные, взаимодействовать с файловой системой и создавать диалоговые окна.
¶История
Язык PerfectScript был разработан компанией Corel Corporation (Канада) как преемник более ранних макрос-языков, использовавшихся в WordPerfect для DOS (например, макросы на основе команд WordPerfect 5.1). Первая версия PerfectScript появилась вместе с выпуском WordPerfect 6.0 для Windows в 1993 году. В отличие от простых макросов, записываемых как последовательность нажатий клавиш, PerfectScript предоставил полноценную программную среду с поддержкой переменных, циклов, условных операторов и процедур.
В последующих версиях WordPerfect Office (с 7.0 по 2021) язык развивался: добавлялись новые команды, улучшалась интеграция с операционной системой Windows, появлялась поддержка COM-объектов (Component Object Model), что позволило автоматизировать не только приложения Corel, но и другие программы, поддерживающие эту технологию. Несмотря на снижение популярности WordPerfect по сравнению с Microsoft Office, PerfectScript остаётся востребованным в узких профессиональных нишах (юридические фирмы, государственные учреждения, издательства), где исторически используется WordPerfect.
¶Синтаксис и возможности
PerfectScript — это интерпретируемый язык с синтаксисом, напоминающим BASIC. Программа на PerfectScript представляет собой текстовый файл с расширением .wcm (WordPerfect Macro). Ключевые особенности синтаксиса:
- Переменные: объявляются явно или неявно, поддерживаются строковые, числовые, логические типы и массивы.
- Команды: большинство функций реализовано через вызовы встроенных команд (например,
Type("текст")для ввода текста,FileOpen("имя_файла")для открытия документа). - Управляющие конструкции:
If...Else...EndIf,For...EndFor,While...EndWhile,Switch...EndSwitch. - Процедуры и функции: определяются с помощью
ProcedureиFunction, поддерживают передачу параметров по значению и по ссылке. - Диалоговые окна: создаются с помощью команд
DialogDefine,DialogAdd,DialogShow, что позволяет строить простые графические интерфейсы. - Работа с файлами: чтение, запись, создание, удаление, переименование файлов и папок.
- COM-автоматизация: доступ к объектам других приложений (например, Microsoft Excel, Outlook) через
CreateObjectиGetObject.
Пример простого макроса, который выводит сообщение и вставляет текст в документ WordPerfect:
`` Application (WordPerfect; "WordPerfect"; Default; "US") MessageBox (x; "Привет"; "Это макрос PerfectScript!") Type ("Текст вставлен макросом.") ``
¶Среда разработки
Для написания и отладки макросов в состав WordPerfect Office входит встроенный редактор макросов — PerfectScript Macro Editor. Он предоставляет:
- Подсветку синтаксиса.
- Автодополнение команд.
- Пошаговую отладку (установка точек останова, просмотр переменных).
- Компиляцию макроса в исполняемый файл (
.exe), который может запускаться независимо от WordPerfect.
Также доступен инструмент записи макросов (Macro Recorder), который генерирует код PerfectScript на основе действий пользователя в WordPerfect. Полученный код можно затем отредактировать вручную.
¶Применение
PerfectScript используется в нескольких ключевых сценариях:
- Автоматизация рутинных операций в WordPerfect: форматирование документов, создание шаблонов, замена текста, вставка полей данных.
- Пакетная обработка файлов: конвертация форматов, печать, экспорт в PDF.
- Интеграция с внешними системами: обмен данными с базами данных (через ODBC), электронными таблицами, почтовыми клиентами.
- Создание пользовательских диалоговых окон и форм: для ввода данных в юридических или бухгалтерских приложениях.
- Разработка надстроек (add-ins): расширение функциональности WordPerfect через макросы, вызываемые из меню или по горячим клавишам.
¶Ограничения и критика
- Закрытость платформы: язык привязан к продуктам Corel, что ограничивает его применение вне экосистемы WordPerfect Office.
- Устаревший синтаксис: по сравнению с современными скриптовыми языками (Python, PowerShell) PerfectScript кажется громоздким и менее выразительным.
- Отсутствие поддержки Unicode в ранних версиях: до WordPerfect Office X3 (2006) были проблемы с обработкой символов нелатинских алфавитов.
- Ограниченная документация: официальные руководства Corel часто недостаточно подробны, а сообщество пользователей невелико.
- Сложность отладки: хотя редактор макросов существует, он уступает по функциональности современным IDE (например, Visual Studio Code).
¶Интересные факты
- В 1990-х годах WordPerfect занимал доминирующее положение на рынке текстовых процессоров, и PerfectScript был одним из самых мощных макрос-языков в своём классе.
- Многие юридические фирмы в США и Канаде до сих пор используют WordPerfect и PerfectScript, так как их документооборот построен на макросах, написанных десятилетия назад.
- Существуют сторонние компиляторы и утилиты (например, PerfectScript Compiler), позволяющие запускать макросы без установленного WordPerfect, но они не поддерживаются официально.
¶Источники
- Corel WordPerfect Office Help — официальная документация по PerfectScript.
- «PerfectScript Macro Language Reference» — встроенный справочник в WordPerfect Office.
- Форум сообщества WordPerfect Universe (wordperfectuniverse.com) — обсуждения и примеры макросов.
- «WordPerfect 6.0 for Windows: The Complete Reference» — книга, содержащая описание первого выпуска PerfectScript.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

