Claude Code для непрограммистов: документы, Excel и разовые скрипты под контролем
Эта статья для тех, у кого раз в месяц появляется задача на два дня ручной работы: разложить триста PDF по контрагентам, свести две выгрузки, пересобрать отчёт из полусотни файлов. Программиста в штате нет, заказывать доработку 1С ради разовой операции невыгодно, а вручную — долго и с ошибками. Разбираю, что Claude Code действительно закрывает в таком сценарии, во что обходится, как ограничить его права и где я сам останавливаю проект из-за данных, договоров или требований закона.
Что меняется, когда бухгалтер запускает агента, а не чат
Ситуация, с которой для меня начался этот сценарий, выглядит знакомо до боли. Поставщик прислал 340 УПД одним архивом: файлы называются doc_00147.pdf, doc_00148.pdf и так далее, а внутри указаны номер, дата, контрагент и сумма. Бухгалтеру нужно разложить документы по папкам «Контрагент / Год / Месяц», дать файлам понятные имена и сверить результат с выгрузкой из учётной системы. Два рабочих дня в четыре руки, из которых полтора часа занимает собственно анализ, а всё остальное — открытие файлов, копирование реквизитов и борьба с опечатками.
Обычный чат возвращает инструкцию или текст скрипта. Дальше человеку приходится самому сохранить код в файл, установить зависимости, открыть терминал, запустить программу и понять сообщение об ошибке. Claude Code работает иначе: он запускается с доступом к выбранной рабочей папке, может читать файлы, создавать скрипты, выполнять команды и проверять получившийся результат. Если в PDF нет текстового слоя, агент способен заметить это и предложить отдельную обработку, но только при наличии подходящего средства распознавания и разрешения его запустить. Автоматического чуда здесь нет: есть исполнитель, которому доступны файлы и инструменты.
От бухгалтера не требуется писать программу, но требуется нормально поставить задачу. Формулировка «сделай отчёт» почти гарантированно даст слабый результат. Рабочая постановка звучит так: «В каталоге in лежат копии PDF-актов. Из каждого извлеки номер, дату, ИНН и итоговую сумму, запиши строки в out/table.xlsx, а файлы без читаемых реквизитов перечисли в out/problem.txt. Исходные файлы не изменяй. В конце сравни количество обработанных файлов с количеством входных». Такую инструкцию можно проверить по пунктам, а значит, можно принять или отклонить результат.
Я начинаю не с идеи «внедрить ИИ», а с двух-трёх операций, которые сотрудник способен описать новому стажёру за несколько минут. Хороший кандидат имеет понятный вход, проверяемый выход и ограниченную рабочую папку. Если для выполнения нужно принимать управленческие решения, менять данные в боевой системе или угадывать смысл нестандартных документов, задача уже выходит за рамки безопасного разового скрипта.
- Хорошо подходит: раскладка и массовое переименование копий файлов, извлечение реквизитов, сверка двух выгрузок, приведение таблиц к одному формату, сборка сводного отчёта.
- Подходит с оговорками: сканы, изображения и документы со сложной вёрсткой. Нужны средства распознавания, список неразобранных файлов и ручная проверка.
- Лучше выполнять через выгрузку: задачи, которым нужны сведения из 1С, CRM или другой рабочей системы. Агент получает файл, а не прямой доступ к боевой базе.
- Не стоит оставлять как импровизацию: регулярный процесс без человека, от которого зависят платежи, отчётность или проводки. Для него нужны закреплённый код, тесты, журнал выполнения и ответственный владелец.
Подписка, системные требования и доступность по странам
Сначала о цене. По состоянию на 8 сентября 2026 года Claude Code входит во все платные планы Claude и не входит в Free. Индивидуальный Pro стоит 17 долларов в месяц при годовой оплате — 200 долларов списываются за год вперёд — либо 20 долларов при помесячной оплате. Max начинается от 100 долларов в месяц и предлагает варианты с лимитами в 5 или 20 раз выше Pro. Эти лимиты общие для Claude в веб-интерфейсе, приложениях и Claude Code, поэтому обещать, что конкретному бухгалтеру Pro «точно хватит», нельзя: расход зависит от размера файлов, модели и длины сессий.
Для организации важнее не только цена, но и тип договора. План Team рассчитан на команды от 2 до 150 человек. Standard стоит 20 долларов за место в месяц при годовой оплате или 25 долларов при помесячной; Premium — 100 или 125 долларов соответственно и даёт в пять раз больше использования, чем Standard. Текущая публичная модель Enterprise — 20 долларов за место в месяц плюс потребление по тарифам API, с годовой оплатой. Цены указаны без возможных налогов и могут измениться, поэтому перед бюджетированием я снова открываю официальную страницу, а не копирую цифры из старой презентации.
Требования CLI скромные и подтверждены текущей документацией: macOS 13.0 или новее, Windows 10 версии 1809 или новее, Windows Server 2019 или новее, Ubuntu 20.04 или новее, Debian 10 или новее либо Alpine Linux 3.19 или новее. Нужно не менее 4 ГБ оперативной памяти, процессор x64 или ARM64 и постоянное подключение к интернету. Поддерживаются Bash, Zsh, PowerShell и CMD. Для нативной установки Node.js не требуется.
Официальные команды установки и диагностики выглядят так. Номер версии в выводе я намеренно не подставляю: он меняется вместе с обновлениями, а проверять нужно фактически установленный экземпляр.
# macOS, Linux или WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Windows через WinGet
winget install Anthropic.ClaudeCode
# проверка версии и конфигурации
claude --version
claude doctorGit for Windows больше нельзя называть безусловным требованием для CLI. В нативной Windows он рекомендован: с ним Claude Code использует Git Bash, а без него умеет работать через PowerShell. Для локальных сессий во вкладке Code десктопного приложения Git for Windows, напротив, обязателен. Само приложение включает Claude Code, поэтому отдельно устанавливать CLI или Node.js для вкладки Code не нужно.
У десктопного приложения есть вкладки Chat, Cowork и Code. В Code можно выбрать Local, указать папку кнопкой Select folder, поставить режим разрешений и проверять изменения в diff-интерфейсе. Приложение доступно для macOS и Windows; версия для Linux находится в бета-статусе и официально поддерживает Ubuntu 22.04 или новее и Debian 12 или новее на архитектурах x86_64 и arm64. Это отдельные требования приложения, их не следует смешивать с более широкими требованиями CLI.
Теперь ограничение, которое нельзя прятать в примечании. В требованиях Claude Code указано местонахождение в поддерживаемой Anthropic стране, а России в текущих списках для Claude.ai и коммерческого API нет. Авторизация через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry технически поддерживается, но сама по себе не превращает российское использование в разрешённое: организация должна отдельно проверить доступность выбранного облака, договор, регион обработки, экспортные ограничения и требования российского законодательства. Если подтверждённого договорного контура нет, я не советую маскировать местоположение или оформлять подписку на подставное лицо.
Разбор из практики: транспортная компания «Автодор-Экспресс», 95 сотрудников
Условный клиент в этом разборе — транспортная компания «Автодор-Экспресс», 95 сотрудников. В учёте используется «1С:Управление торговлей 8», редакция 11.5; сама редакция 11.5 существует и описана в официальной документации фирмы «1С». Бухгалтерия состоит из двух человек. Ежемесячная боль — архив первичных документов с машинными именами и сверка с выгрузкой из УТ. Заказывать доработку конфигурации ради одной раскладки файлов невыгодно, а ручная обработка занимает около двух дней.
На терминальном сервере я завёл отдельный каталог. В нативной Windows встроенной Bash-песочницы Claude Code нет, поэтому исходные документы защищались не только настройками агента, но и правами NTFS: рабочая учётная запись могла читать in и каталог выгрузки, а записывать — только в out и work. Это важное различие. Правила Claude Code управляют его инструментами, а права операционной системы остаются последней границей для любого запущенного процесса.
D:\Sverka\
in\
out\
work\
1c\vygruzka.xlsx
CLAUDE.md
.claude\settings.jsonВ in кладём копии полученных PDF, в out получаем таблицу и разложенные документы, в work разрешаем создавать временный скрипт. Файл 1c\vygruzka.xlsx — экспорт из «1С:Управление торговлей 8», редакция 11.5, с номером, датой, ИНН и суммой. CLAUDE.md загружается Claude Code при старте из этой папки и хранит постоянные инструкции, а .claude\settings.json задаёт правила проекта.
Содержимое CLAUDE.md я написал как инструкцию новому сотруднику. Здесь не нужен специальный язык, но нужны проверяемые требования.
# Сверка первичных документов
Работай только с данными текущей папки.
- Файлы в `in` и `1c` считай исходниками: не переименовывай, не изменяй и не удаляй их.
- Все создаваемые файлы записывай в `out` или `work`.
- Из каждого PDF извлеки номер, дату, ИНН и итоговую сумму без округления.
- Если реквизит не читается однозначно, не угадывай. Добавь имя файла и причину в `out/problem.txt`.
- Не считай успешно обработанным файл, попавший в список проблем.
- Сверь число исходных PDF с суммой успешно обработанных и проблемных файлов.
- Итоги пересчитай непосредственно по извлечённым строкам и отдельно сравни с контрольной суммой выгрузки 1С.
- Перед завершением создай `out/control.txt` с количеством файлов, суммой, числом расхождений и списком выполненных проверок.На первом прогоне 22 файла из 340 оказались сканами без текстового слоя. Агент вынес их в отдельный список, и это был правильный результат: пустая строка лучше выдуманного ИНН. Затем скрипт споткнулся о символы, которые нельзя без подготовки переносить в имена папок Windows. Агент добавил очистку имён со второй попытки, но после исправления я повторно прогнал набор с нуля, а не продолжил работу на наполовину изменённом каталоге.
Главная ошибка была менее заметной. В первом прогоне агент сообщил итоговую сумму, рассчитанную по собственной промежуточной таблице. Такая проверка ничего не доказывает: если строка потеряна на этапе извлечения, она потеряется и в итоговой сумме. Расхождение обнаружилось на ручной выборке. После этого в CLAUDE.md появилось требование считать количество файлов и сопоставлять итог с независимой выгрузкой 1С.
Первый контролируемый прогон занял 40 минут вместе с наблюдением и двумя итерациями. Повторные запуски в следующие месяцы занимали 6–8 минут: бухгалтер копировал архив в in, запускал сценарий и проверял контрольный файл. Сверка показала 6 расхождений с выгрузкой, из которых 4 оказались реальными на сумму около 118 тысяч рублей: два документа не были проведены, ещё в двух сумма отличалась из-за пересорта. Оставшиеся 2 расхождения относились к нераспознанным сканам. Все 22 скана разобрали вручную. Агент снял механику, но не отменил работу с исключениями.
Права Claude Code: что действительно защищает рабочую папку
Claude Code способен запускать системные команды, поэтому права я настраиваю до передачи инструмента бухгалтеру. Пользовательские настройки находятся в ~/.claude/settings.json; в Windows ~ означает %USERPROFILE%. Общий файл проекта — .claude/settings.json, личный файл конкретного проекта — .claude/settings.local.json. Приоритет обычных скалярных параметров идёт от управляемой политики организации к аргументам командной строки, затем к локальному файлу проекта, общему файлу проекта и пользовательским настройкам. Массивы, включая списки разрешений, могут объединяться между уровнями, а запрет из любого уровня нельзя перебить разрешением из другого.
Настройки — строгий JSON. Комментарий // или запятая после последнего элемента являются синтаксической ошибкой. После изменения я открываю /status, чтобы увидеть загруженные источники настроек, и запускаю claude doctor, чтобы найти отвергнутые ключи или ошибочные правила.
Для первого запуска в нативной Windows я использую консервативный проектный файл. Он не заменяет NTFS-права и песочницу: документация прямо предупреждает, что произвольный Python-процесс может читать и писать файлы в обход путевых правил Read и Edit. Эти правила контролируют встроенные файловые инструменты и распознаваемые файловые команды, но не любой код внутри подпроцесса.
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"defaultMode": "default",
"allow": [
"Read(/in/**)",
"Read(/1c/**)",
"Edit(/out/**)",
"Edit(/work/**)"
],
"ask": [
"Bash(python *)",
"Bash(python3 *)",
"Bash(pip install *)",
"Bash(pip3 install *)"
],
"deny": [
"Edit(/in/**)",
"Edit(/1c/**)",
"Read(//**/.env)",
"Read(//**/.env.*)",
"Read(//**/.ssh/**)",
"Read(//**/.aws/**)",
"Bash(rm *)",
"Bash(curl *)",
"Bash(wget *)",
"WebFetch"
],
"blockReadsOutsideWorkingDirectories": true,
"disableBypassPermissionsMode": "disable",
"disableAutoMode": "disable"
}
}Правила проверяются в порядке deny, затем ask, затем allow. Совпавший широкий запрет сильнее узкого разрешения: если запрещён Bash(aws *), разрешение Bash(aws s3 ls) исключение не создаст. То же относится к ask: совпавшее правило запроса подтверждения сработает, даже если команда попадает под более точное разрешение. Голое имя инструмента в deny, например Bash, убирает весь инструмент из контекста модели; правило Bash(rm *) оставляет Bash доступным, но блокирует совпавшие команды.
Со звёздочками нужна аккуратность. Bash(git log *) ограничивает разрешение подкомандой log, а Bash(git * main) охватывает разные подкоманды, включая git push origin main, и варианты с git -c, способные запустить указанную программу. Пробел перед хвостовой звёздочкой тоже значим: Bash(ls *) совпадает с ls и ls -la, но не с lsof; Bash(ls*) совпадёт и с lsof. Поэтому я не разрешаю широкие семейства команд по принципу «название вроде безопасное».
Перед сопоставлением Claude Code снимает оболочки timeout, time, nice, nohup, stdbuf, встроенные команды command и builtin, а также noglob в Zsh. Голый xargs без флагов тоже снимается, но xargs -n1 уже проверяется как отдельная команда. Составные команды разбираются по &&, ||, ;, |, |&, & и переводам строк; каждая подкоманда должна пройти проверку. Эти детали важны при аудите готового файла разрешений.
Путевые правила поддерживаются для Read и Edit. Edit распространяется на встроенные средства изменения и записи, а Read-запрет также блокирует Edit и Write на совпавшем пути. Правило вида Write(docs/**) принимается, но не используется как путевое и вызывает предупреждение; правильно писать Edit(docs/**). В проектном файле /in/** означает каталог in относительно основной рабочей папки, ~/path — путь от домашнего каталога, а абсолютный путь в правилах начинается с //. На Windows пути перед проверкой нормализуются в POSIX-вид.
Режимов разрешений шесть: default, acceptEdits, plan, auto, dontAsk и bypassPermissions. Для начала я выбираю default, который в интерфейсе называется Manual. acceptEdits автоматически принимает изменения файлов и распространённые файловые команды внутри рабочих каталогов. plan предназначен для исследования и плана без обычного редактирования. dontAsk отклоняет то, что не разрешено заранее. auto использует отдельный классификатор безопасности и доступен не на всех планах. bypassPermissions пропускает слой разрешений и годится только для изолированной виртуальной машины или контейнера.
Значения auto и bypassPermissions для permissions.defaultMode не применяются из .claude/settings.json и .claude/settings.local.json; их задают в пользовательских или управляемых настройках либо на один запуск. Возможность выбрать эти режимы лучше закрывать управляемой политикой организации через disableAutoMode и disableBypassPermissionsMode. На сетевую UNC-папку вида \\server\share нельзя рассчитывать как на обычный дополнительный рабочий каталог: доступ может передавать учётные данные удалённому узлу. В Windows шару лучше подключить буквой диска и добавлять только после отдельной оценки через --add-dir.
- Проверить загруженные настройки: `/status`.
- Открыть редактор правил: `/permissions`.
- Проверить ошибки конфигурации: `claude doctor`.
- Добавить каталог на одну сессию: `claude --add-dir <path>`.
- Жёстко запретить чтение за пределами рабочих каталогов: `permissions.blockReadsOutsideWorkingDirectories`.
Песочница: граница на уровне операционной системы
Подтверждать каждую безопасную команду утомительно, но отключать проверки целиком ещё хуже. Встроенная Bash-песочница решает другую задачу: операционная система ограничивает доступ команды и всех её дочерних процессов к файлам и сети. Она работает на macOS через Seatbelt, на Linux и в WSL2 через bubblewrap; нативная Windows не поддерживается. Панель открывается командой /sandbox.
На Ubuntu, Debian и WSL2 нужны bubblewrap и socat. Для Fedora используется тот же набор пакетов. Необязательный seccomp-фильтр блокирует Unix-сокеты и устанавливается пакетом @anthropic-ai/sandbox-runtime. После установки Claude Code нужно перезапустить, потому что зависимости проверяются при старте.
# Ubuntu или Debian
sudo apt-get install bubblewrap socat
# Fedora
sudo dnf install bubblewrap socat
# необязательный seccomp-фильтр
npm install -g @anthropic-ai/sandbox-runtimeУ песочницы есть важные значения по умолчанию. Команды могут записывать в текущий рабочий каталог, добавленные рабочие каталоги и временную папку сессии. Читать по умолчанию можно значительно больше — почти весь компьютер, кроме явно запрещённых путей. Поэтому allowWrite не является белым списком записи: этот параметр добавляет доступ к пути вне рабочего каталога, а не отнимает уже имеющийся доступ внутри него. Чтобы защитить in и выгрузку 1С, нужны denyWrite, путевые запреты Edit и, на Windows, ACL.
Проектный файл для Linux или WSL2 я строю так. В нём исходные каталоги запрещены для записи, несанкционированный выход из песочницы отключён, а отсутствие самой песочницы считается ошибкой, а не поводом тихо продолжить без изоляции.
{
"permissions": {
"defaultMode": "default",
"blockReadsOutsideWorkingDirectories": true,
"deny": [
"Edit(/in/**)",
"Edit(/1c/**)",
"Bash(rm *)",
"WebFetch"
]
},
"sandbox": {
"enabled": true,
"failIfUnavailable": true,
"allowUnsandboxedCommands": false,
"filesystem": {
"denyWrite": [
"./in",
"./1c",
"./CLAUDE.md"
]
},
"network": {
"allowedDomains": [
"pypi.org",
"files.pythonhosted.org"
]
}
}
}allowUnsandboxedCommands: false соответствует Strict sandbox mode в панели /sandbox: Claude Code не сможет повторить заблокированную команду с параметром dangerouslyDisableSandbox. failIfUnavailable: true не даёт начать работу, если изоляция не инициализировалась. Без этого параметра программа предупреждает о проблеме, но способна перейти к выполнению без песочницы. Для офисного сценария такое автоматическое ослабление границы мне не подходит.
Список allowedDomains заранее разрешает перечисленные домены, но по умолчанию запрос к другому домену может вызвать диалог подтверждения. Если нужен настоящий сетевой белый список без возможности ручного расширения, параметр sandbox.network.strictAllowlist надо установить в ~/.claude/settings.json, в управляемой политике или передать через --settings. В общем проектном .claude/settings.json и локальном проектном файле этот параметр не действует. В организации я помещаю его в управляемые настройки.
{
"sandbox": {
"network": {
"strictAllowlist": true
}
}
}На Ubuntu 24.04 и новее AppArmor может запрещать bubblewrap создавать пользовательские пространства имён. Сначала нужно проверить sysctl kernel.apparmor_restrict_unprivileged_userns. Если результат равен 1, администратор добавляет рекомендованный документацией профиль для bwrap и перезагружает AppArmor; при 0 или отсутствии параметра этот шаг не нужен. Я не называю сбой «молчаливым»: панель Dependencies показывает недостающие компоненты, а failIfUnavailable превращает проблему в явный отказ запуска.
Автоматическое разрешение команд внутри песочницы и permission mode auto — разные механизмы. Первое доверяет границе операционной системы для Bash, второе передаёт решения классификатору. Даже с песочницей запреты deny продолжают действовать. И наоборот: песочница охватывает Bash и дочерние процессы, но не заменяет правила для встроенных Read, Edit, WebFetch и других инструментов.
Как принимать результат, чтобы уверенная ошибка не ушла в учёт
Самая дорогая часть внедрения — не написание скрипта, а критерии приёмки. Я заранее фиксирую четыре числа: сколько файлов было на входе, сколько обработано успешно, сколько попало в исключения и сколько строк записано в итог. Для простого сценария должно выполняться равенство: число успешных файлов плюс число проблемных равно числу входных. Если один документ может давать несколько строк, это отдельно описывается в правилах, иначе красивый отчёт скрывает потерю.
Сумму нельзя проверять по таблице, которую агент только что создал. Нужен независимый источник: итог выгрузки из 1С, реестр поставщика либо контрольный отчёт, сформированный штатным средством. Расхождение не означает автоматически ошибку агента, но оно останавливает приёмку. Бухгалтер разбирает причины и помечает каждую как реальную, техническую или ожидаемую.
Выборка из 10 строк — минимальная страховка для набора из нескольких сотен документов, а не статистическая гарантия. Я выбираю строки не подряд: одну с максимальной суммой, одну с минимальной, несколько случайных, документ с необычным названием контрагента и хотя бы один файл каждого встреченного формата. Отдельно открываю все позиции из problem.txt. Если цена ошибки высока, размер выборки и правила контроля определяет владелец процесса, а не агент.
После первого успешного прогона я сохраняю использованный скрипт, версию Claude Code из claude --version, исходный CLAUDE.md, настройки, контрольный файл и обезличенный тестовый набор. Следующий запуск сначала проходит на тестовых данных с известным ответом. Обновление приложения, смена модели или изменение шаблона входных документов являются поводом повторить тест, потому что поведение может измениться даже при той же пользовательской фразе.
Когда сценарий влияет на платежи, проводки или регламентированную отчётность, одной выборки мало. Тогда агент готовит результат, но загрузка в учётную систему выполняется отдельным штатным механизмом после полного контроля. Если процесс должен запускаться по расписанию без человека, я превращаю удачный прототип в обычную автоматизацию: фиксирую зависимости, добавляю тесты, журнал, оповещения и процедуру восстановления. Наличие запланированных задач в Claude Code не отменяет этих требований.
- Сверить число входных, успешных и проблемных файлов.
- Сравнить итог с независимым источником.
- Проверить не менее 10 осмысленно выбранных строк.
- Разобрать каждое исключение, а не спрятать его из отчёта.
- Сохранить тестовый набор и повторить тест после изменения среды.
Персональные данные: где я останавливаю проект
Локальный Claude Code выполняет команды на компьютере, но для обращения к модели передаёт данные по сети. Не вся выбранная папка автоматически загружается целиком, однако пользовательские запросы, ответы модели и содержимое файлов, включённое агентом в контекст, уходят выбранному провайдеру. При прямом подключении это инфраструктура Anthropic; при Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry маршрут и условия хранения зависят от конфигурации провайдера. Поэтому фраза «всё работает локально» вводит в заблуждение.
Для Free, Pro и Max Anthropic позволяет пользователю выбрать, использовать ли данные для улучшения моделей. При включённой настройке срок хранения данных для таких потребительских аккаунтов заявлен до 5 лет, при выключенной — 30 дней. Для Team, Enterprise и API стандартный срок хранения составляет 30 дней, а данные по коммерческим условиям не используются для обучения генеративных моделей, если клиент сам не подключил соответствующую программу. Нулевая ретенция доступна только подходящим организациям и не включается автоматически вместе с Enterprise.
Есть и локальный след. CLI хранит тексты сессий в открытом виде в ~/.claude/projects/ по умолчанию 30 дней для возобновления работы; срок управляется параметром cleanupPeriodDays. Для сессий, начатых или продолженных в Desktop либо Cowork, политика локального хранения имеет отдельные исключения. Поэтому перед внедрением я проверяю не только сетевой маршрут, но и права на пользовательский профиль, резервное копирование компьютера и очистку локальных журналов.
Для российского оператора передача персональных данных иностранному юридическому лицу или на территорию иностранного государства может быть трансграничной передачей по статье 12 Федерального закона № 152-ФЗ. До её начала оператор в общем случае отдельно уведомляет Роскомнадзор и предварительно получает предусмотренные законом сведения от иностранного получателя. Дополнительно нужно определить правовое основание обработки, выполнить требования к поручению обработки, безопасности и локализации первичного сбора данных граждан России. Облачный договор сам по себе не отменяет эти обязанности.
Поэтому я не даю универсальный юридический совет «достаточно согласия» или «достаточно обезличить таблицу». Настоящее обезличивание должно исключать определение человека без дополнительной информации, а замена ФИО кодом может оставаться псевдонимизацией, если таблица соответствий доступна компании. Решение принимает оператор персональных данных вместе с юристом и ответственным за безопасность после анализа конкретных полей, целей, получателей и стран.
Моя практическая красная линия для пилота проста: кадровые документы, зарплатные ведомости, паспорта, медицинские сведения, сведения о физических лицах и массивы с адресами или телефонами не попадают в рабочую папку. Я начинаю с реквизитов юридических лиц, номеров и дат документов, номенклатуры, сумм и действительно обезличенных выгрузок. Даже здесь проверяю свободный текст: назначение платежа, комментарий менеджера или скан доверенности могут неожиданно содержать персональные данные.
Одного запрета в CLAUDE.md недостаточно. Для встроенных файловых инструментов ставятся Read и Edit запреты, для подпроцессов — песочница или ACL, а для сети — проверенный маршрут и белый список. При прямом подключении также нужно проверить настройки использования данных и запретить необязательную отправку отзывов в корпоративной политике. Технический забор не заменяет правового основания, но он не позволяет случайной ошибке пользователя расширить согласованный набор данных.
Как поставить сценарий на поток в небольшой компании
Рабочая схема состоит из пяти частей. Первая — отдельный лоток с каталогами in, out и work. Вторая — CLAUDE.md с правилами обработки. Третья — .claude/settings.json с запретами, дополненный песочницей или ACL операционной системы. Четвёртая — стабильная команда запуска. Пятая — контрольный лист, который выполняет человек. Если убрать последнюю часть, получится демонстрация, а не производственный процесс.
CLAUDE.md хранит факты и неизменные правила проекта: где вход, куда писать, какие поля извлекать и что считать ошибкой. Повторяемую многошаговую процедуру лучше оформить как skill. Текущий рекомендуемый путь проекта — .claude/skills/<имя>/SKILL.md; старый каталог .claude/commands/ продолжает работать, но считается устаревающим форматом. Имя каталога становится слэш-командой.
Для сценария сверки можно создать .claude/skills/sverka-postavshchik/SKILL.md. Поле disable-model-invocation: true оставляет запуск за пользователем: агент не будет сам решать, когда применять процедуру.
---
description: Проверяет входные PDF поставщика и сверяет их с выгрузкой 1С.
disable-model-invocation: true
---
1. Прочитай правила из `CLAUDE.md`.
2. До обработки посчитай PDF в `in` и запиши количество.
3. Обрабатывай только копии из `in`; исходники не изменяй.
4. Результаты записывай только в `out`, временные файлы — в `work`.
5. Нечитаемые и неоднозначные документы внеси в `out/problem.txt` без догадок.
6. Сверь результат с `1c/vygruzka.xlsx`.
7. Создай `out/control.txt` с количеством файлов, суммой, расхождениями и выполненными проверками.
8. Не объявляй работу завершённой, если баланс файлов не сходится.После создания сценарий запускается командой /sverka-postavshchik; его можно выбрать из меню / в CLI и Desktop. Новый верхнеуровневый каталог skills, которого не было при старте сессии, может потребовать перезапуска, чтобы наблюдение за изменениями включилось. Уже существующие каталоги skills Claude Code отслеживает и обновляет в текущей сессии.
На старте я не подключаю MCP к боевой 1С, не выдаю доступ к сетевому корню и не настраиваю бесконтрольный запуск по расписанию. Сначала один процесс проходит вместе с исполнителем, затем три последовательных месяца — по одной и той же инструкции и с одинаковым контролем. Только после этого решаю, нужен ли постоянный скрипт, интеграция или централизованная политика.
Метрика успеха у меня приземлённая: продолжительность повторного прогона, число ручных действий, количество исключений и найденных расхождений. В разборе повторный прогон сократился с двух рабочих дней до 6–8 минут машинной обработки плюс ручная проверка. Если второй и третий запуск почти не быстрее первого, значит, процедура не закреплена: нужно уточнять вход, CLAUDE.md, skill и контрольные правила, а не покупать более дорогой тариф.
Ответственность тоже должна быть закреплена. Один сотрудник владеет процессом и принимает результат, другой администрирует права и обновления, а руководитель утверждает допустимый набор данных. Бухгалтер не должен самостоятельно расширять сетевой доступ или принимать новый пакет из интернета только потому, что агент попросил библиотеку. Такие изменения проходят через администратора и повторный тест.
- Выбрать один процесс с понятным входом и проверяемым результатом.
- Создать отдельные каталоги для исходников, результата и временных файлов.
- Зафиксировать инструкции в `CLAUDE.md`, а повторяемую процедуру — в `.claude/skills/<имя>/SKILL.md`.
- Ограничить доступ одновременно настройками Claude Code и средствами операционной системы.
- Сохранить контрольный набор и известный правильный результат.
- Назначить владельца процесса и администратора настроек.
- Расширять сценарий только после нескольких стабильных повторных прогонов.
Частые вопросы
Нужно ли уметь программировать, чтобы использовать Claude Code для документов?
Писать код необязательно, но нужно уметь описать вход, результат, исключения и проверку. Первый сценарий лучше настраивать вместе со специалистом: он ограничит права, подготовит тестовый набор и зафиксирует процедуру. После этого бухгалтер запускает готовый skill и принимает результат по контрольному листу.
Сколько стоит Claude Code для одного бухгалтера?
На 8 сентября 2026 года Claude Code входит во все платные планы. Pro стоит 17 долларов в месяц при оплате 200 долларов за год или 20 долларов помесячно; Max начинается от 100 долларов. Для компании следует оценивать не только индивидуальный Pro, но и коммерческие условия Team или Enterprise. Team требует минимум два места и стоит от 20 долларов за место в месяц при годовой оплате.
Можно ли подключить Claude Code напрямую к базе 1С?
Технически интеграции возможны, но для описанного сценария я их не рекомендую. Безопаснее сформировать штатную выгрузку, обработать её в отдельной папке и загружать проверенный результат обратно штатными средствами. Прямой доступ к боевой базе требует отдельной архитектуры, тестовой среды, журналирования и резервного восстановления.
Почему нельзя просто разрешить `Bash(python *)`?
Такое правило разрешает запуск любого Python-кода с любыми подходящими аргументами. Если агент может изменить запускаемый скрипт, узкое на вид разрешение фактически становится широким. В нативной Windows оставляйте подтверждение и ограничивайте учётную запись через ACL; в Linux или WSL2 используйте песочницу с запретом записи в исходники и строгим сетевым контуром.
Что делать, если агент посчитал неправильную сумму?
Остановить приёмку и проверить цепочку от исходных файлов. Итог нужно сравнивать с независимой выгрузкой, а не с таблицей агента. Дополнительно сверяются количество входных, успешных и проблемных файлов и минимум 10 выбранных строк. После исправления сценарий запускают заново на чистой копии входных данных.
Защищает ли `.claude/settings.json` от любого доступа к файлам?
Нет. Путевые правила `Read` и `Edit` управляют встроенными инструментами и некоторыми распознаваемыми файловыми командами, но произвольный подпроцесс может обращаться к файлам с правами пользователя. Настоящую границу дают Bash-песочница на macOS, Linux или WSL2, контейнер, виртуальная машина либо ACL операционной системы.
Можно ли использовать встроенную песочницу на Windows?
На нативной Windows — нет. Она поддерживается в WSL2, а также на Linux и macOS. Если WSL2 не подходит, запускайте процесс в отдельной виртуальной машине или под специальной учётной записью с правом чтения исходников и записи только в рабочие каталоги.
Россия отсутствует в списке поддерживаемых стран. Что это означает?
Прямое использование Claude.ai или коммерческого API из России нельзя считать штатно поддерживаемым. Облачные провайдеры технически поддерживаются Claude Code, но организация должна проверить их территориальную доступность, договор, экспортные ограничения, маршрут данных и российские требования. Обход географических ограничений через чужую подписку или маскировку местоположения я не рекомендую.
Можно ли отправлять агенту персональные данные?
Только после формальной оценки оператором персональных данных, юристом и специалистом по безопасности. Нужно определить основание обработки, получателя, страну и маршрут передачи, выполнить требования к трансграничной передаче, локализации и защите. Для первого пилота я полностью исключаю кадровые, зарплатные, паспортные, медицинские и другие данные физических лиц.
Источники
- Claude Code — Advanced setup — Системные требования CLI, команды нативной установки, WinGet, диагностика, Windows и npm; актуальная страница: https://code.claude.com/docs/en/installation
- Claude Code — Configure permissions — Порядок deny → ask → allow, синтаксис Bash, Read, Edit и WebFetch, шаблоны, оболочки команд, рабочие каталоги и UNC-пути: https://code.claude.com/docs/en/permissions
- Claude Code — Permission modes — Режимы default, acceptEdits, plan, auto, dontAsk и bypassPermissions, ограничения и защищённые пути: https://code.claude.com/docs/en/permission-modes
- Claude Code — Configuration — Файлы настроек, строгий JSON, приоритет уровней, объединение массивов и ограничения project/local для auto и bypassPermissions: https://code.claude.com/docs/en/configuration
- Claude Code — Sandboxing — Seatbelt, bubblewrap, socat, WSL2, seccomp-пакет, AppArmor, failIfUnavailable, allowUnsandboxedCommands, файловые и сетевые параметры: https://code.claude.com/docs/en/sandboxing
- Claude Code — Desktop quickstart — Вкладки Chat, Cowork и Code, Select folder, режимы проверки, встроенный Claude Code и требование Git для локальных сессий Windows: https://code.claude.com/docs/en/desktop-quickstart
- Claude Code — Linux desktop beta — Требования Ubuntu 22.04+, Debian 12+, архитектуры x86_64 и arm64, установка через apt: https://code.claude.com/docs/en/desktop-linux
- Claude Code — Skills — Формат `.claude/skills/<name>/SKILL.md`, YAML frontmatter, прямой запуск через `/name` и статус `.claude/commands/`: https://code.claude.com/docs/en/slash-commands
- Claude Code — Data usage — Сетевой поток локальных сессий, обучение, сроки серверного и локального хранения, провайдеры и необязательная телеметрия: https://code.claude.com/docs/en/data-usage
- Claude — Plans and pricing — Тарифы Free, Pro, Max, Team и Enterprise и включение Claude Code в платные планы; проверено 8 сентября 2026 года: https://claude.com/pricing
- Anthropic — Supported countries and regions — Действующие перечни стран для коммерческого API и Claude.ai; Россия в опубликованных перечнях отсутствует: https://www.anthropic.com/supported-countries
- Claude Code — Authentication — Поддерживаемые варианты авторизации через Claude.ai, Console, Amazon Bedrock, Google Vertex AI и Microsoft Foundry: https://code.claude.com/docs/en/authentication
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных» — Действующая редакция на официальном портале правовой информации; статьи 3, 6, 12, 18, 18.1 и 19: https://pravo.gov.ru/proxy/ips/?docbody=&nd=102108261
- 1С:Управление торговлей 8, редакция 11.5 — официальное описание — Документация фирмы «1С», подтверждающая наименование продукта и редакцию 11.5: https://its.1c.ru/db/content/ut115doc/src/index.htm
