Files
Igor K.andClaude Opus 5.5 a6a3d5d6cd feat: обрезка КИЗ до 31 символа, README, инструкции для AI-агентов
- VBS и Python: в итоговом CSV код КИЗ обрезается до первых 31 символа
  (код без криптохвоста: 01 + GTIN + 21 + серийный номер); более короткий
  код остаётся как есть, с замечанием в отчёте. Копия kiz_to_csv.py в
  портативном комплекте обновлена так же.
- README.md: инструкция на русском, переписана проще и яснее;
  Инструкция_экспорт_CSV.docx пересобрана из того же текста, с настоящими
  заголовками и списками.
- AGENTS.md, CLAUDE.md, .agents/ (скилл kiz-testing, папки plans и reports).
- .gitignore для .DS_Store; .gitattributes хранит файлы без изменения
  концов строк (.bat и .vbs нужны CRLF).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 06:38:47 -04:00

101 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Обработка КИЗ: CSV для вывода товаров из оборота в «Честном знаке»
Скрипт берёт два файла Excel — товарную накладную и таблицу с отсканированными кодами КИЗ — и делает из них CSV-файл для загрузки в «Честный знак».
Есть два варианта скрипта. Они работают одинаково, выберите любой:
- **VBS** — для Windows с установленным Excel: `obrabotka_kiz_vb/xlsx_to_csv_utf8.vbs`.
- **Python** — для Windows, Mac и Linux: `obrabotka_kiz_python/kiz_to_csv.py`. Для Windows без прав администратора есть готовый портативный комплект: папка `obrabotka_kiz_python/KIZ_portable_Win7`.
## Что делает скрипт
1. Читает два файла:
- файл 1 — товарная накладная (ТОРГ-12) от поставщика;
- файл 2 — ваш файл с отсканированными кодами КИЗ.
2. Из каждого кода КИЗ берёт код товара GTIN — 14 цифр после «01» в начале кода.
3. Находит этот товар в накладной и записывает напротив кода КИЗ: B — название, C — цена, D — 1, E — 796 (код единицы «штука»), F — ставка НДС со знаком %, G — «КИЗ».
4. Обрезает каждый код КИЗ до первых 31 символа. Это код без криптохвоста: «01» + GTIN (14 цифр) + «21» + серийный номер (13 символов). Если код короче 31 символа, он остаётся как есть, а в отчёте появляется замечание.
5. Сверяет количество: сколько кодов КИЗ каждого товара отсканировано и сколько указано в накладной.
6. Сохраняет рядом с файлом КИЗ два файла:
- `<имя>.csv` — его загружайте в «Честный знак»;
- `<имя>_report.txt` — отчёт: сверка по каждому товару и все замечания.
Сами файлы Excel не изменяются, макросы в них не нужны.
## Требования к файлам
Оба файла: данные на первом листе, формат `.xlsx` (VBS-скрипт читает и `.xls`).
**Накладная (файл 1):**
- товары начинаются с ряда 19;
- колонка B («Наименование») — название товара, пробел и GTIN в самом конце, например `Мишка с сердцем 22см 04640720990098`. GTIN — 14 цифр, можно 13 без ведущего нуля;
- колонка K — количество, L — цена, N — ставка НДС.
**Файл КИЗ (файл 2):**
- коды КИЗ — в последней заполненной колонке;
- у этой колонки должен быть формат «Текстовый», иначе Excel может испортить длинные коды. Настройте это один раз и сохраните в шаблоне.
## Вариант 1. VBS-скрипт (Windows + Excel)
Нужно: Windows 7 или новее и Excel 2007, 2010, 2013 или 2016.
1. Скопируйте `xlsx_to_csv_utf8.vbs` в любую папку на рабочем компьютере.
2. Сохраните и закройте оба файла Excel.
3. Дважды щёлкните `xlsx_to_csv_utf8.vbs`.
4. В первом окне выберите файл с КИЗ, во втором — накладную. Проще: перетащите файл с КИЗ мышью на значок скрипта — тогда останется выбрать только накладную.
5. Excel ненадолго откроется в фоне — это нормально.
6. В конце появится окно с итогом: сколько кодов обработано и совпали ли количества с накладной.
**Если антивирус блокирует запуск.** Некоторые антивирусы блокируют любые файлы `.vbs` — это ложное срабатывание. Разрешите запуск в окне антивируса. Скрипт ничего не устанавливает и не удаляет: он только читает два файла через Excel и записывает рядом CSV и отчёт.
## Вариант 2. Python (Windows, Mac, Linux)
Нужно: Python 3.8 или новее и пакет openpyxl. На Windows 7 работает только Python 3.8.
Установка (один раз):
1. Скачайте Python с https://www.python.org/downloads/ (для Windows 7 — версию 3.8.10).
2. Запустите установщик и в первом же окне внизу поставьте галочку «Add python.exe to PATH». Без неё скрипт не найдёт Python.
3. Нажмите Win+R, введите `cmd`, нажмите Enter и выполните команду `pip install openpyxl`.
Запуск:
1. Дважды щёлкните `kiz_to_csv.bat` (Windows) или `kiz_to_csv.command` (Mac).
2. В первом окне выберите накладную, во втором — файл с КИЗ. Если перетащить файл с КИЗ на значок `kiz_to_csv.bat`, останется выбрать только накладную.
3. В конце появится окно с итогом — нажмите «ОК».
Из командной строки можно передать оба файла сразу, тогда окон выбора не будет: `python3 kiz_to_csv.py накладная.xlsx файл_КИЗ.xlsx`.
Если чёрное окно `kiz_to_csv.bat` сразу закрывается — прочитайте текст в нём: скрипт сам пишет, чего не хватает (Python или openpyxl) и что сделать.
Старый формат `.xls` Python-версия не читает: откройте файл в Excel и сохраните как `.xlsx`.
## Вариант 3. Портативный комплект для Windows (без установки и прав администратора)
Папка `KIZ_portable_Win7` содержит встроенный Python 3.8.10, openpyxl, скрипт и файл запуска `KIZ_CSV.bat`. Работает на Windows 7, Server 2008 R2, Windows 10 и 11. Ничего не устанавливается, реестр не меняется.
1. Скопируйте папку целиком в любое место на рабочем компьютере.
2. Дважды щёлкните `KIZ_CSV.bat`.
3. В чёрном окне появятся два запроса: сначала путь к накладной, затем к файлу с КИЗ. Проще всего перетащить файл мышью в окно и нажать Enter. Ещё проще: перетащите оба файла сразу на значок `KIZ_CSV.bat` — первый файл считается накладной, второй — файлом КИЗ.
4. Результат и сверка количества появятся в том же окне.
## Проверка результата
1. Если итоговое окно с восклицательным знаком — откройте отчёт `<имя>_report.txt` и разберитесь с замечаниями до загрузки CSV.
2. Откройте CSV в Блокноте (правая кнопка → «Открыть с помощью» → «Блокнот»), а не в Excel.
3. Проверьте:
- колонки разделены запятыми;
- русский текст читается нормально;
- ставка НДС со знаком %, например `10%`;
- цены с точкой, например `358.18`;
- последняя колонка — код КИЗ длиной 31 символ; если в коде есть запятая, он в двойных кавычках, например `"0104640720990098215KK,kKKkKkKKK"`.
4. Если всё так — загружайте CSV в «Честный знак».
## Порядок работы каждый день
1. Отсканируйте коды КИЗ в файл Excel.
2. Запустите скрипт и выберите оба файла.
3. Если все количества совпали — загрузите CSV в «Честный знак».