@PankinGS

Иерархия файлов в проекте?

На docs.google.com/spreadsheets/ создал таблицу со своими данными, потом перешел на редактор скриптов. После перехода создался проект на script.google.com привязанный к данной таблице.
Там создался файл
код.gs
по молчанию, но его можно переименовать.

Вопрос объясните про иерархию файлов, какой запускается первым.
В документации написано что при открытии таблицы первой запускается onOpen().
А если я переименую файл созданный по умолчанию и создам другой с названием:
код.gs
?

Обоснование: есть файл
код.gs
и в нем функция onOpen().
Но когда я создал файл print.gs в данном проекте и в нем создал свою функцию, то стала запускаться первая функция из этого файла первой при открытии таблицы( не onOpen).
Почему и где почитать ?
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Это зависит от версии среды исполнения V8, STABLE, DEPRECATED_ES5.

Для V8 порядок файлов однозначно не играет роли и даже не все файлы загружаются для исполнения. Поэтому лучше избегать этой условности.

В STABLE, DEPRECATED_ES5 порядок обычно зависит от алфавитного расположения файлов, но это негарантировано.

Что происходит у вас.

В одном проекте есть два файла код.gs и код2.gs. В обоих есть функция onOpen. При загрузке текста программы в исполнительную среду одна функция перезапишет другую и исполняться на самом деле будет только одна функция, т.к. другой нет и в помине (она перезаписана). Какая функция будет перезаписана, это зависит от среды (см. выше).

Что делать.

Одним из решений может быть создание одной функции onOpen и вызова из нее двух других

function onOpen(e){
  onOpen1(e);
  onOpen2(e);
}

function onOpen1(e){
  ...
}

function onOpen2(e){
  ...
}


Или же вы можете создать еще один проект в том же контейнере [Таблице] (см. меню текущего проекта).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы