# Договор купли продажи можно собрать из строки в 2025 году

> Владелица автосалона показывает, как хранить данные сделки в Google Таблице и получать готовый договор купли-продажи из одной строки.

Источник: https://vibeceh.ru/cases/dogovory-kupli-prodazhi-v-google-tablice-dokument-iz-odnoj-stroki
Автор: Сергей Мазур · опубликовано 2026-08-17

Договор купли продажи можно собирать из одной строки Google Таблицы: в ней хранятся данные машины, продавца, покупателя, цены, зачёта и доплаты, а готовый документ создаётся по шаблону. Для меня ценность в другом: новый договор больше не начинается с копирования старого файла, где легко осталась чужая фамилия или другой VIN.

Ниже пошаговая инструкция из шести шагов. К каждому я даю готовый промпт: копируй его, описывай свою сделку и собирай рабочую связку без готового кода. Делюсь, потому что эту связку можно собрать на своей реальной задаче и сразу проверить глазами. Такой подход подходит автосервису, клинике, магазину, студии или бригаде, где каждый день повторяются одни и те же документы.

А началось всё с обычной перепроверки договора перед подписью.

В автосалоне несколько машин одновременно находятся на разных стадиях сделки. В автосалоне одновременно идут разные этапы нескольких сделок: по одной машине уточняются реквизиты продавца, по другой данные покупателя, а по третьей уже готовится договор. Я переношу сведения в шаблон, проверяю цену, способ оплаты, данные автомобиля, затем снова открываю документ и ищу то, что могло остаться от предыдущей продажи.

Особенно внимательно приходится смотреть на VIN, фамилию и сумму. Если договор начинался с копии старого файла, страх чужих данных сидел рядом до самой подписи. Точных замеров до и после я не делала, поэтому обещать экономию в минутах не буду. Ручная перепроверка никуда не исчезала, и именно она каждый раз съедала силы.

Мне нужна была не большая система с десятками разделов, а одна понятная строка на одну сделку. В ней должны быть все реквизиты, а рядом должна появляться ссылка на готовый договор.

## Как договор купли-продажи перестаёт собираться из старого файла?

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

Для каждой продажи я заполняю одну строку. Не открываю прошлый договор, чтобы взять из него структуру. Не меняю фамилию и VIN вручную в нескольких местах. Таблица становится началом сделки, а Google Документ - её результатом.

Пример заголовков:

```text
Номер договора | Дата | VIN | Марка и модель | Год выпуска | Продавец | Покупатель | Цена автомобиля | Зачёт старой машины | Доплата | Способ оплаты | Статус | Ссылка на договор
```

В одной строке лежит только одна машина и один набор сторон. Если данные пришли от менеджера, я переношу их в эту строку и проверяю глазами. После создания документа ссылка возвращается туда же.

Это не убирает проверку перед подписью. Она всё равно нужна. Но проверяю я уже готовый документ по строке, а не пытаюсь вспомнить, из какого старого файла его скопировала.

Данные из Google Таблицы можно подставлять в метки Google Документа. В этой связке таблица хранит исходные значения, а шаблон задаёт постоянный текст.

У меня стало меньше поводов открывать предыдущую сделку. В результате таблица хранит исходные данные, а шаблон остаётся постоянным.

## Почему своя таблица удобнее купленного сервиса?

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

Для автосалона правило простое: автомобиль, зачёт старой машины и доплата не должны незаметно смешиваться в одной цифре. Если ручной правкой поменять итоговую цену, легко потерять смысл сделки.

Поэтому я держу их отдельно:

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

Так проще увидеть, из чего сложилась сумма. Таблица не принимает юридическое решение за меня и не проверяет правильность условий. Она только переносит уже внесённые данные в нужные места.

Готовый сервис удобнее на старте. В нём уже есть экран, доступы и типовые поля. Но у конкретного готового сервиса есть свои границы. Если понадобится отдельное поле для зачёта, новый статус или другой порядок реквизитов, изменение будет зависеть от его тарифа, настроек и поддержки.

Денег подрядчику я не плачу, но своё время всё равно трачу на структуру, шаблон, доступы и проверку. Прямых расходов на подрядчика нет, если собирать всё самостоятельно, но стоимость собственного времени не рассчитана.

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

## Из чего состоит договор из одной строки?

Договор из одной строки состоит из Google Таблицы, привязанного к ней Google Apps Script, шаблона Google Документа и папки Google Drive. Строка хранит реквизиты сделки, столбцы соответствуют полям договора, скрипт читает выбранную строку и создаёт копию шаблона с подставленными значениями. Ссылка на копию возвращается в ту же строку.

![Кот удивляется схеме из таблицы, скрипта, документа, Drive и ссылки на договор.](https://s3.regru.cloud/crossmark/statejnik/images/guides/dogovory-kupli-prodazhi-v-google-tablice-dokument-iz-odnoj-stroki/kadr-1.webp)

Связка для электронного договора купли продажи выглядит так:

1. **Google Таблица хранит сделку.** Одна строка - одна машина и один договор. Столбцы - реквизиты автомобиля, продавца, покупателя и расчёта.
2. **Google Apps Script читает строку.** Он получает прямоугольный диапазон ячеек. Внутри это двумерный массив: сначала строки, затем столбцы.
3. **Google Документ служит шаблоном.** В постоянном тексте договора стоят метки вроде `{{Покупатель}}`, `{{VIN}}`, `{{Сумма}}`.
4. **Google Drive хранит результат.** Скрипт копирует шаблон в нужную папку, заменяет метки и получает ссылку.
5. **Таблица фиксирует результат.** В колонке ссылки появляется адрес готового документа, а рядом можно хранить статус.

Минимальная модель строки:

```text
Номер договора | Дата | Продавец | Покупатель | VIN | Марка и модель | Цена автомобиля | Зачёт | Доплата | Способ оплаты | Статус | Ссылка
```

Скрипт не угадывает, где в таблице находится VIN. Он читает столбцы в заданном порядке. Поэтому заголовки и порядок полей лучше определить до сборки и не менять без проверки.

Google Apps Script нужно создавать из самой таблицы: `Расширения -> Apps Script`. Так скрипт получает связь с активным файлом и может работать через меню таблицы.

Кнопка тоже не обязательна. Можно добавить пользовательское меню «Договор» с пунктом «Создать договор». Рисунок-кнопка работает в браузере, но нажатие на рисунок в мобильном приложении Google Sheets скрипт не запускает.

Глубоко разбираться в коде для этой схемы не требуется. Мне достаточно понимать четыре вещи: где лежит шаблон, где папка, какие поля читает строка и в какую колонку записывается ссылка.

## Что поставить перед сборкой?

Для описанного сценария понадобятся Google-аккаунт, Google Таблица, Google Документ шаблон, папка Google Drive, Visual Studio Code и Claude Code. Способы установки и совместимость двух последних инструментов проверь по актуальной документации Anthropic.

Сначала подготовь Google Таблицу с тестовой строкой, затем создай Google Документ шаблон с метками и папку Drive для готовых копий. Настоящие паспортные данные для первого запуска не нужны. Для сборки понадобятся ID шаблона и ID папки, их можно взять из адресной строки Google Документа и папки.

```text
{{Номер договора}}
{{Дата}}
{{Продавец}}
{{Покупатель}}
{{VIN}}
{{Марка и модель}}
{{Цена автомобиля}}
{{Зачёт}}
{{Доплата}}
{{Способ оплаты}}
```

Дальше поставь Visual Studio Code. Это редактор, в котором видна папка проекта и файлы. Самостоятельно писать программу в нём не нужно.

Внутри редактора установи Claude Code. Перед выдачей доступа посмотри как безопасно допустить Claude Code к проекту: помощник получает задачу обычными словами, создаёт и меняет файлы, объясняет результат и помогает искать ошибку.

Для описанного сценария автор использует Claude Code; в источнике Anthropic для Claude Pro подтверждена цена $20 в месяц при помесячной оплате. Официальной цены в рублях для России нет в найденных данных. Россия также отсутствует в официальном списке поддерживаемых стран, поэтому способ доступа и оплаты надо проверять отдельно до начала работы.

Первый запуск делай на тестовой строке без паспортных данных и другой чувствительной информации. Сам факт использования Google Таблицы не подтверждает соответствие требованиям к обработке и хранению персональных данных; это нужно оценивать отдельно. Доступ к ней по ссылке «для всех» создаёт лишний риск.

Я поставила инструменты и больше не возвращалась к установке. Меняется не набор программ, а задача, которую я описываю помощнику.

## Как заполнить договор купли-продажи из строки?

Сначала создай заголовки таблицы и метки шаблона, затем выполни заполнение договора купли продажи из выбранной строки через Apps Script и попроси помощника собрать связку. После этого укажи ID шаблона и папки, запусти функцию, выдай доступы и проверь одну тестовую сделку. Начинай с одной строки: так проще заметить неверную метку, дату, сумму или повторную копию.

![Собака поднимает лапу рядом с карточками первых шагов сборки договора из строки.](https://s3.regru.cloud/crossmark/statejnik/images/guides/dogovory-kupli-prodazhi-v-google-tablice-dokument-iz-odnoj-stroki/kadr-2.webp)

Открой новую Google Таблицу и внеси заголовки в первой строке. Одна следующая строка будет тестовой сделкой. Поля зачёта и доплаты не объединяй с ценой автомобиля.

   ```text
   Номер договора | Дата | VIN | Марка и модель | Продавец | Покупатель | Цена автомобиля | Зачёт старой машины | Доплата | Способ оплаты | Статус | Ссылка на договор
   ```

Для теста впиши вымышленные данные: условный VIN, тестовые фамилии и небольшие учебные суммы. Я сначала проверяю саму механику, а не юридический текст договора.

Открой Google Документ и замени места, которые должны заполняться из строки, на метки с двойными фигурными скобками. Название внутри метки должно совпадать с тем, что помощник свяжет с заголовком таблицы.

   ```text
   ДОГОВОР КУПЛИ-ПРОДАЖИ № {{Номер договора}}

   Дата: {{Дата}}

   Продавец: {{Продавец}}
   Покупатель: {{Покупатель}}

   Автомобиль: {{Марка и модель}}
   VIN: {{VIN}}

   Цена автомобиля: {{Цена автомобиля}}
   В зачёт принята старая машина на сумму: {{Зачёт старой машины}}
   Доплата покупателя: {{Доплата}}
   Способ оплаты: {{Способ оплаты}}
   ```

Не проси помощника придумывать юридические условия, склонять ФИО или писать сумму словами. В собранных данных для этого нет подтверждённой инструкции. Текст договора проверь отдельно.

В самой Google Таблице выбери `Расширения -> Apps Script`. Не создавай отдельный проект в стороне. Так скрипт будет привязан к таблице и сможет читать выбранную строку и показывать меню.

Отправь помощнику такой запрос:

    Apps Script внутри этой таблицы. Сначала не пиши код. Разбери задачу простыми словами: какие функции понадобятся, как прочитать одну выбранную строку, как скопировать шаблон в папку Drive, как заменить метки и как записать ссылку в колонку «Ссылка на договор». Отдельно перечисли, какие доступы потребуются. Не добавляй отправку почты, Telegram, PDF, массовую генерацию и юридические изменения текста договора." />

В ответ помощник должен разложить работу на чтение строки, копирование шаблона, замену меток и запись ссылки. Если он сразу предлагает лишние интеграции, попроси оставить только минимальную схему.

Скопируй ID Google Документа-шаблона и ID папки Drive из адресных строк. Передай их помощнику отдельным сообщением. Не вставляй в статью реальные ID, ссылки на рабочие файлы и персональные данные.

   

Промпт содержит учебные ID, а не рабочие. После ответа помощника проверь, что он использует выбранную строку, а не последнюю строку листа.

Попроси помощника добавить пункт меню, который вызывает функцию создания договора. Этот шаг не требует отдельной кнопки и не добавляет внешних сервисов.

   

После сохранения обнови Google Таблицу. Если меню не появилось, не создавай второй проект. Скажи помощнику, что меню не появилось, и попроси проверить функцию `onOpen`.

Выдели тестовую строку, открой меню «Договоры» и выбери создание документа. При первом запуске Google запросит разрешения на работу с таблицей, документами и Drive. Выдай их только после того, как увидишь, какие действия выполняет скрипт.

Проверь четыре места:

1. в папке Drive появилась одна копия шаблона;
2. в документе заменились все метки;
3. цена автомобиля, зачёт и доплата остались отдельными значениями;
4. ссылка и статус появились в исходной строке.

Если результат неверный, отправь помощнику конкретный симптом:

   

На такой задаче быстро видно: помощнику лучше отдавать работу небольшими запросами. Маленькие шаги проще проверять. Так собирают программы без программиста, и называется это вайб-кодинг.

## Какие файлы появятся после создания договора?

После создания договора появляется копия Google Документа в выбранной папке Drive, а в строке сделки сохраняется ссылка на эту копию. В таблице можно также хранить статус и идентификатор документа. ID шаблона указывает, откуда делать копию, ID папки - куда её положить, а колонка ссылки показывает, был ли результат создан.

Я не делала отдельный сайт и сервер. У меня всё осталось внутри Google:

- Google Таблица с реестром сделок;
- связанный проект Apps Script;
- Google Документ-шаблон;
- папка Drive с готовыми договорами;
- колонка ссылки и колонка статуса.

Ссылка нужна не только для удобства. Она защищает от повторной генерации: перед созданием скрипт смотрит, заполнена ли колонка. Если ссылка уже есть, повторный запуск должен остановиться или сообщить, что документ создан раньше.

Но одной ссылки мало для сложного рабочего процесса. При сбое между копированием документа и записью ссылки файл уже может существовать, а строка останется пустой. Поэтому для более надёжной версии я бы добавила ID документа, временный статус «В обработке», итоговый статус «Создан» и поле последней ошибки. Так видно, на каком шаге остановился процесс.

В устройство кода глубоко заходить не нужно. Достаточно знать, где лежат ID и какие поля связывают таблицу с шаблоном.

Я не стала добавлять массовую генерацию. Сначала одна строка должна стабильно проходить путь от данных до готового документа. Только потом можно обсуждать несколько сделок за один запуск.

Если на этом месте не складывается, в практикуме по вайб кодингу для предпринимателей можно пройти ту же связку на своей таблице и шаблоне. Заодно проверь, где именно процесс останавливается.

## Что делать, если договор создаётся дважды?

Дубли появляются, когда функция запускается повторно до записи результата, когда срабатывают два параллельных запуска или когда колонка ссылки не используется как признак готового документа. Дата может сместиться из-за часового пояса, а таблица - замедлиться из-за пустых строк. Проверяй один симптом за раз и проси помощника менять только связанную часть.

![Хомяк в недоумении смотрит на две копии договора, одна перечёркнута красным крестом.](https://s3.regru.cloud/crossmark/statejnik/images/guides/dogovory-kupli-prodazhi-v-google-tablice-dokument-iz-odnoj-stroki/kadr-3.webp)

1. **Проверь повторное нажатие.** Если дважды нажать создание договора, могут появиться две копии. Для минимальной защиты нужна проверка ссылки и блокировка выполнения.

   Правильный результат - повторный запуск видит готовую ссылку и не создаёт новую копию.

2. **Проверь смещение даты.** Таблица и Apps Script могут использовать разные часовые пояса. Из-за этого дата договора возле полуночи превращается в предыдущий день.

   Не проверяй только сегодняшнюю дату. Для этой ошибки нужны границы года и время около полуночи.

3. **Укороти чтение таблицы.** Если скрипт читает целые столбцы или внизу осталось много пустых строк, запуск начинает тормозить.

   Лишние строки можно удалить или вынести старые сделки в архив. Формулы, проверки данных и защищённые диапазоны тоже могут увеличивать время обработки.

4. **Проверь доступ к Google.** Если после периода нормальной работы появляется ошибка доступа, причина может быть в отзыве разрешений, смене пароля, истёкшем токене или настройках OAuth.

   Если доступ внезапно пропал, сначала посмотри текст ошибки и разрешения проекта. Не создавай новый OAuth-поток для каждой строки.

5. **Защити параллельное обновление.** Если одновременно запускаются два процесса, они могут оба попытаться обновить доступ или создать файл.

   Минимальный сценарий с ручным запуском обычно не требует сложной системы очередей. Но статус строки и блокировка нужны, если запускать процесс могут несколько людей.

Есть и общий лимит: один запуск Apps Script может длиться не больше шести минут. Шесть минут это лимит длительности одного запуска Apps Script, а не обещание скорости создания одного документа.

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

## Сколько стоит своя таблица против сервиса?

Своя сборка не требует отдельной оплаты подрядчику, если я делаю её сама, но Claude Pro стоит $20 в месяц. Готовый сервис обойдётся от 0 ₽ в год на бесплатном тарифе или от 3 600 ₽ в год у «Мой договор». Подрядчик берёт от 5 000 ₽ разово за близкую связку, а комплексная автоматизация начинается от 25 000 ₽ разово.

Сравнение выглядит так:

| Вариант | Цена | Что получаешь |
|---|---:|---|
| Своя сборка | 0 ₽ прямых расходов на подрядчика | Таблица, шаблон, Apps Script и папка Drive под свою схему |
| Claude Pro | $20 в месяц | Помощник Claude Code для сборки и изменений |
| Бесплатный готовый тариф | от 0 ₽ в год | Ограниченный набор функций, пользователей или хранилища |
| «Мой договор» | от 3 600 ₽ в год | Готовый сервис с тарифом для договоров |
| Подрядчик | от 5 000 ₽ разово | Настройка близкой связки Google Таблица -> Google Документ |
| Комплексная автоматизация | от 25 000 ₽ разово | Более широкий процесс с PDF, почтой, архивом или интеграциями |

У собственной сборки есть постоянная статья расходов: подписка Claude Pro. Официальная цена указана в долларах. Официальной суммы в рублях для России и официальной доступности из России фактура не подтверждает.

Готовый тариф может оказаться выгоднее, если нужны пользователи, поддержка, несколько типов документов, права доступа и готовый интерфейс. Таблица выигрывает, если процесс узкий и его правила часто меняются.

Есть границы, о которых нельзя молчать. Эта схема не подходит без отдельной проверки для сложных юридических сценариев, массовой генерации и чувствительных данных. Google Таблица с именами, телефонами, адресами и реквизитами требует контроля доступа и отдельной оценки хранения персональных данных.

Свою таблицу нельзя считать полноценной юридической системой. Она переносит данные и создаёт копию документа. Правильность шаблона, условия сделки, необходимость электронной подписи, количество экземпляров и другие юридические вопросы надо проверять отдельно.

## Что сделать сегодня, если не разбираешься в коде?

Начни с описания повторяющейся сделки обычными словами. Подготовь одну тестовую строку, шаблон Google Документа и папку Drive, затем попроси помощника собрать минимальную связку. Проверь реквизиты, дату, цену, зачёт, доплату, статус и ссылку. Только после этого переноси рабочий процесс и реальные данные.

1. Запиши, что повторяется в каждой продаже.
2. Отдели данные машины от данных сторон.
3. Вынеси цену, зачёт и доплату в разные поля.
4. Создай одну тестовую строку.
5. Подготовь копию шаблона без чувствительных данных.
6. Проверь один созданный документ глазами.
7. Добавь защиту от повторной генерации.
8. Только потом переноси рабочие сделки.

Не начинай с запроса «сделай мне программу для автосалона». Он слишком широкий. Начни с действия: «из выбранной строки создай копию шаблона и подставь поля». Так помощнику проще понять границы.

В практикуме для специалистов и фрилансеров этому учат на собственной задаче: описать рутину, собрать первую рабочую вещь, проверить её и научиться чинить маленькими шагами. Так работает вайб-кодинг. Если хочешь начать сегодня, создай тестовую строку без паспортных данных и проверь один договор.

## Вопросы и ответы

Да, из одной строки можно создать документ по шаблону. В ней хранятся реквизиты сделки, а Apps Script читает их и подставляет в копию Google Документа. Одна строка рассчитана на одну сделку. После запуска проверь номер, дату, VIN, данные продавца и покупателя, цену, зачёт, доплату, статус, ссылку и отсутствие старых меток. Автоматизация не заменяет юридическую проверку условий.

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

Цену автомобиля, зачёт и доплату лучше хранить отдельными столбцами. Скрипт переносит каждое значение в свою метку Google Документа. Итоговую сумму и формулу расчёта нужно проверить отдельно, потому что автоматическая подстановка не подтверждает юридическую корректность договора.

В строке можно хранить реквизиты сторон, сведения об автомобиле, дату, номер, цену, зачёт, доплату, способ оплаты и статус. Сложные условия лучше оставлять в постоянном тексте шаблона и не поручать помощнику придумывать их без юридической проверки.

Чтобы заполнить договор купли продажи онлайн, создай заголовки, подготовь метки в Google Документе, открой Apps Script из таблицы, укажи ID шаблона и папки, затем запусти функцию для одной тестовой строки. После выдачи разрешений проверь копию документа, замену меток, сумму, дату, статус и ссылку. Такой запуск не означает, что юридические условия проверены автоматически.

Запрос «договор купли продажи физических лиц образец» обычно означает поиск формы для конкретной сделки. В этой статье показана не готовая юридическая форма, а техническая связка: Google Таблица, Google Документ-шаблон, папка Drive, аккаунт и Apps Script. Перечень документов и обязательных реквизитов зависит от вида сделки, поэтому шаблон нужно проверить отдельно.

Открой созданную копию и сравни её со строкой сделки: номер, дату, VIN, марку и модель, данные продавца и покупателя, цену автомобиля, зачёт, доплату и способ оплаты. Отдельно проверь, что в тексте не осталось меток и данных от предыдущего документа. Юридическую проверку автоматизация не заменяет.

Номер лучше хранить отдельным столбцом строки и отдельной меткой в шаблоне Google Документа. Не полагайся на номер строки таблицы: при добавлении или сортировке сделок он может измениться. Правила нумерации надо определить отдельно, особенно если договоры добавляются задним числом.

**Рядом по теме:**

- [Вайб-кодинг](/concepts/vajb-koding)
- [Google Таблицы](/concepts/google-tablicy)
- [Первый сайт без строчки кода: 9 шагов от пустой папки до GitHub](/guides/claude-code-dlya-ne-kodera-pervyj-zhivoj-sajt)

- [Google Sheets Range](https://developers.google.com/apps-script/reference/spreadsheet/range)
- [Custom Menus in Google Workspace](https://developers.google.com/apps-script/guides/menus)
- [Bound Scripts](https://developers.google.com/apps-script/guides/bound)
- [Extending Google Docs](https://developers.google.com/apps-script/guides/docs)
- [Google Drive File](https://developers.google.com/apps-script/reference/drive/file)
- [Google Apps Script Quotas](https://developers.google.com/apps-script/guides/services/quotas)
- [Plans & Pricing | Claude](https://claude.com/pricing)
- [Where can I access Claude?](https://support.claude.com/en/articles/8461763-where-can-i-access-claude)
- [Тарифы «Мой договор»](https://moy-dogovor.ru/tariffs)
- [Автоматизация подготовки документов с помощью нейросети](https://vc.ru/ai/2016341-avtomatizatsiya-podgotovki-dokumentov-s-pomoshchyu-neyroseti)
- [Договоры из Google Таблицы через Apps Script](https://vc.ru/marketing/1616719-markirovka-reklamy-dogovor-za-2-minuty-cherez-google-apps-script-besplatno-bystro-shablony-kod-instrukcii-v-state)
- [Временные зоны, даты в Google Sheets и Apps Script](https://ru.stackoverflow.com/questions/791515/%D0%92%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D1%8B%D0%B5-%D0%B7%D0%BE%D0%BD%D1%8B-%D0%B4%D0%B0%D1%82%D1%8B-%D0%B2-js-%D0%B8-google-sheets-aps-script)
- [My Google Script is sending duplicate emails](https://stackoverflow.com/questions/55818472/my-googlescript-is-sending-out-duplicate-emails)
- [Unreasonably slow Apps Script when accessing Google Sheets](https://stackoverflow.com/questions/68661380/unreasonably-slow-apps-script-when-accessing-data-from-a-google-sheet-cell)
- [Google Apps Script OAuth2 issue](https://github.com/googleworkspace/apps-script-oauth2/issues/243)
- [Федеральный закон № 152-ФЗ, статья 19](https://www.consultant.ru/document/cons_doc_LAW_61801/ca9e5658710519f09ab2fdb8196fcb3eb024a051/)
- [Письмо Минцифры России о персональных данных](https://www.consultant.ru/document/cons_doc_LAW_511584/)
- [Gmail Program Policies](https://support.google.com/mail/answer/16734397?hl=en)

_Это собирательная история выпускников практикума, а не рассказ одного человека: так эта работа устроена в большинстве таких дел._
