- 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>
Обработка КИЗ: 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 — товарная накладная (ТОРГ-12) от поставщика;
- файл 2 — ваш файл с отсканированными кодами КИЗ.
- Из каждого кода КИЗ берёт код товара GTIN — 14 цифр после «01» в начале кода.
- Находит этот товар в накладной и записывает напротив кода КИЗ: B — название, C — цена, D — 1, E — 796 (код единицы «штука»), F — ставка НДС со знаком %, G — «КИЗ».
- Обрезает каждый код КИЗ до первых 31 символа. Это код без криптохвоста: «01» + GTIN (14 цифр) + «21» + серийный номер (13 символов). Если код короче 31 символа, он остаётся как есть, а в отчёте появляется замечание.
- Сверяет количество: сколько кодов КИЗ каждого товара отсканировано и сколько указано в накладной.
- Сохраняет рядом с файлом КИЗ два файла:
<имя>.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.
- Скопируйте
xlsx_to_csv_utf8.vbsв любую папку на рабочем компьютере. - Сохраните и закройте оба файла Excel.
- Дважды щёлкните
xlsx_to_csv_utf8.vbs. - В первом окне выберите файл с КИЗ, во втором — накладную. Проще: перетащите файл с КИЗ мышью на значок скрипта — тогда останется выбрать только накладную.
- Excel ненадолго откроется в фоне — это нормально.
- В конце появится окно с итогом: сколько кодов обработано и совпали ли количества с накладной.
Если антивирус блокирует запуск. Некоторые антивирусы блокируют любые файлы .vbs — это ложное срабатывание. Разрешите запуск в окне антивируса. Скрипт ничего не устанавливает и не удаляет: он только читает два файла через Excel и записывает рядом CSV и отчёт.
Вариант 2. Python (Windows, Mac, Linux)
Нужно: Python 3.8 или новее и пакет openpyxl. На Windows 7 работает только Python 3.8.
Установка (один раз):
- Скачайте Python с https://www.python.org/downloads/ (для Windows 7 — версию 3.8.10).
- Запустите установщик и в первом же окне внизу поставьте галочку «Add python.exe to PATH». Без неё скрипт не найдёт Python.
- Нажмите Win+R, введите
cmd, нажмите Enter и выполните командуpip install openpyxl.
Запуск:
- Дважды щёлкните
kiz_to_csv.bat(Windows) илиkiz_to_csv.command(Mac). - В первом окне выберите накладную, во втором — файл с КИЗ. Если перетащить файл с КИЗ на значок
kiz_to_csv.bat, останется выбрать только накладную. - В конце появится окно с итогом — нажмите «ОК».
Из командной строки можно передать оба файла сразу, тогда окон выбора не будет: 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. Ничего не устанавливается, реестр не меняется.
- Скопируйте папку целиком в любое место на рабочем компьютере.
- Дважды щёлкните
KIZ_CSV.bat. - В чёрном окне появятся два запроса: сначала путь к накладной, затем к файлу с КИЗ. Проще всего перетащить файл мышью в окно и нажать Enter. Ещё проще: перетащите оба файла сразу на значок
KIZ_CSV.bat— первый файл считается накладной, второй — файлом КИЗ. - Результат и сверка количества появятся в том же окне.
Проверка результата
- Если итоговое окно с восклицательным знаком — откройте отчёт
<имя>_report.txtи разберитесь с замечаниями до загрузки CSV. - Откройте CSV в Блокноте (правая кнопка → «Открыть с помощью» → «Блокнот»), а не в Excel.
- Проверьте:
- колонки разделены запятыми;
- русский текст читается нормально;
- ставка НДС со знаком %, например
10%; - цены с точкой, например
358.18; - последняя колонка — код КИЗ длиной 31 символ; если в коде есть запятая, он в двойных кавычках, например
"0104640720990098215KK,kKKkKkKKK".
- Если всё так — загружайте CSV в «Честный знак».
Порядок работы каждый день
- Отсканируйте коды КИЗ в файл Excel.
- Запустите скрипт и выберите оба файла.
- Если все количества совпали — загрузите CSV в «Честный знак».