@Dashaz9695

Ошибка в скрипте при создании файлов по шаблону и информации из гугл таблицы?

Создан скрипт. При выполнении выдает ошибку:
Ошибка Exception: The document is inaccessible. Please try again later.
Creator @ Код.gs:16

Сам скрипт:

function Creator() {

  const docFile = DriveApp.getFileById("1BKW2b6mbGtkQYFjZLrvSFxilunh0enp_");
  // это файл шаблона
  const tempFolder = DriveApp.getFolderById("1rVS7jyDIz3sPa6iK28cxbEuMMuR4g3_k");
  // это директория для новых файлов

  var list = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var l = list.getLastRow();
  //определяем кол-во строк

  for (let i = 3; i <= l; i++) {

    const tempFile = docFile.makeCopy(tempFolder);
    // делаем копию шаблона
    const tempDocFile = DocumentApp.openById(tempFile.getId());
    // открываем созданную копию
    const body = tempDocFile.getBody();
    // тело файла копии

    var a1 = list.getRange(i, 1).getValue();
    //номер письма
    var a2 = list.getRange(i, 2).getValue();
    //дата письма
    var a3 = list.getRange(i, 4).getValue();
    //Заказчик
    var a4 = list.getRange(i, 5).getValue();
    //Договор с заказчиком
    var a5 = list.getRange(i, 6).getValue();
    //вид работ
    var a6 = list.getRange(i, 7).getValue();
    //адрес объекта
    var a7 = list.getRange(i, 8).getValue();
    //Поставщик
    var a8 = list.getRange(i, 9).getValue();
    //ИНН/КПП
    var a9 = list.getRange(i, 10).getValue();
    //Банк
    var a10 = list.getRange(i, 11).getValue();
    //Договор поставки
    var a11 = list.getRange(i, 12).getValue();
    //Счет
    var a12 = list.getRange(i, 13).getValue();
    //Сумма
    var a13 = list.getRange(i, 14).getValue();
    //Сумма прописью
    var a14 = list.getRange(i, 15).getValue();
    //НДС

    body.replaceText("{Номер письма}", a1);
    body.replaceText("{Дата письма}", a2);
    body.replaceText("{Заказчик}", a3);
    body.replaceText("{Договор с заказчиком}", a4);
    body.replaceText("{вид работ}", a5);
    body.replaceText("{адрес объекта}", a6);
    body.replaceText("{Поставщик}", a7);
    body.replaceText("{ИНН/КПП}", a8);
    body.replaceText("{Банк}'", a9);
    body.replaceText("{Договор поставки}", a10);
    body.replaceText("{Счет}", a11);
    body.replaceText("{Сумма}", a12);
    body.replaceText("{Сумма прописью}", a13);
    body.replaceText("{НДС}", a14);

    tempDocFile.setName(a1 + " " + a2).saveAndClose();
  }
}
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Эта ошибка возникает из-за того, что вы делаете копию файла в цикле и открываете ее для редактирвоания. Сервис Документов не такой скорый как китайский поезд, поэтому, не всегда это работает.

Попробуйте брать файл шаблона в цикле, хоть это и неэффективно
Попробуйте добавить паузу после сохранения

Хорошей таблетки для этой проблемы нет. Может быть только если использовать Advanced Service Docs
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Dashaz9695 Автор вопроса
Заменила файл шаблона docFile, что решило проблему
Ответ написан
aekozhevnikov
@aekozhevnikov
hungryking
Посмотрите, пожалуйста, вот этот ответ
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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