function onEdit(e) {
  var sheet = e.source.getSheetByName('Основной лист'); // Имя первого листа
  var editedRange = e.range;
  var editedRow = editedRange.getRow();
  var targetSheet = e.source.getSheetByName('Доп лист'); // Имя второго листа
  var targetDataColumns = ["Ссылка", "Данные №2", "Данные №3"]; // Список столбцов для копирования
  if (sheet.getName() == 'Основной лист' && editedRow > 1) {
    var editedData = sheet.getRange(editedRow, 1, 1, sheet.getLastColumn()).getValues()[0];
    var targetRow = findRowByTitle(targetSheet, editedData[editedData.length - 1]);
    if (targetRow === -1) {
      targetRow = targetSheet.getLastRow() + 1;
    }
    var targetData = [];
    for (var i = 0; i < targetDataColumns.length; i++) {
      var columnIndex = getColumnIndex(sheet, targetDataColumns[i]);
      targetData.push(editedData[columnIndex]);
    }
    targetSheet.getRange(targetRow, 1, 1, targetData.length).setValues([targetData]);
  }
}
function findRowByTitle(sheet, title) {
  var columnValues = sheet.getRange(2, sheet.getLastColumn(), sheet.getLastRow() - 1, 1).getValues();
  for (var i = 0; i < columnValues.length; i++) {
    if (columnValues[i][0] == title) {
      return i + 2; // Смещение на 2 из-за индексации массивов и заголовка
    }
  }
  return -1; // Если не найдено
}
function getColumnIndex(sheet, columnName) {
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
  for (var i = 0; i < headers.length; i++) {
    if (headers[i] == columnName) {
      return i + 1; // Смещение на 1 из-за индексации массивов
    }
  }
  return -1; // Если не найдено
}