Работа администратора наполнена однотипными задачами. В крупных компаниях такие задачи, как составление договоров, выставление коммерческих предложений и прочих документов, автоматизируется с помощью CRM систем.
Если компания небольшая, то для неё нерентабельно отдавать несколько десятков тысяч рублей в год за настройку и обслуживание подобной системы. Автоматизировать работу можно и бесплатными методами.
Один из таких инструментов Google Docs. Он представляет собой бесплатный онлайн-офис, который может послужить достойной альтернативой Microsoft Office. В этой статье мы расскажем, как формировать документы на основе шаблона с помощью данных из Google Таблиц.
Шаг 1
Генерацию документов будем рассматривать на примере типового договора на оказание услуг. Создадим шаблон документа в Google Docs. Переменные, которые нужно будет внести в договор, сразу укажем в фигурных скобках {данные}:
Шаг 2
Создадим новую таблицу в Google Таблицах. И пропишем основные столбцы для внесения данных, которые понадобятся нам для генерации документа.
Шаг 3
Далее необходимо открыть редактор скриптов в Google Таблицах. Для этого выберите "Расширения" -> "Apps Script" :
Шаг 4
Пишем скрипт внутри функции function myFunction() {} (внутри фигурных скобок).
1. Cначала опишем документы, с которыми будет работать скрипт:
var list = SpreadsheetApp.getActiveSheet();
// возвращает активный лист (т.е. текущую открытую таблицу)
const docFile = DriveApp.getFileById("ID_шаблона");
// шаблон файла договора
const tempFolder = DriveApp.getFolderById("ID_папки");
// адрес папки, куда сохраняются новые договоры
ID можно получить из URL папки или файла:
2. Далее создаем копию документа на основе шаблона и передаем его в скрипт:
const tempFile = docFile.makeCopy(tempFolder);
// делаем копию шаблона для нового договора
const tempDocFile = DocumentApp.openById(tempFile.getId());
// открываем созданный док заказ
const body = tempDocFile.getBody();
// получаем тело (контент) документа в виде временного файла
3. Затем получаем переменные из таблицы:
var number = list.getRange("A2").getValue(); // получаем номер договора из ячейки "A2"
var data = list.getRange("B2").getValue(); // получаем дату договора из ячейки "B2"
var firma = list.getRange("C2").getValue(); // получаем название фирмы из ячейки "C2"
var inn = list.getRange("D2").getValue(); // получаем инн фирмы из ячейки "D2"
var forma = list.getRange("E2").getValue(); // получаем организационную из ячейки "E2"
var fullfio = list.getRange("A5").getValue(); // получаем полное ФИО руководителя из ячейки "A5"
var fio = list.getRange("A6").getValue(); // получаем полное ФамилиюИО руководителя из ячейки "A6"
var post = list.getRange("B5").getValue(); // получаем должность руководителя из ячейки "B5"
var pravo = list.getRange("C5").getValue(); // получаем данные о правомочности руководителя из ячейки "C5"
var kpp = list.getRange("D5").getValue(); // получаем данные о КПП из ячейки "D5"
4. Передаем значения переменных в файл:
// заполняем шаблон договора, подставляя полученные данные в переменные:
body.replaceText("{номер_договора}", number);
body.replaceText("{дата}", data);
body.replaceText("{Форма}", forma);
body.replaceText("{Заказчик}", firma);
body.replaceText("{ИНН}", inn);
body.replaceText("{должность}", post);
body.replaceText("{ФИО}", fullfio);
body.replaceText("{основание}", pravo);
body.replaceText("{КПП}", kpp);
body.replaceText("{ФамилияИО}", fio);
5. Присваиваем файлу название, сохраняем и закрываем договор:
const newFileName = 'Договор №'+number+' от '+ data; // присваиваем имя договору
tempFile.setName(newFileName);
// закрываем и сохраняем полученный документ
tempDocFile.saveAndClose();
6. На панели сверху нажимаем значок сохранить скрипт
Шаг 5
Для удобной работы со скриптом из Google Таблицы добавим скрипт, как макрос. Для этого выберите "Расширения" -> "Макросы"->"Импортировать макрос":
Открывается всплывающее окно импорта функции, нажимаем "Добавить функцию":
Проверяем, выбираем "Расширения" -> "Макросы" и в открывшемся списке видим наш скрипт "myFunction":
Шаг 6
Настроим авторизацию скрипта. Кликаем на myFunction в разделе макросов. Выходит всплывающее окно авторизации. Не пугайтесь, это нормально. Процедуру авторизации потребуется пройти только один раз. Мы должны разрешить скрипту доступ к нашим документам на Google диске. Нажимаем "ОК":
Далее выбираем свой аккаунт в открывшемся окне. Ещё два шага и авторизация будет завершена. В следующем окне выбираем "Дополнительные настройки":
В дополнительных настройках кликаем на последнюю строку с названием скрипта: "Перейти на страницу "Генерация договора" (небезопасно)". В следующем окне нажимаем на кнопку "Разрешить".
Шаг 7
Проверим работу скрипта. Кликаем на myFunction в разделе макросов. Через несколько секунд видим уведомление, что скрипт выполнен. Готовый договор лежит в указанной нами папке с заполненными данными.
В следующих статьях мы расскажем, как упростить процесс авторизации скрипта, вывести скрипт в меню Google Таблицы, генерировать сразу несколько документов, одним скриптом и многое другое.
Подписывайтесь, учитесь, автоматизируйте))