@delongeroman

Почему замещаются и дублируются строчки при сортировке в гугл таблицах?

5f455816e62f8225416144.png
Есть вот такая таблица, вверху форма внесения заказа, внизу заказы. На самих заказах стоит защита и заказы вносятся из формы по триггеру "при редактировании". Когда заказов достаточно много, около 25-30, может случиться либо замена наложение заказов друг на друга при сортировке, либо дублирование, такое случается крайне редко, но мне все же нужно устранить данную проблему и я не могу понять в чем причина
function vnestizakaz() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var as = ss.getActiveSheet()
  if (as.getRange(3, 14).isChecked() === true){
  var vvod = as.getRange(2, 1, 1, 10).getValues()
  var itog = 0
  var raschet = as.getRange(2, 12).getValue()
  var lr = as.getLastRow()
  var lc = as.getLastColumn()
    var clear = as.getRange(2, 3, 1, 7).clear({formatOnly: false, contentsOnly: true}) 
    var clear2 = as.getRange(2, 12).clear({formatOnly: false, contentsOnly: true}) 
    if(raschet != ""){
   as.getRange(lr+1, 1, 1, 10).setValues(vvod)
   as.getRange(lr+1, 11).setFormulaR1C1("=R[0]C[-2] + R[0]C[-1]")
   as.getRange(lr+1, 12).setValue(raschet)
   as.getRange(lr+1, 13).setValue("0")
   as.getRange('A7:P').sort([{column: 2, ascending: true}]); 
      }
   as.getRange(3, 14).uncheck()
  }
}
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 2
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
Вполне вероятно что один onEdit наползает на другой, смотрите в сторону LockService чтобы побороть параллельные запуски скриптов
Ответ написан
stomaks
@stomaks
Разработчик Google Apps Script (stomaks.me)
Скорее всего дубли возникают из-за одновременного запуска скрипта.
Солидарен с Григорием попробуйте LockService за предотвращения колизии.

Как вариант можете вынести сортировку в отдельную функцию и ее повесить на минутный триггер.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы