EXCEL: СБОРКА ЕДИНОГО ОТЧЁТА
Демонстрационный кейс для портфолио направления автоматизации Александра.
Подготовлен с помощью Codex 16.10.2026. Все операции, филиалы, товары и суммы созданы для примера. Коммерческого заказчика и подтверждённой экономии времени у этого кейса нет.

ПОСМОТРЕТЬ РЕЗУЛЬТАТ
Откройте output/sales-report.xlsx в Excel или совместимом редакторе.
Отчёт: итоги по филиалам и числа обработанных строк.
Операции: принятые строки, формулы сумм, исходный файл и номер строки.
Исключения: исходные значения, источник и причина исключения.
Готовые файлы не содержат макросов, внешних ссылок или подключения к сервисам.

ИСХОДНИКИ И ПРАВИЛА
В inputs/ находятся три .xlsx-файла по 12 строк на листе «Продажи».
Заголовки: ID; Дата; Филиал; Товар; Количество; Цена, ₽. Порядок столбцов может отличаться; обязательный заголовок должен встречаться один раз.
Одна строка — одна операция. ID уникален во всём наборе. Для многострочных заказов нужен отдельный ID строки или другое согласованное правило ключа.
Дата: дата Excel или строка ISO yyyy-mm-dd в диапазоне 2000–2100. Время суток не поддерживается.
Количество: числовое целое значение больше нуля. Цена: число от нуля, до двух десятичных знаков. Текстовые числа не преобразуются автоматически. Нулевая цена разрешена; пустая не считается нулём.
ID, филиал и товар — непустой текст. Пробелы по краям убираются. Регистр сохраняется. Формулы в исходных строках не принимаются.
Пустые строки пропускаются. Повтор строки с тем же ID и теми же значениями учитывается один раз. Файлы обрабатываются по имени, строки — сверху вниз.
При разных значениях одного ID исключаются все его строки. Если хотя бы одна строка ID некорректна, другая строка того же ID также исключается до уточнения.
Цена и контрольная сумма проверяются в целых копейках. В Excel сумма строки рассчитывается формулой ROUND(количество*цена,2), итоги — SUMIFS и SUM.
При отсутствии файлов, неверной схеме или отсутствии корректных операций сборка останавливается и предыдущий отчёт не заменяется. Все действия локальные.
Текущий компактный макет сводки рассчитан на небольшой набор, до 12 филиалов. Он не является проверкой больших объёмов.

КОНТРОЛЬНЫЙ РЕЗУЛЬТАТ
3 файла, 36 непустых строк. Принято 30 операций, 330 единиц товара, сумма 75 260,00 ₽.
Север: 10 операций, 55 единиц, 12 590,00 ₽.
Центр: 10 операций, 110 единиц, 25 590,00 ₽.
Юг: 10 операций, 165 единиц, 37 080,00 ₽.
Исключено 6 строк: 2 точных повтора, 2 строки с конфликтом ORD-900, пустое количество ORD-901 и неверная дата ORD-902.

ПОВТОРИТЬ СБОРКУ
Готовый .xlsx открывается без среды разработки. Для запуска кода нужны Node.js и библиотека @oai/artifact-tool из рабочего runtime Codex. Зависимости в архив не включены и автоматически не устанавливаются.
На компьютере с этим runtime откройте PowerShell в папке примера и выполните: .\RUN.ps1
Если runtime расположен иначе: .\RUN.ps1 -RuntimeRoot 'полный путь к dependencies'
RUN.ps1 использует существующие зависимости и при необходимости создаёт только локальную ссылку node_modules внутри папки примера.
При настроенной зависимости можно запускать напрямую: node tools/run.mjs
Для другой папки: node tools/run.mjs --input путь_к_папке --output путь_к_отчёту.xlsx
Исправляйте данные в inputs/ и повторяйте запуск. Файлы источников не перезаписываются. Выходной файл заменяется после успешной проверки. Не кладите посторонние .xlsx в папку исходников.
Изменения корректных чисел на листе «Операции» пересчитывают суммы и сводку. Счётчики загрузки и журнал исключений отражают последний запуск; для нового набора источников нужна повторная сборка.

ПРОВЕРКА
11 сценариев: повторы, конфликты, некорректные значения, нулевая/пустая цена, точность копеек, новый файл и филиал, повторная сборка, изменение количества, неверная схема, пустая папка.
Расчёты проверены в Artifact Tool, экспорт независимо прочитан и сверен. Настольный Microsoft Excel в рамках подготовки не запускался.
Публичный запуск для клиента требует адаптации схемы файлов, правил и среды запуска. Показанный результат — небольшой воспроизводимый пример.
