Google Apps Скрипты, связанные с контейнером

starstarstarstarstar 4.6
Всего оценок: 10
Последнее обновление:

Сценарий привязан к файлу Google Таблицам, Документам или Формам, если он был создан из этого документа, а не как отдельный сценарий. Файл, к которому привязан связанный скрипт, называется контейнером.

Связанные скрипты обычно ведут себя как автономные скрипты, за исключением того, что они не отображаются на Google Диске, их нельзя отделить от файла, к которому они привязаны, и получают несколько специальных привилегий над родительским файлом.

Обратите внимание, что скрипты также могут быть привязаны к Сайтам Google, но эти скрипты почти всегда развертываются как веб-приложения. Скрипты, связанные с таблицами, документами или формами, также могут стать веб-приложениями, хотя это редкость.

Создание связанного скрипта

Чтобы создать связанный скрипт, откройте файл Google Таблицы, Документы или Формы, затем выберите Инструменты > Редактор сценариев. Чтобы снова открыть сценарий в будущем, сделайте то же самое. Поскольку связанные скрипты не отображаются в Google Диске, это меню — единственный способ найти или открыть скрипт.

Более наглядная инструкция по созданию скриптов, тут.

Инструмент clasp не может создавать связанные скрипты, но он может клонировать и редактировать их.

Специальные методы

Связанные скрипты могут вызывать несколько методов, которые автономные скрипты не могут:

  • getActiveSpreadsheet(), getActiveDocument() и getActiveForm() позволяют связанным скриптам ссылаться на их родительский файл, не ссылаясь на идентификатор файла.
  • getUi позволяет связанным скриптам получить доступ к пользовательскому интерфейсу для своего родительского файла, чтобы добавить пользовательские меню, диалоги и боковые панели.
  • В Google Таблицах getActiveSheet(), getActiveRange() и getActiveCell() позволяют сценарию определить текущий лист пользователя, выбранный диапазон ячеек или выбранную отдельную ячейку. setActiveSheet( лист ) и setActiveRange( диапазон ) позволяют сценарию изменять эти параметры.
  • В Документах Google getCursor() и getSelection() позволяют сценарию определять позицию курсора пользователя или выбранного текста. setCursor( позиция ) и setSelection( диапазон ) позволяют сценарию изменять эти местоположения.

Для получения дополнительной информации см. Руководство по расширению Google Таблиц или руководству по расширению Документов Google.

Эти методы доступны только для связанных скриптов, запускаемых из редактора сценариев, элементов меню, диалогов, боковых панелей или триггеров. Когда связанный скрипт запускается как веб-приложение или через API скриптов приложений, эти методы недоступны.

Пользовательские меню, диалоги и боковые панели

Связанные скрипты могут настраивать Google Таблицы, Документы и Формы, добавляя пользовательские меню и диалоговые окна или боковые панели. Однако имейте в виду, что скрипт может взаимодействовать только с пользовательским интерфейсом для текущего экземпляра открытого файла. То есть сценарий, связанный с одним документом, не может повлиять на пользовательский интерфейс другого документа.

Надстройки также могут добавлять пользовательские меню, диалоги и боковые панели. Рекомендуется разрабатывать надстройки, используя автономные скрипты.

Дополнения

Дополнения выполняются внутри Google Таблиц, Документов и Форм. Если вы разработали связанный или автономный скрипт и хотите поделиться им со всем миром,Apps Script позволяет публиковать ваш скрипт в качестве дополнения, чтобы другие пользователи могли его установить из магазина дополнений.

Триггеры

Связанные скрипты могут использовать простые триггеры, такие как специальная функция onOpen(), которая запускается автоматически всякий раз, когда файл открывается пользователем, у которого есть доступ к редактированию. Как и все типы скриптов, они также могут использовать устанавливаемые триггеры.

Пользовательские функции

Пользовательская функция является функцией в скрипте, связанном с Google Таблицами, который вы вызываете непосредственно из ячейки, используя синтаксис =myFunctionName(). Таким образом, пользовательские функции похожи на сотни встроенных функций в таблицах, таких как AVERAGE или SUM, за исключением того, что вы определяете поведение пользовательской функции.

Доступ к связанным скриптам

Только пользователи, имеющие разрешение на редактирование контейнера, могут запускать свой связанный скрипт. Соавторы, у которых есть только доступ к просмотру, не могут открыть редактор сценариев, хотя, если они делают копию родительского файла, они становятся владельцем копии и смогут видеть и запускать копию сценария.

Все сценарии, связанные с контейнером, используют один и тот же список доступа владельца, зрителя и редактора, определенный для файла контейнера. Владелец контейнера принимает на себя ответственность за новый проект сценария независимо от того, кто его создал.

Статья подготовлена по материалам

Container-bound Scripts

Author: Максим Стоянов

Разработчик Google Apps Script.