Выгрузка товаров из FrontolXPOS в 1С

Не так давно очередная организация принесла в руках сервер с зашифрованными данными... Да, там был внешний жесткий диск, куда делались копии, но он тоже был зашифрован...

Однако у этой организации есть три рабочих места кассира - с программой FrontolXPOS... Значит - можно от туда вынуть что можно - товар, артикул, цены, остатки, штрих коды.

База данных - SQLite3, ее можно открыть с помощью программы DB Browser for SQLite Portable, она позволяет увидеть все данные в БД  и выгрузить в CSV-файл, сразу скажу что где - таблица WARE - содержит список номенклатуры, артикул, полное название, вид и тд, таблица ITEM - содержит цену и остаток товара. Ну и таблица BARCODE - содержит список штрих кодов. Все эти таблицы связаны полем ID и соответственно - WAREID.

Из этих таблиц можно все выгрузить в эксель - однако в кодировке UTF-8, придется открыть через Notepad++ и отконвертировать в CP-1251 чтобы эксель все это понял. И в нем делать сопоставление данных по ИД и загружать в 1С. Однако Эксель поможет только если данных не сильно много. В данном конкретном случае было почти 15 тысяч наименований. А это означает - 15 тысяч штрих кодов, 15 тысяч запись с ценами и остатками и все это надо объединить так чтобы обработка 1С могла это загрузить.... Как опыт показал - перебирать 15 тысяч записей 15 тысяч раз в экселе - это очень долго даже на мощном железе... да, я писал макросы которые построчно просматривают таблицы и сопоставляют данные...

Тут я даже не стал пытаться некрокодить на VBA....

На скорую руку написал скрипт на родном языке PHP - который создавал в этой базе еще одну таблицу и через SQL запросы собирается все в эту таблицу за 30 секунд, затем просто выгружается в CSV, конвертируется в CP-1251 и загружается в 1С, все счастливы...

Но... Каждый раз вспоминать где лежит скрипт это тоже муторно, так же муторно каждый раз его писать снова (уже писал два раза, надоело).... Хотел сделать онлайн сервис на этом сайте, однако на голом PHP это заняло почему то много времени, пришлось перенастраивать веб-сервер чтобы понимал большие файлы и мог их дольше обрабатывать данные.... но все равно сервер выпадал в ошибку по тайм-ауту...

Решил попрактиковаться в другом языке - написал скрипт на Python и без вывода сообщений в консоль - оно достаточно быстро обрабатывало данные. Собственно - именно на нем и остановился - сайтом на PHP просто загружаю ZIP-архив с базой на сервер, вызываю Python-скрипт из PHP - оно обрабатывает данные, а PHP - выдает пользователю результат!

Я вам открыл почти все карты о том как спасти базу данных 1с из Фронтол XPOS. Вы можете сами все это организовать либо воспользоваться моим сервисом по выгрузке номенклатуры, штрих кодов, цен, остатков и артикулов - сэкономив массу времени на написание скриптов и обработку данных ну и на услуги программистов.

Комментарии