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>
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
# Обработка КИЗ: 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 в «Честный знак».
|
||||
Reference in New Issue
Block a user