Примечания к выпуску: 2013 г.

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

На этой странице перечислены основные изменения в каждом выпуске скрипта Google Apps за 2013 год. Он предназначен для того, чтобы помочь разработчикам выявить изменения в поведении. Более свежие изменения см. в примечаниях к выпуску за текущий год .

Декабрь 2013

16 декабря 2013 г.

2 декабря 2013 г.

  • В перечисление DocumentApp.ParagraphHeading добавлены значения TITLE и SUBTITLE .
  • Были применены следующие исправления:
    • Проблема 3101 : удален метод SitesApp Site.deleteSite() , который никогда не работал.
    • Проблема 3046 : UrlFetchApp теперь правильно сохраняет экранирование RFC 3986.
    • Проблема 2497. Устранена редкая проблема с крайним случаем при использовании обратных вызовов и библиотек обработчика сервера UiApp .
    • Проблема 1346 : проблема, из-за которой обработчики сервера UiApp библиотеки создавали новые обработчики сервера, которые не могли ссылаться на небиблиотечные функции, больше не должна возникать.

Ноябрь 2013

18 ноября 2013 г.

  • Методы скрипта приложений Utilities.jsonParse() и Utilities.jsonStringify() устарели в пользу стандартных методов JavaScript JSON.parse() и JSON.stringify() , которые теперь отображаются в автозаполнении.

11 ноября 2013 г.

  • Было применено следующее исправление:
    • Проблема 3189 : Редкая проблема, из-за которой LockService не удалось получить блокировку, больше не должна возникать.

4 ноября 2013 г.

  • Если версия библиотеки была удалена владельцем библиотеки, скрипты больше не могут использовать эту версию.
  • Было применено следующее исправление:
    • Проблема 2817 : спорадические ошибки об отсутствующих библиотеках теперь должны возникать реже.

21 октября 2013 г.

  • Было применено следующее исправление:
    • Проблема 74 : простые onEdit() теперь срабатывают правильно, когда пользователь не вошел в учетную запись Google.

8 октября 2013 г.

Сентябрь 2013

23 сентября 2013 г.

  • Добавлены следующие методы DriveApp , которые позволяют сценариям получить владельца File или Folder .

16 сентября 2013 г.

  • Служба HTML теперь поддерживает большинство функций CSS3. Заметным исключением является псевдоселектор :nth-child() , который остается неподдерживаемым, наряду с небольшим количеством малоизвестных или нестандартизированных функций CSS3. Чтобы проверить, поддерживает ли изолированная программная среда безопасности Caja в службе HTML определенную функцию, см. определения белого списка CSS в общедоступном репозитории Caja.
  • Добавлены следующие методы DriveApp , которые позволяют сценариям сохранять состояние итератора файлов или папок и возобновлять работу позже. Этот метод полезен, если обработка итератора за одно выполнение превысит максимальное время выполнения.
  • Виджеты UiApp Hyperlink , InlineHyperlink , LayoutPanel и RichTextArea теперь отключены, как было объявлено 13 марта 2013 г. и задокументировано в расписании закрытия сценариев приложений .

9 сентября 2013 г.

  • Добавлены методы DocumentApp InlineImage.getLinkUrl() и InlineImage.setLinkUrl(url) .
  • Устарели методы DocumentApp getFootnotes() , getLinkUrl() , setLinkUrl(url) и isAtDocumentEnd() в классах FooterSection , FootnoteSection и HeaderSection , а также методы getNextSibling() и getPreviousSibling() в классах FooterSection и HeaderSection . Эти методы оказались бесполезными.
  • Были применены следующие исправления:
    • Проблема 2621. Больше не возникает ситуация, при которой некоторые сценарии не завершались, несмотря на превышение лимита времени выполнения.

3 сентября 2013 г.

  • Добавлены методы DriveApp DriveApp.getFoldersByName(name) и DriveApp.searchFolders(params) , которые возвращают FolderIterator с запрошенными результатами.
  • Добавлены методы DriveApp File.getViewers() , File.getEditors() , Folder.getViewers() и Folder.getEditors() , которые возвращают массив Users с правами просмотра или редактирования.
  • Убрана возможность получить адрес электронной почты пользователя в простых onEdit() . Поскольку простые триггеры не требуют проверки подлинности пользователя, это изменение было важно для защиты личности соавторов, которые явно не предоставили скрипту разрешение на сбор их адресов электронной почты.

август 2013

19 августа 2013 г.

  • Добавлены методы DriveApp File.makeCopy(destination) и File.makeCopy(name, destination) , которые позволяют сценариям указывать папку, в которую следует скопировать файл.
  • Были применены следующие исправления:
    • Проблема 3097. Проблема с производительностью, которая затрагивала определенные сценарии, больше не возникает.

13 августа 2013 г.

  • Добавлен метод Spreadsheet.deleteSheet(sheet) , который позволяет удалять листы, не являющиеся активными листами.

5 августа 2013 г.

  • Добавлен метод GmailMessage.getPlainBody() , который возвращает содержимое сообщения без HTML-форматирования.
  • DocsList методы DocsList find(query, start, max) , getAllFiles(start, max) , getAllFolders(start, max) , getFiles(start, max) , getFilesByType(fileType, start, max) и getFolders(start, max) . Вместо этих методов используйте DriveApp или один из DocsList.get*ForPaging() .
  • Добавлена ​​следующая запрошенная функция:
  • Были применены следующие исправления:
    • Проблема 2916 : HTML-файлы, вставленные в новый проект Apps Script с помощью SDK Google Диска , больше не создаются с server_js .
    • Проблема 2880 : специальные символы (например, апострофы) больше не нужно экранировать дважды при передаче в DriveApp.getFilesByName() .
    • Проблема 2780 : DriveApp теперь выдает более подходящее сообщение об ошибке, если приложения Google Диска запрещены в домене пользователя.

Июль 2013

29 июля 2013 г.

  • Все новые скрипты теперь по умолчанию используют новый поток авторизации .
  • На устройствах ChromeOS теперь можно активировать автозаполнение (иногда называемое «помощью по содержимому») с помощью сочетания клавиш Ctrl + пробел.
  • Было применено следующее исправление:

22 июля 2013 г.

  • К службам, отслеживаемым на панели инструментов сценариев приложений, добавлены DriveApp и FormApp .
  • Было применено следующее исправление:
    • Проблема 2801 : Исправлена ​​ошибка, из-за которой определенные параметры URL не работали с HtmlService .

9 июля 2013 г.

июнь 2013

25 июня 2013 г.

  • Любой сценарий, привязанный к контейнеру Google Doc, теперь может получить доступ к Cursor и Selection активного пользователя, вызвав Document.getCursor() и Document.getSelection() соответственно.
  • В диалоговом окне « Публикация» > «Развернуть как веб-приложение » теперь есть возможность сохранить версию скрипта, если она ранее не была сохранена. Последующие версии скрипта по-прежнему необходимо сохранять через диалоговое окно « Файл» > «Управление версиями ».
  • Скрипты теперь всегда требуют авторизации для использования методов Session.getEffectiveUser() или Session.getUser() . Существующие сценарии, использующие эти методы и обновленные до нового режима авторизации, требуют повторной авторизации, но не будут запрашивать авторизацию автоматически. Чтобы повторно авторизовать скрипт, следуйте этим инструкциям .
  • UrlFetch , сделанные сценариями, которые запускаются с помощью триггера на основе времени, теперь включают HTTP-заголовок If-Modified-Since , чтобы Apps Script мог использовать кэшированную копию страницы, если она доступна и страница не изменилась.
  • Были применены следующие исправления:
    • Проблема 2820 : getActiveSheet() теперь правильно возвращает активный лист при использовании с триггером onChange.
    • Проблема 2761 : при копировании элемента Document , содержащего изображение, изображение теперь также копируется.

17 июня 2013 г.

  • Были добавлены следующие запрошенные функции:
    • Проблема 1034. Новые методы службы Диска addCommenter() и removeCommenter() позволяют сценариям добавлять и удалять комментарии к файлам.
    • Проблема 674. Почта, отправленная с помощью GmailApp , теперь отображается в папке «Отправленные» в Gmail.
  • Были применены следующие исправления:
    • Проблема 2626 : стенограмма выполнения теперь правильно сообщает время выполнения для методов, которые вызываются повторно.
    • Проблема 2559 : спорадическая проблема, из-за которой Spreadsheet.getSheetByName() возвращала значение null для допустимого имени листа, больше не возникает.
    • Проблема 1965 : электронные письма, пересылаемые с помощью GmailMessage.forward() теперь сохраняют встроенные изображения.
    • Проблема 1414 : Range.copyTo() теперь добавляет дополнительные строки по мере необходимости, если на целевом листе недостаточно строк для размещения диапазона.

11 июня 2013 г.

  • Были применены следующие исправления:
    • Проблема 2823 : Временные метки начала и окончания выполнения скрипта, включая общее время выполнения, теперь отображаются в расшифровке выполнения ( Просмотр > Расшифровка выполнения ), а не в журнале.
    • Проблема 2807. Устранена редкая проблема, из-за которой сценарий не мог быть обновлен до нового потока авторизации.
    • Проблема 2791 : вызов Trigger.getTriggerSource() для триггера на основе формы больше не вызывает исключение.
    • Проблема 2734 : сценарии HtmlService , которые вызывают длительные серверные функции, больше не повторяют вызов функции несколько раз.

3 июня 2013 г.

  • Чтобы упростить взаимодействие с конечным пользователем, имена функций больше не отображаются в уведомлении для сценариев, которые успешно выполняются из электронной таблицы, документа или формы. Имена функций по-прежнему отображаются при возникновении ошибки (для облегчения отладки) и при запуске сценария из редактора сценариев.
  • Для упрощения службы Document из класса Body были удалены следующие методы: getNextSibling() , getPreviousSibling() , isAtDocumentEnd() , getLinkUrl() , setLinkUrl() и removeFromParent() .
  • Были применены следующие исправления:
    • Проблема 2819 : Folder.createFile(name, content, mimeType) теперь создает файл в папке, в которой был выполнен метод.
    • Проблема 2776 : Существующие развернутые веб-приложения теперь правильно аутентифицируются после обновления сценария для использования нового интерфейса авторизации.
    • Проблема 2679 : метод getAs() класса File больше не выдает ошибку при преобразовании файлов .docx, .pptx или .xlsx в PDF.
    • Проблема 2643 : метки времени для сообщений журнала скрипта теперь находятся в часовом поясе скрипта.
    • Проблема 2597 : Функция поиска в редакторе скриптов больше не пропускает первый результат.

Май 2013

13 мая 2013 г.

  • Редактор скриптов теперь доступен в Google Docs и редакторе Google Forms, и теперь и Docs, и Forms могут быть контейнерами для скриптов.
  • Добавлена ​​служба форм , которая позволяет скриптам создавать и изменять формы Google.
  • Добавлена ​​служба Диска , которая позволяет скриптам создавать и изменять файлы и папки на Google Диске. Это более новая версия существующей службы DocsList.
  • В DocumentApp и FormApp добавлен метод getUi , который возвращает объект пользовательского Ui , позволяющий сценарию добавлять такие функции, как меню, диалоговые окна и боковые панели, в редактор документов или форм.
  • Добавлен класс FormTriggerBuilder , позволяющий сценариям реагировать на события Forms.
  • Добавлен метод setSandboxMode для включения более быстрой версии песочницы HtmlService.
  • Добавлено перечисление MimeType , которое обеспечивает доступ к объявлениям MIME-типа без явного ввода строк.
  • Добавлена ​​возможность перейти на новый поток авторизации , который требует меньше кликов и автоматически создает проект Google Developers Console для каждого скрипта.

9 мая 2013 г.

  • Добавлена ​​следующая запрошенная функция:
    • Проблема 2158 : Объект запроса, переданный методам doPost() , теперь содержит тело POST. Доступ к нему можно получить с помощью e.postData.getDataAsString() .
  • Было применено следующее исправление:
    • Проблема 2740 : UrlFetchApp.fetch() больше не завершаются ошибкой, если в расширенных параметрах указана полезная нагрузка без указания метода запроса.

2 мая 2013 г.

  • Добавлена ​​следующая запрошенная функция:
    • Проблема 1363 : добавлена ​​поддержка событий изменения электронной таблицы. onChange() теперь срабатывает, когда в электронную таблицу вносятся определенные изменения, такие как вставка строк.
  • Было применено следующее исправление:
    • Проблема 2585 : Xml.parse() снова правильно анализирует хорошо структурированные документы XML и HTML.

апрель 2013

29 апреля 2013 г.

  • Были применены следующие исправления:
    • Проблема 2695 : отправка форм в приложениях службы пользовательского интерфейса снова работает правильно.
    • Проблема 2625 : метод withUserObject() в приложениях службы Html теперь правильно работает с Firefox 20.
    • Проблема 1612 : Element.copy() теперь может копировать элементы InlineImage из одного документа в другой.
    • Проблема 170 : Spreadsheet.addCollaborators() теперь отправляет приглашение по электронной почте соавторам, если установлен расширенный параметр emailInvitations .

22 апреля 2013 г.

  • Большие скрипты в Галерее скриптов теперь устанавливаются быстрее.
  • Были добавлены следующие запрошенные функции:
    • Проблема 1771 : добавлен метод clear() в классы Tree и TreeItem . Эти методы удаляют все дочерние элементы объекта.
    • Проблема 1743 : добавлен метод autoResizeColumn() в класс Sheet . Этот метод изменяет размер столбца в соответствии с его содержимым.
    • Проблема 1314 : добавлена ​​поддержка отложенной загрузки в классе Tree , что сокращает время ожидания при отрисовке пользовательского интерфейса.
  • Были применены следующие исправления:
    • Проблема 2665 : UrlFetchApp.fetch() снова разрешает URL-адреса, содержащие пробелы.
    • Проблема 2593 : Range.setValue() теперь ведет себя правильно в функции, вызываемой из триггера электронной таблицы onEdit.
    • Проблема 941 : Параметр события для функции обработчика ListBox теперь включает значение выбранного элемента, а не его имя.
    • Проблема 307 : Параметр события для функции обработчика Tree теперь включает идентификатор выбранного элемента.

15 апреля 2013 г.

  • Для упрощения службы документов были внесены следующие изменения:
    • Класс DocumentBodySection переименован в Body .
    • Document.getActiveSection() переименован в getBody() .
    • Удалены методы класса Body из Document , чтобы они отображались только в одном месте.
    • Удалены методы merge() для различных классов, которые нельзя объединить, например PageBreak и HorizontalRule .
    • Удалены методы, связанные с текстом, такие как isBold() и isUnderline() из элементов контейнера, таких как Table , но сохранены в классе Text . Эта функциональность теперь может быть достигнута путем вызова editAsText() для элемента контейнера и вызова методов, связанных с текстом, для возвращаемого класса Text .
    • Удалены методы, которые позволяли добавлять или вставлять элементы HorizonalRule с указанными атрибутами.
  • Устаревшие виджеты UiApp DeckPanel , DecoratedPopupPanel , DockLayoutPanel , DockPanel , StackLayoutPanel и TabLayoutPanel , которые имели ограниченное удобство использования.
  • Были применены следующие исправления:
    • Проблема 2565 : DocsList.createFile() больше не позволяет создавать файлы с недопустимыми типами MIME или типами MIME документов Google.

8 апреля 2013 г.

  • Упростили классы в службе документов , удалив ненужные .asSomething() .
  • Добавлены временные метки в вывод журнала.
  • Были применены следующие исправления:
    • Проблема 2548. Триггеры, созданные в веб-приложениях, которые разрешают анонимный доступ, больше не срабатывают.
    • Проблема 2488. Компоненты инструментальной панели Charts больше не выдают ошибки сериализации в определенных сценариях.

1 апреля 2013

  • Добавлена ​​следующая запрошенная функция:
  • Были применены следующие исправления:
    • Проблема 2524 : сценарии, которые полагаются на удаленные библиотеки, теперь отображают четкое сообщение об ошибке.
    • Проблема 2169 : установка скриптов из галереи скриптов больше не приводит к случайным ошибкам.
    • Проблема 459 : Параметр события для функций электронной таблицы onEdit() теперь правильно сообщает затронутый диапазон в различных ситуациях, в которых свойство range ранее было неверным.

март 2013 г.

25 марта 2013 г.

  • Были применены следующие исправления:
    • Проблема 2534 : отладка рекурсивной функции с использованием определенных методов GroupsManager больше не вызывает ошибку.
    • Проблема 1106 : Восстановлено правильное поведение Range.mergeAcross() . Эта функция вместе с Range.merge() и недавно добавленным Range.mergeVertically() ведет себя как элементы в меню Формат > Объединить ячейки электронной таблицы.

18 марта 2013 г.

  • Действие «Опубликовать в галерее» переименовано в «Отправить в галерею», чтобы избежать путаницы с публикацией веб-приложения.

13 марта 2013 г.

март 11,2013

  • Добавлен метод Utilities.formatString() , который позволяет производить подстановку заполнителей в формате, подобную printf .
  • Просмотр > Расшифровка выполнения теперь показывает, сколько времени потребовалось для выполнения каждого оператора.
  • Добавлено свойство DocsList.FileType.FORM , чтобы предоставить DocsList доступ к новым формам Google.
  • Если сценарий используется совместно с редакторами, не являющимися его владельцем, и публикуется как веб-приложение, эти другие редакторы теперь могут обновить версию приложения и получить доступ к его URL-адресу разработки (который заканчивается на /dev ).
  • Было применено следующее исправление:
    • Проблема 1917 : больше невозможно установить сценарий несколько раз из галереи сценариев.

4 марта 2013 г.

Февраль 2013

25 февраля 2013 г.

  • При установке цветов шрифта в электронной таблице с помощью Range.setFontColor() или Range.setFontColors() имена цветов теперь будут автоматически преобразовываться в соответствующие шестнадцатеричные значения. Например, после вызова setFontColor('red') метод getFontColor() вернет "#ff0000".
  • Были применены следующие исправления:
    • Проблема 2435 : Скрипты, привязанные к электронным таблицам, которые используют Browser.inputBox() , больше не дают сбоев.
    • Проблема 1128 : цвета шрифта, установленные с помощью Range.setFontColor() или Range.setFontColors() , теперь отображаются правильно при печати электронной таблицы или ее экспорте в формате PDF.
    • Проблема 529 : SpreadsheetApp.getActiveSheet() больше не запускается в onOpen() для определенных электронных таблиц.

14 февраля 2013 г.

  • Добавлен метод DocumentApp.openByUrl() , который позволяет открывать документы напрямую по их URL.
  • Были применены следующие исправления:
    • Проблема 2382 : File.makeCopy() больше не выдает ошибку при копировании новой формы Google.
    • Проблема 2367 : сообщение об ошибке для недопустимых запросов ScriptDbInstance.between() теперь более описательное.
    • Проблема 747 : в сообщениях об ошибках теперь указывается, в каком файле кода произошла ошибка.

11 февраля 2013 г.

  • Добавлена ​​возможность напрямую прикреплять объекты StaticMap к сообщениям электронной почты.
  • Были применены следующие исправления:
    • Проблема 2388 : на панели управления квотами снова отображается правильное количество столбцов.
    • Проблема 2344 : скрипты, содержащие onInstall() , больше не вызывают ошибку при установке из галереи скриптов.
    • Проблема 2250 : Даты теперь регистрируются в часовом поясе сценария.
    • Проблема 2021 : UiInstance.setStyleAttribute() теперь правильно устанавливает свойство backgroundImage во всех поддерживаемых браузерах.
    • Проблема 1811 : теперь отладчик может входить в библиотеки, используемые в режиме разработки.
    • Проблема 1300 : если сценарий, привязанный к одной электронной таблице, использует устанавливаемый onEdit() для мониторинга отдельной электронной таблицы, параметр события range , передаваемый функции обратного вызова, теперь правильно распознает отслеживаемую электронную таблицу как родительскую.
    • Проблема 1226 : клиентские обработчики для ListBox теперь правильно запускаются в UiApp.
    • Проблема 1030 : метод setStyleAttribute() различных объектов UiApp теперь правильно устанавливает атрибут «плавающий» в Firefox.
    • Проблема 1014 : setFocus() теперь работает правильно.
    • Проблема 231 : добавлены методы show() и hide() в PopupPanel .

Января 2013

31 января 2013 г.

  • Добавлен метод SpreadsheetApp.openByUrl() , который позволяет открывать электронные таблицы напрямую по их URL-адресу.
  • Изменено поведение ClockTriggerBuilder , так что теперь он учитывает часовой пояс сценария, а не тихоокеанское время по умолчанию.
  • Диалоговое окно «Найти» редактора теперь поддерживает поиск по всем файлам в проекте.
  • Улучшено сообщение об ошибке, возвращаемое Range.setValues() , когда значения не проходят проверку в этих ячейках.
  • Были применены следующие исправления:
    • Проблема 2317 : Проверка адреса электронной почты в UiApp теперь корректно работает при вводе в верхнем регистре.
    • Проблема 2306 : диалоговое окно GUI Builder, показанное для «Файл» > «Открыть», больше не имеет двух кнопок «Отмена».
    • Проблема 2265 : Статические карты теперь могут содержать намного больше маркеров.
    • Проблема 2203 : CalendarEvent.getGuestList() теперь возвращает создателя события в дополнение к другим гостям.
    • Проблема 2137 : DateBox , содержащий пустую или недопустимую дату, теперь будет иметь null значение при обработке в обработчике сервера или обратном вызове doPost() . По умолчанию установка пустой или недопустимой даты не вызовет событие изменения значения, но вы можете вызвать метод setFireEventsForInvalid() , чтобы переопределить это поведение.
    • Проблема 1795 : виджеты TextArea , созданные с помощью GUI Builder, теперь по умолчанию отображают полосы прокрутки, когда текст слишком длинный.
    • Проблема 1764 : ClockTriggerBuilder.onWeekDay() теперь работает правильно при использовании в сочетании с everyWeeks() .
    • Проблема 1695 : GmailLabel.getThreads() теперь работает правильно, если имя ярлыка содержит специальные символы.
    • Проблема 1366 : методы getEditors() и getViewers() класса File теперь возвращают полный адрес электронной почты для записей, являющихся группами.
    • Проблема 918 : последующие вызовы Sheet.hideColumns() на разных листах больше не приводят к ошибке.
    • Проблема 53. Строки, содержащие только правила проверки данных, больше не учитываются в Sheet.getLastRow() .

24 января 2013 г.

  • Были добавлены следующие запрошенные функции:
    • Проблема 1642 : при подключении к внешней базе данных с помощью Jdbc.getConnection теперь можно включить расширенный аргумент useJDBCCompliantTimezoneShift .
    • Проблема 619 : UiInstance в createAnchor теперь разрешает ссылки с использованием схемы mailto .
    • Проблема 286 : метод fetch UrlFetchApp теперь принимает followRedirects в качестве расширенного аргумента.
  • Были применены следующие исправления:
    • Проблема 1012 : новые записи календаря, охватывающие изменение времени (например, начало перехода на летнее время в этом часовом поясе), теперь создаются с правильной продолжительностью.
    • Проблема 912. Теперь можно отображать закрытые изображения в пользовательском интерфейсе UiApp или HtmlService, если изображения доступны пользователям приложения.
    • Проблема 815 : UiInstance createToggleButton(upText, downText) теперь работает правильно.
    • Проблема 155 : Calendar.createAllDayEvent теперь всегда устанавливает для события правильную дату.

17 января 2013 г.

  • Добавлен метод after(durationMilliseconds) в класс ClockTriggerBuilder , чтобы упростить создание одноразовых триггеров.
  • Были применены следующие исправления:
    • Проблема 2155 : Ссылка на удаление, отправленная пользователю по электронной почте после авторизации скрипта, встроенного в сайт Google, теперь работает правильно.
    • Проблема 1882 : значки в редакторе сценариев теперь правильно отображаются на компьютерах Mac с дисплеями Retina.

15 января 2013 г.

  • Было применено следующее исправление:
    • Проблема 2204 : Utilities.formatDate больше не отклоняет определенные форматы часовых поясов, такие как EST, CST и т. д.