Size: a a a

Чат | Google Таблицы и скрипты

2020 February 23

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Вот вся функция:
var sheet = e.range.getSheet();
var currentCell = sheet.getCurrentCell();
var currentCellRow = currentCell.getRow();
var contactId = sheet.getRange(currentCellRow, 1).getValue();
Browser.msgBox(contactId);
var contact = ContactsApp.getContactById(contactId);
Browser.msgBox(contactId);
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Это триггер на onEdit
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Кстати, если закомментить получение контакта, сообщение выводится два раза
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
То есть именно проблема с получением контаткта, но ID точно правильный
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
Вячеслав Гнидко
То есть именно проблема с получением контаткта, но ID точно правильный
Что в отчёте о выполнении?
источник

G

GIVER in Чат | Google Таблицы и скрипты
Создать независимую копию JavaScript массива

В JavaScript все присваивания объектов реализуются через передачу ссылок на них.

var oldArray = ["a", "b", "c"];
var newArray = oldArray;

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

Если вы хотите сделать независимую копию массива, то нужно использовать метод slice без аргументов.

var oldArray = ["a", "b", "c"];
var newArray = oldArray.slice();

Массивы oldArray и newArray будут состоять из одних и тех же элементов, но фактически это будут разные объекты.

Важно запомнить, что если массив состоит из сущностей Array или Object, то они по прежнему будут ссылаться на родительские объекты.

P.S
. Медленный способ глубокого клонирования
Способ, который работает и в случае, когда в массиве есть массивы или объекты:

var newArray = JSON.parse(JSON.stringify(oldArray))

#памятка
Telegram
Volond Apps
Создать независимую копию JavaScript массива

В JavaScript все присваивания объектов реализуются через передачу ссылок на них.

var oldArray = ["a", "b", "c"];
var newArray = oldArray;

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

Если вы хотите сделать независимую копию массива, то нужно использовать метод slice без аргументов.

var oldArray = ["a", "b", "c"];
var newArray = oldArray.slice();

Массивы oldArray и newArray будут состоять из одних и тех же элементов, но фактически это будут разные объекты.

Важно запомнить, что если массив состоит из сущностей Array или Object, то они по прежнему будут ссылаться на родительские объекты.

P.S. Медленный способ глубокого клонирования
Способ, который работает и в случае, когда в массиве есть массивы или объекты:

var newArray = JSON.parse(JSON.stringify(oldArray))

#памятка
источник

K

Kanat in Чат | Google Таблицы и скрипты
GIVER
Создать независимую копию JavaScript массива

В JavaScript все присваивания объектов реализуются через передачу ссылок на них.

var oldArray = ["a", "b", "c"];
var newArray = oldArray;

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

Если вы хотите сделать независимую копию массива, то нужно использовать метод slice без аргументов.

var oldArray = ["a", "b", "c"];
var newArray = oldArray.slice();

Массивы oldArray и newArray будут состоять из одних и тех же элементов, но фактически это будут разные объекты.

Важно запомнить, что если массив состоит из сущностей Array или Object, то они по прежнему будут ссылаться на родительские объекты.

P.S
. Медленный способ глубокого клонирования
Способ, который работает и в случае, когда в массиве есть массивы или объекты:

var newArray = JSON.parse(JSON.stringify(oldArray))

#памятка
Telegram
Volond Apps
Создать независимую копию JavaScript массива

В JavaScript все присваивания объектов реализуются через передачу ссылок на них.

var oldArray = ["a", "b", "c"];
var newArray = oldArray;

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

Если вы хотите сделать независимую копию массива, то нужно использовать метод slice без аргументов.

var oldArray = ["a", "b", "c"];
var newArray = oldArray.slice();

Массивы oldArray и newArray будут состоять из одних и тех же элементов, но фактически это будут разные объекты.

Важно запомнить, что если массив состоит из сущностей Array или Object, то они по прежнему будут ссылаться на родительские объекты.

P.S. Медленный способ глубокого клонирования
Способ, который работает и в случае, когда в массиве есть массивы или объекты:

var newArray = JSON.parse(JSON.stringify(oldArray))

#памятка
Володя красава👍 Отлично оформленный пост. Ссылки свои еще если бы так оформлял цены бы тебе не было))
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
Что в отчёте о выполнении?
Никогда не пользовался, к моему стыду. Сейчас нашел по Вашей наводке. )

Exception: Вам не разрешено вызывать пользователя ContactsApp.getContactById. Необходимые разрешения: https://www.google.com/m8/feeds.
   at onEdit(Общее:28:33)

Как это понимать, если скрипт у меня разрешение просил, когда считывал данные, и я ему дал,
источник

G

GIVER in Чат | Google Таблицы и скрипты
Kanat
Володя красава👍 Отлично оформленный пост. Ссылки свои еще если бы так оформлял цены бы тебе не было))
Просто потерял полчаса на эту маленькую очевидность
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Вячеслав Гнидко
Никогда не пользовался, к моему стыду. Сейчас нашел по Вашей наводке. )

Exception: Вам не разрешено вызывать пользователя ContactsApp.getContactById. Необходимые разрешения: https://www.google.com/m8/feeds.
   at onEdit(Общее:28:33)

Как это понимать, если скрипт у меня разрешение просил, когда считывал данные, и я ему дал,
А как это разрешение получить?
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
Вячеслав Гнидко
Никогда не пользовался, к моему стыду. Сейчас нашел по Вашей наводке. )

Exception: Вам не разрешено вызывать пользователя ContactsApp.getContactById. Необходимые разрешения: https://www.google.com/m8/feeds.
   at onEdit(Общее:28:33)

Как это понимать, если скрипт у меня разрешение просил, когда считывал данные, и я ему дал,
поставьте триггер на редактирование от себя, функцию назовите по другому.
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
поставьте триггер на редактирование от себя, функцию назовите по другому.
Извините, наверное, совсем дурацкий вопрос, а как это от себя? Код триггера у меня в моем скрипте написан
function onEdit(e) {
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
в редакторе скриптов найдите триггеры, и установите от своей учётки.
источник

D

Danylo Mysko in Чат | Google Таблицы и скрипты
Здравствуйте, стоит задача записывать изменение в ячейке на другой лист в виде дата:что изменилось. Как это можно реализовать? Тут примерно как это должно выглядеть готовым https://docs.google.com/spreadsheets/d/1P3Akjk0gtY7xZmx_ONqxVL09zp1R9johsv8ioPJDzdU/edit?usp=sharing
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
в редакторе скриптов найдите триггеры, и установите от своей учётки.
Я понял, сейчас буду разбираться. Может подскажите какой-нибудь мануал на эту тему, а то только осваиваю скрипты?
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
Что в отчёте о выполнении?
+
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
в редакторе скриптов найдите триггеры, и установите от своей учётки.
+
источник

РИ

Роман Игнатов... in Чат | Google Таблицы и скрипты
Вячеслав Гнидко
Я понял, сейчас буду разбираться. Может подскажите какой-нибудь мануал на эту тему, а то только осваиваю скрипты?
поменяйте название с onEdit на другое.
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
в редакторе скриптов найдите триггеры, и установите от своей учётки.
+
источник

ВГ

Вячеслав Гнидко... in Чат | Google Таблицы и скрипты
Роман Игнатов
поменяйте название с onEdit на другое.
Спасибо Вам большое за помощь!
источник