Цифровая трансформация — это не внедрение технологий, а переосмысление бизнес-модели, процессов и управления.
Компании теряют эффективность, когда:
процессы не масштабируются
данные разрознены
решения принимаются без экономики
Цифровая трансформация влияет на:
бизнес-модель
процессы
клиентский опыт
систему управления
Задача первого этапа — не внедрять решения, а понять, где бизнес теряет ценность.
Цель:
разобрать теоретические основы цифровой трансформации и технологий искусственного интеллекта в бухгалтерском учете, определить узкие места финансовых процессов, сформировать техническое задание на решение кейса и начать работу с prompt engineering и Google Colab.
Содержание:
в рамках первого milestone рассматривается сущность цифровой трансформации бухгалтерии и финансовой функции компании, основные направления автоматизации учетных процессов, роль AI, no-code и low-code инструментов, а также примеры их практического применения в бухгалтерском учете, аудите и управлении денежными потоками.
Отдельный блок посвящен обзору генеративного искусственного интеллекта, нейронных сетей и современных AI-инструментов, применяемых для работы с финансовыми данными. В практической части выполняется мозговой штурм и canvas-анализ узких мест учетных и финансовых процессов, включая точки возникновения кассовых разрывов, задержки поступлений, всплески обязательных выплат и риски ликвидности.
Далее происходит знакомство с основами prompt engineering: структура профессионального промпта, формулирование задачи для AI, описание бизнес-кейса, логика подготовки технического задания для проекта. На этой основе формируется ТЗ на разработку аналитического решения по прогнозированию кассовых разрывов и выполняется первое знакомство с Google Colab как рабочей средой для анализа данных и запуска AI-generated Python-кода.
Результат:
сформировано понимание цифровой трансформации бухгалтерии, проведен анализ узких мест процессов, подготовлено техническое задание на проект и разработан первый профессиональный prompt для генерации кода в Google Colab.
ЗАДАЧА
На первом этапе команда бухгалтеров проводит совместный мозговой штурм, направленный на выявление рутинных, повторяющихся и трудоемких операций в текущих процессах бухгалтерского учета, финансового контроля и подготовки отчетности. Работа выполняется на Canva Whiteboard / Miro / Google Jamboard в формате командной доски. Цель данного этапа — визуализировать процессы, которые занимают значительное время, содержат высокий риск ошибок и потенциально могут быть автоматизированы с использованием AI, no-code и аналитических инструментов.
В ходе работы команда последовательно наносит на доску основные ежедневные, еженедельные и ежемесячные операции: обработка первичных документов, ручной ввод данных, сверки, закрытие периода, формирование отчетов, контроль ДДС, подготовка платежного календаря, сверка налоговой отчетности и иные операции. Для каждой операции фиксируются трудозатраты, частота выполнения, уровень рутины, риск ошибок и возможный эффект от автоматизации. После этого на той же доске формируется матрица быстрых побед, в которой выявленные процессы распределяются по двум осям: эффект для бизнеса и простота автоматизации. Это позволяет выделить задачи, которые могут дать быстрый и заметный результат уже на раннем этапе цифровой трансформации бухгалтерии.
Step 1. Мозговой штурм
На доске Canva / Miro команда фиксирует основные рутинные операции бухгалтерии: ввод данных, сверки, отчетность, ДДС, закрытие периода. Для каждого процесса кратко указываются трудозатраты, частота и основные проблемы.
Step 2. Матрица быстрых побед
Выявленные процессы размещаются в матрице по двум критериям: эффект для бизнеса и простота автоматизации. По итогам выбираются 2–3 приоритетных процесса для дальнейшей проработки в кейсе.
ЗАДАЧА
Постройте схему текущего процесса работы с кассовыми разрывами в нотации Business Process Model and Notation. На схеме необходимо отразить последовательность действий от момента получения данных по движению денежных средств до принятия решения по предотвращению кассового разрыва.
В модели рекомендуется показать ключевые этапы процесса: получение данных из учетной системы, анализ поступлений и выплат, проверку прогнозного остатка денежных средств, выявление потенциального gap, согласование действий с ответственными лицами и выбор управленческого решения. По итогам работы следует выделить узкие места процесса и определить участки, потенциально подходящие для автоматизации в рамках дальнейшего кейса.
Инструкция по выполнению
Step 1. Построение AS-IS процесса
На основе таблицы отразите текущий процесс работы с кассовыми разрывами в BPMN: от получения выписки и расчета остатка до принятия решения по платежам.
Step 2. Выявление узких мест
Определите этапы с наибольшими временными и денежными затратами, а также точки возникновения ошибок и задержек.
Step 3. Формирование выводов
Сформулируйте, какие этапы целесообразно автоматизировать в первую очередь и какой эффект это может дать по времени, затратам и снижению риска кассового разрыва.
Инструкция по выполнению
Step 1. Сформируйте prompt
Подготовьте запрос для AI на создание структуры чек-листа технического задания проекта.
Step 2. Сгенерируйте структуру формы
С использованием AI получите перечень блоков, вопросов и вариантов ответов для Google Form.
Step 3. Откройте Google Apps Script
Перейдите в script.new и создайте новый проект.
Step 4. Вставьте код
Удалите стандартный код в редакторе и вставьте единый скрипт для создания Google Form, Google Sheets и PDF.
Step 5. Сохраните проект
Сохраните проект под именем, например:
Cash Gap TZ System
Step 6. Запустите функцию настройки
Выберите функцию
setupCashGapTZSystem
и нажмите Выполнить.
Step 7. Разрешите доступ
Подтвердите доступ к Google Forms, Sheets, Drive, Docs и Gmail.
Step 8. Проверьте результат
После выполнения будут автоматически созданы:
Google Form
Google Sheets для ответов
PDF-генерация по результатам формы
Step 9. Выполните тестовое заполнение
Отправьте тестовый ответ через форму и проверьте автоматическое создание PDF.
Step 10. Разместите форму на Google Sites
Добавьте форму или ссылку на страницу урока.
Ожидаемый результат
По итогам выполнения будет создана цифровая форма технического задания с автоматической генерацией индивидуального PDF-документа для каждого участника.
Ты — эксперт по цифровой трансформации бухгалтерского учета, AI automation и instructional design.
На основе результатов диагностики рутины бухгалтерских процессов и BPMN-схемы управления кассовыми разрывами сформируй профессиональный чек-лист для технического задания проекта в формате Google Form.
Тема проекта: анализ и прогнозирование кассовых разрывов.
Необходимо подготовить структуру формы, которая будет использоваться для последующей автоматической генерации индивидуального ТЗ в PDF.
Форма должна содержать следующие блоки:
Общая информация
ФИО участника
название проекта
Проблема проекта
Сформируй checklist из возможных проблем:
кассовые разрывы
отсутствие прогноза ДДС
ручной расчет cash flow
ошибки сверки
высокая нагрузка на бухгалтерию
Источники данных
Сформируй checklist:
Google Sheets
Excel
банковская выписка
1С
платежный календарь
Ожидаемый результат
Сформируй checklist:
аналитическая таблица
графики
dashboard
прогноз
PDF отчет
Ожидаемый бизнес-эффект
Сформируй checklist:
снижение риска gap
сокращение ручной работы
ускорение анализа
повышение точности прогноза
Краткое описание проекта
Добавь поле для краткого текстового описания задачи.
Для каждого блока укажи:
название вопроса
тип поля (краткий ответ / checkbox / абзац)
варианты ответов
Формат ответа: готовая структура Google Form для последующего переноса в Google Apps Script.
function setupCashGapTZSystem() {
// 1. Создание формы
const form = FormApp.create('ТЗ проекта: Анализ и прогнозирование кассовых разрывов');
form.setDescription(
'Заполните краткое техническое задание по проекту. ' +
'Ответы будут использованы для формирования индивидуального ТЗ в PDF.'
);
form.setConfirmationMessage(
'Спасибо! Ваше ТЗ сохранено. PDF будет сформирован автоматически.'
);
form.setCollectEmail(true);
form.setAllowResponseEdits(true);
// 2. Поля формы
form.addTextItem()
.setTitle('ФИО участника')
.setRequired(true);
form.addTextItem()
.setTitle('Название проекта')
.setHelpText('По умолчанию можно указать: Cash Gap AI')
.setRequired(true);
const problemItem = form.addCheckboxItem();
problemItem.setTitle('Выберите основные проблемы проекта')
.setChoices([
problemItem.createChoice('Кассовые разрывы в конце периода'),
problemItem.createChoice('Отсутствие прогноза ДДС'),
problemItem.createChoice('Ручной расчет cash flow'),
problemItem.createChoice('Задержка поступлений'),
problemItem.createChoice('Несвоевременные платежи'),
problemItem.createChoice('Ошибки сверки'),
problemItem.createChoice('Отсутствие dashboard'),
problemItem.createChoice('Высокая нагрузка на бухгалтерию'),
problemItem.createChoice('Риск просрочки обязательств')
])
.setRequired(true);
const sourceItem = form.addCheckboxItem();
sourceItem.setTitle('Какие данные будут использоваться?')
.setChoices([
sourceItem.createChoice('Google Sheets'),
sourceItem.createChoice('Excel'),
sourceItem.createChoice('Банковская выписка'),
sourceItem.createChoice('1С'),
sourceItem.createChoice('Платежный календарь'),
sourceItem.createChoice('CRM'),
sourceItem.createChoice('BI отчет')
])
.setRequired(true);
const resultItem = form.addCheckboxItem();
resultItem.setTitle('Что должно быть получено по итогам проекта?')
.setChoices([
resultItem.createChoice('Аналитическая таблица'),
resultItem.createChoice('Прогноз кассового разрыва'),
resultItem.createChoice('Графики'),
resultItem.createChoice('Dashboard'),
resultItem.createChoice('Excel отчет'),
resultItem.createChoice('PDF отчет'),
resultItem.createChoice('Рекомендации CFO')
])
.setRequired(true);
const effectItem = form.addCheckboxItem();
effectItem.setTitle('Какие бизнес-эффекты ожидаются?')
.setChoices([
effectItem.createChoice('Снижение риска gap'),
effectItem.createChoice('Ускорение анализа'),
effectItem.createChoice('Сокращение ручной работы'),
effectItem.createChoice('Повышение точности прогноза'),
effectItem.createChoice('Снижение операционных затрат'),
effectItem.createChoice('Повышение качества управленческих решений')
])
.setRequired(true);
form.addParagraphTextItem()
.setTitle('Кратко опишите задачу проекта')
.setHelpText('Опишите проект в 3–4 предложениях.')
.setRequired(true);
// 3. Создание таблицы ответов
const spreadsheet = SpreadsheetApp.create('Ответы формы — ТЗ Cash Gap');
form.setDestination(FormApp.DestinationType.SPREADSHEET, spreadsheet.getId());
// 4. Сохраняем ID формы в свойствах проекта
PropertiesService.getScriptProperties().setProperty('FORM_ID', form.getId());
PropertiesService.getScriptProperties().setProperty('SPREADSHEET_ID', spreadsheet.getId());
// 5. Удаление старых триггеров для этой функции
const triggers = ScriptApp.getProjectTriggers();
triggers.forEach(trigger => {
if (trigger.getHandlerFunction() === 'generateTZPdfOnSubmit') {
ScriptApp.deleteTrigger(trigger);
}
});
// 6. Создание триггера на отправку формы
ScriptApp.newTrigger('generateTZPdfOnSubmit')
.forSpreadsheet(spreadsheet)
.onFormSubmit()
.create();
Logger.log('Форма создана: ' + form.getEditUrl());
Logger.log('Ссылка для заполнения: ' + form.getPublishedUrl());
Logger.log('Таблица ответов: ' + spreadsheet.getUrl());
}
function generateTZPdfOnSubmit(e) {
const rowData = e.namedValues;
const timestamp = getFirstValue_(rowData['Timestamp']);
const email = getFirstValue_(rowData['Email Address']) || getFirstValue_(rowData['Адрес электронной почты']);
const fio = getFirstValue_(rowData['ФИО участника']) || 'Участник';
const projectName = getFirstValue_(rowData['Название проекта']) || 'Cash Gap AI';
const problem = joinValues_(rowData['Выберите основные проблемы проекта']);
const sources = joinValues_(rowData['Какие данные будут использоваться?']);
const result = joinValues_(rowData['Что должно быть получено по итогам проекта?']);
const effect = joinValues_(rowData['Какие бизнес-эффекты ожидаются?']);
const description = getFirstValue_(rowData['Кратко опишите задачу проекта']);
const doc = DocumentApp.create(`ТЗ_${projectName}_${fio}`);
const body = doc.getBody();
body.appendParagraph('ТЕХНИЧЕСКОЕ ЗАДАНИЕ')
.setHeading(DocumentApp.ParagraphHeading.HEADING1);
body.appendParagraph(`Проект: ${projectName}`);
body.appendParagraph(`ФИО участника: ${fio}`);
body.appendParagraph(`Дата отправки: ${timestamp || new Date()}`);
body.appendParagraph('');
body.appendParagraph('1. Проблема проекта')
.setHeading(DocumentApp.ParagraphHeading.HEADING2);
body.appendParagraph(problem || 'Не указано');
body.appendParagraph('2. Источники данных')
.setHeading(DocumentApp.ParagraphHeading.HEADING2);
body.appendParagraph(sources || 'Не указано');
body.appendParagraph('3. Ожидаемый результат')
.setHeading(DocumentApp.ParagraphHeading.HEADING2);
body.appendParagraph(result || 'Не указано');
body.appendParagraph('4. Ожидаемый бизнес-эффект')
.setHeading(DocumentApp.ParagraphHeading.HEADING2);
body.appendParagraph(effect || 'Не указано');
body.appendParagraph('5. Краткое описание проекта')
.setHeading(DocumentApp.ParagraphHeading.HEADING2);
body.appendParagraph(description || 'Не указано');
doc.saveAndClose();
const docFile = DriveApp.getFileById(doc.getId());
const pdfBlob = docFile.getAs(MimeType.PDF).setName(`ТЗ_${projectName}_${fio}.pdf`);
const folderName = 'TZ_PDF_Results';
let folder;
const folders = DriveApp.getFoldersByName(folderName);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(folderName);
}
const pdfFile = folder.createFile(pdfBlob);
if (email) {
MailApp.sendEmail({
to: email,
subject: `Ваше ТЗ по проекту: ${projectName}`,
body:
`Здравствуйте, ${fio}!\n\n` +
`Во вложении направляется PDF-версия вашего технического задания.\n\n` +
`Ссылка на PDF в Google Drive:\n${pdfFile.getUrl()}\n\n` +
`С уважением,\nDigital Accounting Lab`,
attachments: [pdfBlob]
});
}
Logger.log('Google Doc: ' + docFile.getUrl());
Logger.log('PDF: ' + pdfFile.getUrl());
}
function getFirstValue_(value) {
if (!value) return '';
if (Array.isArray(value)) return value[0] || '';
return value;
}
function joinValues_(value) {
if (!value) return '';
if (Array.isArray(value)) return value.join(', ');
return value;
}