Гид по технологиям

Автоматическая отправка счетов из Google Sheets

7 min read Автоматизация Обновлено 22 Apr 2026
Автоматическая отправка счетов из Google Sheets
Автоматическая отправка счетов из Google Sheets

google-sheets-teamwork

В этой статье вы научитесь автоматизировать отправку ежемесячных счетов, даже если никогда не программировали. Покажем два варианта: простой Google Apps Script и запись макроса. Оба варианта могут формировать PDF‑прицеп и отправлять его по электронной почте.

Зачем это нужно

Автоматизация экономит время и снижает риск забыть отправить счёт. Это особенно полезно для фрилансеров, небольших предприятий и тех, кто выставляет однотипные счета регулярно.

Ключевая идея: один шаблонный лист с именем, заранее фиксированным (например, “Invoice”), копируется и отправляется как PDF по расписанию (1‑е число месяца). После отправки вы переименовываете лист в архивный месяц и создаёте новый пустой шаблон «Invoice» для текущего месяца.

Important: Скрипт/макрос получает доступ к вашим данным Google (Sheets и Gmail) и запросит авторизацию при первом запуске.

Что подготовить перед стартом

  • Убедитесь, что таблица для текущего месяца всегда имеет одно и то же имя, например: Invoice.
  • В шаблоне счёта убедитесь, что вид печати и формат страниц настроены так, как вы хотите видеть в PDF.
  • Подготовьте список получателей — один e‑mail или несколько адресов через запятую.
  • Сделайте тестовую копию файла для пробного запуска.

set up invoice

Шаг 1. Создание простого Google Script

  1. В Google Sheets откройте меню Tools → Script editor.
  2. Переименуйте проект скрипта в что‑то понятное (например, “Invoice Sender”).
  3. Вставьте следующий код в редактор (пример готового, очень простого скрипта):
function myFunction() {  
  var ss = SpreadsheetApp.getActiveSpreadsheet();  
  var filename = "Current Month " + ss.getName();  
  var SendBook = ss.copy(filename);  
  var ToUser = "xxxxx@gmail.com"  
  MailApp.sendEmail({  
    to: ToUser,  
    subject: 'Here is my invoice for last month!',  
    body: 'Hi! I have attached my invoice for this month. Thanks for the work, really appreciate it! -Ryan',  
    attachments: [SendBook.getBlob().setName(filename)]  
  });  
}

Пояснения к коду: коротко — скрипт создаёт копию текущей книги, даёт ей имя, формирует BLOB и отправляет письмо с вложением. Измените переменную ToUser на свой адрес(а) и отредактируйте subject/body по вкусу.

Важно: чтобы проверить скрипт, подставьте ваш e‑mail в ToUser и запустите вручную (кнопка Play). Система попросит авторизацию доступа к вашему аккаунту.

create google script

Если всё прошло успешно, вы получите письмо с PDF‑вложением, которое можно открыть без Google Sheets.

automated invoice email

Шаг 2. Автоматизация — настройка триггера

  1. В редакторе скриптов выберите Edit → Current project’s triggers.
  2. Нажмите на ссылку, если триггеры ещё не настроены.
  3. Создайте новый триггер: выберите функцию (myFunction), Event source — Time‑driven, Type of time based trigger — Month timer, Day of month — 1 (первое число).

После сохранения Google будет запускать скрипт автоматически в выбранный день. Убедитесь, что файл «Invoice» готов к отправке к этому дню.

current project triggers

Note: Временные триггеры запускаются по зоне, указанной в настройках вашей таблицы/аккаунта. Проверьте часовой пояс в Settings для правильного времени отправки.

Шаг 3. Запись макроса вместо скрипта (альтернатива без кода)

Если вы предпочитаете не редактировать код, можно записать макрос, который отправляет текущий лист как PDF.

  1. В Invoice Sheet: Tools → Macros → Record Macro.
  2. Выполните через меню File → Email as attachment и заполните поля (адреса, тема, текст).
  3. Нажмите Send во время записи, затем Save и дайте макросу понятное имя.

record google sheets macro

Макрос запишет вашу последовательность действий (включая адресата и текст письма). Протестируйте макрос один раз вручную.

email as attachment

Шаг 4. Автоматизация макроса

Макросы в Google Sheets записываются как функции в файле макросов (macros.gs). Их можно вызывать через триггеры так же, как и обычные скрипты.

  1. Откройте Tools → Script editor и найдите файл macros.gs.
  2. Запомните имя функции макроса (например, myFunction1).

get macro function name

  1. Edit → Current project’s triggers → создайте новый триггер, выберите вашу функцию и поставьте Time‑driven → Month timer → Day 1.

trigger for macro function

Теперь макрос будет запускаться автоматически и отправлять PDF тем адресатам, которых вы указали при записи.

set up macro trigger

Практические советы и хиты по устойчивой автоматизации

  • Название шаблона: используйте жёсткое фиксированное имя (Invoice), чтобы скрипт всегда находил нужный лист. После отправки переименовывайте в формат YYYY‑MM или “May 2026” для архива.
  • Шаблон печати: проверьте поля печати, размеры страницы и отступы — PDF будет генерироваться именно из текущего вида листа.
  • Множественные адресаты: перечисляйте через запятую в переменной ToUser.
  • Доступ и безопасность: используйте отдельный сервисный аккаунт только для рассылки, если автоматизация внутри организации.

Чек‑лист перед включением автоматизации

  • Шаблон “Invoice” готов и форматирован для печати.
  • Текст письма и тема проверены.
  • В переменной ToUser указан рабочий e‑mail (или список адресов).
  • Тестовый прогон прошёл успешно (скрипт отправил письмо).
  • Настроен триггер на 1‑е число месяца и проверен часовой пояс.

SOP: Пошаговый план на ежемесячную рассылку

  1. В течение месяца ведите данные в листе Invoice.
  2. В последний день месяца убедитесь, что все позиции окончены.
  3. 1‑го числа скрипт/макрос автоматически сработает. Если вы хотите вручную отправить — запустите функцию через редактор или используйте меню Add‑ons → Macros.
  4. Переименуйте отправленный лист в архивный формат (например, 2026‑04) и создайте новый шаблон Invoice на текущий месяц.
  5. Проверьте почтовые логи (входящие у получателей) и откорректируйте при необходимости.

Критерии приёмки

  • Письмо доставлено на указанный(ые) адрес(а).
  • Во вложении — корректный PDF с содержимым счёта и ожидаемым форматированием.
  • Время отправки соответствует дню и часовому поясу.

Тестовые сценарии и критерии приёмки

  1. Тест 1: Запуск скрипта вручную с вашим адресом — ожидаемый результат: письмо приходит в течение 1–2 минут.
  2. Тест 2: Настройка триггера на ближайшую минуту (для отладки) — результат: автоматический запуск и получение письма.
  3. Тест 3: Макрос с несколькими адресатами — результат: все адресаты получают письмо.
  4. Тест 4: Проверка PDF — все поля и таблицы видны, нет обрезанных колонок.

Критерии приёмки: 4/4 — все тесты прошли без ошибок.

Отказоустойчивость и частые проблемы

  • Ошибка авторизации: удалите и повторно дайте разрешения скрипту. Проверьте аккаунт, под которым вы запускаете скрипт.
  • Письмо не отправляется: проверьте переменную ToUser, не стоит ли в ней опечатка; проверьте, не заблокирован ли исходящий трафик почты (для корпоративных доменов).
  • PDF выглядит неправильно: откройте Print preview в Google Sheets и скорректируйте настройки страницы.
  • Макрос перестал работать после изменения интерфейса Google Sheets: перезапишите макрос или используйте Apps Script — он стабильнее при изменениях интерфейса.

Альтернативные подходы

  • Сервисы интеграции (Make, Zapier): могут цеплять Google Sheets и отправлять PDF по расписанию, но обычно платные.
  • Формирование PDF сервером: если у вас бэкенд, можно генерировать PDF из шаблонов (например, HTML → PDF) и отправлять через SMTP.
  • Google Workspace Add‑ons: для корпоративных пользователей есть плагины для выставления и отправки счётов.

Роли и ответственность (кто что делает)

  • Фрилансер/владелец бизнеса: обеспечивает актуальность данных в шаблоне и проверяет отправку первый месяц.
  • Администратор IT: настраивает права доступа и, при необходимости, сервисный аккаунт.
  • Бухгалтер: проверяет формат счёта и соответствие налоговым требованиям.

Маленькая методология именования и архивации

Хорошая практика:

  • Текущий шаблон: Invoice
  • После отправки: Invoice‑YYYY‑MM (например, Invoice‑2026‑04)
  • Архивация: сохранить в отдельной папке «Invoices/2026» для удобства поиска.

Ментальные модели — когда использовать скрипт, а когда макрос

  • Скрипт: если нужна гибкость, дополнительные манипуляции с данными, логирование или интеграция с другими API.
  • Макрос: если задача простая и повторяется, и вы не хотите писать код.

Шаблон письма (пример)

Тема: Счёт за услуги — [название месяца]

Тело письма:

Здравствуйте,

Прикрепляю счёт за [месяц]. Спасибо за сотрудничество.

С уважением, [Ваше имя]

Быстрый список проверки перед отправкой (подготовка к первому запуску)

  • Проверьте имя листа Invoice.
  • Настройте тему и текст письма.
  • Подставьте тестовый e‑mail и выполните ручной запуск.
  • Настройте триггер и убедитесь в часовом поясе.

Короткая памятка по безопасности

  • Не делитесь скриптом с посторонними без проверки кода.
  • Для корпоративных автоматизаций используйте сервисные аккаунты и ограничьте права.
  • Регулярно просматривайте журналы (execution logs) скриптов на предмет ошибок.

Краткое резюме

Автоматизация отправки счетов из Google Sheets — простая и мощная вещь: вы можете выбрать скрипт или макрос, настроить месячный триггер и забыть о рутинной задаче. Тестируйте перед включением, следуйте чек‑листам и держите шаблон актуальным.

Summary:

  • Подготовьте шаблон Invoice.
  • Выберите: скрипт (больше возможностей) или макрос (просто записать действия).
  • Настройте Time‑driven триггер на 1‑е число месяца.
  • Проведите тесты и запустите в прод.

Счастливой автоматизации — и меньше забытых счетов!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Убрать раздражающие функции Facebook — руководство
Социальные сети

Убрать раздражающие функции Facebook — руководство

Приложения по умолчанию на Android — настройка и управление
Android.

Приложения по умолчанию на Android — настройка и управление

Установить REMnux в VirtualBox — руководство
Кибербезопасность

Установить REMnux в VirtualBox — руководство

Список выполненного: мотивация и шаблоны
Продуктивность

Список выполненного: мотивация и шаблоны

Как сохранить веб‑страницу для офлайн‑чтения
Интернет

Как сохранить веб‑страницу для офлайн‑чтения

Как подключить DualSense к Mac
Гайды

Как подключить DualSense к Mac