Файл регистрации надстройки
В составе надстройки должен присутствовать файл регистрации (манифест), содержащий пары ключ-значение для конфигурации надстройки в приложении редакторов МойОфис.
Файл регистрации имеет обязательное имя Package.lua. Часть ключей должна быть определена в обязательном порядке, в противном случае надстройка не будет зарегистрирована. Ключи могут быть перечислены в произвольном порядке. Поддерживаются ключи, приведенные в таблице.
Таблица - Поддерживаемые ключи конфигурации надстройки
| Ключ | Обязательный | Описание |
|---|---|---|
extensionID | Да | Уникальный идентификатор надстройки. Значение ключа указывается в нотации обратного доменного имени. Пример extensionID = "com.example.entryform". |
extensionName | Да | Название надстройки. Отображается в меню Управление надстройками вкладки Макрокоманды в том случае, если надстройка установлена и включена (см. Рисунок и раздел Установка и управление надстройками в режиме диалога). Пример: extensionName = "Учетная карточка сотрудника". |
vendor | Да | Автор надстройки. Значение ключа отображается в диалоговом окне информации о надстройке. Пример vendor = "\"Мой Офис\"". |
extensionVersion | Да | Версия надстройки в виде таблицы с полями: - major (число);- minor (число);- patch (число);- build (строка).Значение ключа отображается в диалоговом окне информации о надстройке. Пример extensionVersion = { major = 0, minor = 1, patch = 0, build = "" }. |
description | Нет | Краткое описание надстройки. Значение ключа отображается в диалоговом окне информации о надстройке. Пример description = "Учетная карточка научного сотрудника". |
applicationId | Да | Идентификатор приложения, с которым может работать надстройка: - только «МояТаблица»: "MyOffice Spreadsheet";- только «МойТекст»: "MyOffice Text";- одновременно в «МояТаблица» и «МойТекст»: {"MyOffice Spreadsheet", "MyOffice Text"}. |
apiVersion | Да | Актуальный номер версии API редактора для работы с надстройками в виде таблицы с полями: - major (число);- minor (число).Следует использовать значение 1.0 Пример apiVersion = { major = 1, minor = 0 }. |
commandsProvider | Да | Наименование файла файла обработчика команд. Допустимо указание пути относительно домашнего каталога надстройки. Недопустимо указание полного пути к файлу сценария надстройки. Пример commandsProvider = "cmd/entryform.lua"Файл сценария под названием entryform.lua расположен в каталоге cmd домашней папки надстройки. |
eventsProvider | Нет | Наименование файла, содержащего обработчики событий. Допустимо указание пути относительно домашнего каталога надстройки. Недопустимо указание полного пути к файлу сценария надстройки. Пример eventsProvider = "cmd/events.lua"Файл сценария под названием events.lua расположен в каталоге cmd домашней папки надстройки. |
onLoad | Нет | Наименование файла сценария, вызываемого при запуске надстройки. Допустимо указание пути относительно домашнего каталога надстройки. Пример onLoad = "cmd/entryform-start.lua"При запуске надстройки сценарий, находящийся в файле entryform-start.lua в каталоге cmd домашней папки надстройки. |
onUnLoad | Нет | Наименование файла сценария, вызываемого перед завершением работы надстройки. Допустимо указание пути относительно домашнего каталога надстройки. Пример onUnload = "cmd/entryform-stop.lua"При запуске надстройки выполнится сценарий, находящийся в файле entryform-stop.lua, в каталоге cmd домашней папки надстройки. |
fallbackLanguage | Нет | Код языка (например, 'ru', 'en') который будет использован по умолчанию, если надстройка не содержит словаря для языка, установленного в настройках ОС. Подробнее о возможностях локализации см. раздел Локализация надстроек Пример fallbackLanguage = 'RU'. |
Пример файла Package.lua:
local Package = {
vendor = "ООО \"Новые Облачные Технологии\"",
description = "Учетная карточка научного сотрудника",
extensionID = "com.example.entryform",
extensionName = "Учетная карточка сотрудника",
extensionVersion = { major = 0, minor = 1, patch = 0, build = "" },
applicationId = "MyOffice Spreadsheet",
apiVersion = { major = 1, minor = 0 },
commandsProvider = "cmd/entryform.lua",
fallbackLanguage = 'RU',
onLoad = "cmd/entryform-start.lua",
onUnload = "cmd/entryform-stop.lua"
}
return Package

Ключи onLoad и onUnLoad позволяют указать сценарии, выполняемые во время запуска или завершения работы надстройки. Эти сценарии могут быть использованы для подготовки ресурсов перед началом работы надстройки и освобождения ресурсов после выгрузки надстройки. Во время запуска и завершения работы надстройки не рекомендуется использование вызовов, взаимодействующих с пользовательским интерфейсом, использования метода messageBox или работы с формами ввода данных.
Сценарии для ключей onLoad и onUnLoad могут быть размещены в одном файле или в раздельных файлах. Сценарии должны содержать реализации методов onLoadExtension() и onUnloadExtension(), например:
local Actions = {}
function Actions.onLoadExtension()
-- Подготовка ресурсов для надстройки
end
function Actions.onUnloadExtension()
-- Освобождение ресурсов надстройки
end
return Actions