Как узнать на каком листе пользователь

Есть лист в таблице, из которого люди берут данные на свои вкладки. Они отмечают строки галочками, запускают скрипт и эти строки переносятся к ним на свои листы. Из общего листа эти строки убираются. При одновременной работе в этом общем листе возникает путаница, одновременно ставят галочки несколько человек и к тому кто первый запустил скрипт во вкладку переносятся все отмеченные строки . И свои и чужие. Подскажите подход к решению этой проблемы. Выводить сообщение типа "Лист занят подождите" и блокировать выполнение скрипта другим пользователем? Как программно узнать что кто то открыл данный лист? На скрине лист "Общая Клиенты" введите сюда описание изображения

Вот пример кода

    function onOpen(){
  var u1 = SpreadsheetApp.getUi();
  u1.createMenu("-МЕНЮ-")
  .addItem("Из Общей Клиенты в Пользователь1", "toSheetUser1")
  .addItem("Из Общей Клиенты в Пользователь2", "toSheetUser2")
  .addToUi();
   }
   function toSheetUser1(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  list =  ss.getSheetByName('Общая Клиенты');
  var lrlist = list.getLastRow();
  listUser =  ss.getSheetByName('Пользователь 1');  
  for ( i=2; i<=lrlist; i++){// перенос данных
  var lrlistUser = listUser.getLastRow();
  var fl = list.getRange(i, 1).getValue();
  if(fl == true){
  var name = list.getRange('B'+ i).getValue();   
  listUser.getRange('A'+ (lrlistUser+1)).setValue(name);
  var phone = list.getRange('D'+ i).getValue();   
  listUser.getRange('B'+ (lrlistUser+1)).setValue(phone);  
  }}
  for ( i=2; i<=lrlist; i++){// удаление отмеченных строк
  var fl = list.getRange(i, 1).getValue();
  if(fl == true){list.deleteRow(i); }
  }
  }
  function toSheetUser2(){
 // тот же код что и в toSheetUser1() только данные 
// записываются в 'Пользователь 2'
  }

Ответы (0 шт):