Если вы работаете с маркированными товарами в 1С, вы наверняка сталкивались с типовыми «болячками»: при выгрузке из системы маркировки приходят отчёты об ошибках в формате CSV, откуда нужно вытащить коды, которые не прошли проверку; после этого надо удалить эти коды из основного ExcelR09;справочника, чтобы повторно не отправлять их. Плюс поставщики присылают файлы с кодами по 100–200 тысяч строк, а 1С не всегда может переварить такой объём — приходится резать на части. И ещё часто коды приходят в TXT с экранированными спецсимволами — \u001D, \", и если их не поправить, они не встанут в систему. Вручную делать это муторно, долго и чревато ошибками.
Этот скрипт — ваш личный помощник, который забирает всю эту рутину на себя.
Вкладка «Очистка кодов»:
-
Берёт CSV с ошибками (например, от Честного ЗНАКа), ищет в последнем столбце текст вида
Статус Кода Маркировки <код> не соответствует, извлекает все такие коды, нормализует их (убирает невидимые символы, лишние пробелы, заменяет умные кавычки на обычные) и сохраняет в файлизвлеченные_коды.csv. -
Затем читает ваш основной ExcelR09;файл (список всех кодов), нормализует каждый код и удаляет строки, которые совпали с извлечёнными кодами с ошибкой.
-
Результат сохраняется рядом с исходным ExcelR09;файлом с суффиксом
_очищенный.xlsx. В логе видно, сколько строк удалено и сколько осталось.
Вкладка «Разбивка файла»:
-
Принимает на вход Excel (
.xlsx/.xls) или CSV. -
Разбивает его на части заданного размера (по умолчанию 30 000 строк). Для CSV используется встроенный
Import-CsvиExport-Csv, для Excel — COMR09;объект Excel (поэтому требуется установленный Microsoft Excel). -
Части сохраняются в ту же папку с именами
исходное_имя_1.xlsx,_2и т.д. -
Удобно, когда 1С не может загрузить больше 30 000 строк за раз.
Вкладка «Редактор кодов»:
-
Открывает TXTR09;файл с кодами и последовательно делает три замены:
-
Текстовый
\u001Dзаменяется на реальный символ GS (код 0x1D) — разделитель, используемый в маркировке. -
Экранированные кавычки
\"заменяются на обычные". -
Обрезаются кавычки по краям каждой строки.
-
-
Сохраняет промежуточные файлы с суффиксами
_CHG29.txt,_CHGBackSlash.txt,_CHGBrackets.txtи финальный_CHGBrackets.csv, готовый для импорта.
Все операции логируются в окне с прокруткой, все ошибки перехватываются и показываются понятным сообщением. Интерфейс интуитивен — выбор файлов через кнопку «Обзор», подсказки по каждому действию. Скрипт сам проверит наличие модуля ImportExcel для первой вкладки и при необходимости попробует его установить. Работает из коробки на Windows с PowerShell 5+.
Скрипт идеально подходит для бухгалтеров, операторов маркировки и администраторов, которые регулярно подготавливают данные для загрузки в 1С. Он не требует навыков программирования, экономит десятки часов в месяц и минимизирует риск человеческой ошибки. Распространяется «как есть», но готов к ежедневному использованию.
Вступайте в нашу телеграмм-группу Инфостарт