Ранее мы писали о решении проблемы сканирования и выгрузки в «1С». Сейчас мы расскажем об особенностях печати этикеток, выгрузки в Частный Знак и вводе в оборот.
Начнем с того, что и честный Знак и 1С довольно плохо работают с большими объемами данных, нам нужно было распечатать и ввести в оборот около 2 млн. кодов.
Не будем вдаваться в технические особенности, а расскажем основные проблемы с которыми столкнулись при вводе в оборот большого количества кодов и как мы их решили, увы стандартные инструменты 1С не позволяют быстро и удобно, а по большому счету вообще не позволяет:) ввести в оборот большое количество кодов.
После получения кодов из Честного Знака, нам осталось только распечатать и ввести в оборот. Данную работу мы разбили на 3 этапа и надеемся, что нашли оптимальное решение.
1) Обработка кодов и подготовка к печати
Из всех полученных кодов формируем один сплошной массив, после этого по заданному заранее числу - мы рекомендуем 970 (так как в катушках для печати чуть меньше 1000 этикеток + около 10 штук бракованные , в термо-клее) разбиваем на файлы с уникальным порядковым номером.
2) Печать кодов
Обработка для печати работает с буфером обмена на прямую, из исходной папки выгружает все файлы CSV, формирует таблицу с 3 значениями.
1) Человекочитаемое значение кода маркировки
2) Код маркировки без "криптохвоста" (в случае если код маркировки испортился что бы можно было его визуально оценить, найти код и списать его)
3) Хэш закодированная бейс 64 строка с кодом маркировки, в таком виде передается и расшифровывается.
Использовать стандартную форму печати для этих целей крайне неудобно, долго, посу-ти невозможно. Пришлось создавать дополнительную форму для печати..
В которой мы создали макет со специфическими параметрами
– код маркировки без "криптохвоста" (так как с криптохвостом 1С не сможет распознать ), выводится в макете автоматически,
- логотип ЧЗ,
- название организации т.д.
Логотип "Честного знака",компании, название и т.д. можно задавать произвольно.
Так как через обработку нельзя печатать в командном режиме, то код для печати формирует печатная формы, удаляет строки из визуального табличного поля и переносит на закладка в текстовое поле – "лоб печать", что бы можно было визуально оценивать, сформировали макеты которые отправишь на печать, после того как каждый файл распечатается - он загружается в папку CSV файлы, в которых указаны все фактически напечатанные коды. Данные CSV не привязаны к изначальным файлам, что позволяет отследить, все ли коды были распечатаны.
Так же мы добавили контрл-брейк. Вручную можно прерывать операцию и очищать все логи, при этом контролируется совпадение исходных файлов.
Сервис предлагает нам загружать по 678 кодов, при том что каждая загрузка проходит долго более того, всегда пишет что успешно, но иногда нужно загружать несколько раз…Мы производим выгрузку через API ЧЗ.
1C начинает "тормозить" когда читаешь текстовый документ в виде текста и п<b>еребираешь строки по индексу</b>, поэтому пришлось “писать доработку” которая позволяет быстро перебирать индексы через функцию “СТР- разделить” , что позволяет сократить время на перебор в десятки раз.
Опять же пришлось писать обработку, <b>которая позволяет из исходных CSV сформировать 1 CSV массив</b>, произвести выборку первой группы до "груп сепоратор" и сгенерирует из них XML для отправки в ЧС.
Применив этот комплекс доработок, мы смогли избежать огромного количества ошибок, неудобств при выгрузки и печати больших объемов кодов.
Обработка протестирована на 1С: Розница 2.3.3.12, и уже работает у клиентов.