АйТи Фреш
Главная / Статьи / ИИ и нейросети
ИИ и нейросети

Claude Code для непрограммистов: документы, Excel и разовые скрипты под контролем

Автор: Семёнов Евгений Сергеевич, директор ООО «АйТи-Фреш» · · ~29 мин чтения
Claude Code для непрограммистов: документы, Excel и разовые скрипты под контролем
Иллюстрация к статье «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. Исходные файлы не изменяй. В конце сравни количество обработанных файлов с количеством входных». Такую инструкцию можно проверить по пунктам, а значит, можно принять или отклонить результат.

Я начинаю не с идеи «внедрить ИИ», а с двух-трёх операций, которые сотрудник способен описать новому стажёру за несколько минут. Хороший кандидат имеет понятный вход, проверяемый выход и ограниченную рабочую папку. Если для выполнения нужно принимать управленческие решения, менять данные в боевой системе или угадывать смысл нестандартных документов, задача уже выходит за рамки безопасного разового скрипта.

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

Подписка, системные требования и доступность по странам

Сначала о цене. По состоянию на 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 doctor

Git 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 технически поддерживается, но сама по себе не превращает российское использование в разрешённое: организация должна отдельно проверить доступность выбранного облака, договор, регион обработки, экспортные ограничения и требования российского законодательства. Если подтверждённого договорного контура нет, я не советую маскировать местоположение или оформлять подписку на подставное лицо.

Если выбран устаревающий вариант установки через npm, команда называется `npm install -g @anthropic-ai/claude-code`. Начиная с Claude Code 2.1.198 npm-пакет требует Node.js 22 или новее; на старой версии Node npm выдаёт `EBADENGINE`, хотя установка может завершиться и загруженный нативный бинарник продолжит работать. Для офисного компьютера нативный установщик проще и сам обновляется в фоне.
Claude Code для непрограммистов: документы, Excel и разовые скрипты под контролем — схема
Схема к статье. Открыть схему в полном размере

Разбор из практики: транспортная компания «Автодор-Экспресс», 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 скана разобрали вручную. Агент снял механику, но не отменил работу с исключениями.

Опасный результат — не сообщение «не смог», а уверенный ответ с незамеченной потерей строк. Я всегда сверяю количество входных файлов, независимую контрольную сумму и случайную выборку минимум из 10 строк.

Права 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.

Права Claude Code — полезная первая линия, но не граница операционной системы. Если агенту разрешено выполнить изменяемый Python-скрипт, этот скрипт получает права учётной записи. Для реальной изоляции нужны песочница, контейнер, виртуальная машина или файловые ACL.
Порядок действий: Права Claude Code: что действительно защищает рабочую папку — схема
Порядок действий: Права Claude Code: что действительно защищает рабочую папку. Открыть схему в полном размере

Песочница: граница на уровне операционной системы

Подтверждать каждую безопасную команду утомительно, но отключать проверки целиком ещё хуже. Встроенная 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 и других инструментов.

Для нативной Windows встроенной Bash-песочницы нет. Практические варианты — WSL2, отдельная виртуальная машина, контейнер либо отдельная учётная запись с минимальными NTFS-правами. Режим `bypassPermissions` на обычном рабочем столе я не включаю.

Как принимать результат, чтобы уверенная ошибка не ушла в учёт

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

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

Выборка из 10 строк — минимальная страховка для набора из нескольких сотен документов, а не статистическая гарантия. Я выбираю строки не подряд: одну с максимальной суммой, одну с минимальной, несколько случайных, документ с необычным названием контрагента и хотя бы один файл каждого встреченного формата. Отдельно открываю все позиции из problem.txt. Если цена ошибки высока, размер выборки и правила контроля определяет владелец процесса, а не агент.

После первого успешного прогона я сохраняю использованный скрипт, версию Claude Code из claude --version, исходный CLAUDE.md, настройки, контрольный файл и обезличенный тестовый набор. Следующий запуск сначала проходит на тестовых данных с известным ответом. Обновление приложения, смена модели или изменение шаблона входных документов являются поводом повторить тест, потому что поведение может измениться даже при той же пользовательской фразе.

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

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

Персональные данные: где я останавливаю проект

Локальный 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 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, но организация должна проверить их территориальную доступность, договор, экспортные ограничения, маршрут данных и российские требования. Обход географических ограничений через чужую подписку или маскировку местоположения я не рекомендую.

Можно ли отправлять агенту персональные данные?

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

Столкнулись с похожей задачей? Обращайтесь — решим

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

Возьмёмся и за разовую задачу, и за постоянное обслуживание. Первичная консультация — бесплатно и без обязательств.

📞 +7 903 729-62-41 💬 MAX: +7 903 729-62-41 ✈ Telegram @ITfresh_Boss

С уважением, Семёнов Евгений Сергеевич, директор «АйТи Фреш» — IT-аутсорсинг для компаний до 50 рабочих мест, 15+ лет практики

Источники

© ООО «АйТи-Фреш» · Москва · Все статьи