Возможно, кому-то это будет интересно...
В небольшом интернет-магазине ведется учет в программе "LS Торговля".
Бухгалтерские услуги на аутсорсе и для бухгалтеров нужна выгрузка первичных документов (приход-расход).
Начальные данные.
Торговля 2.0 установлена на ОС Линукс (дистрибутив основанный на Slackware). Установка проблем не вызвала:
1. Устанавливается wine;
2. Устанавливаем торговлю.
И всё, можно работать.
1С Бухгалтерия 2.0 находится, соответственно в бухгалтерской конторе. Т.к. учет простой УСН, только розничная торговля, то для отражения расхода будут формироваться только документы "Отчет о розничных продажах". Для прихода - "Поступление товаров и услуг".
Что было сделано.
1. Устанавливаем СУБД Firebird для вашей ОС с сайта http://www.firebirdsql.su
2. Пишем скрипт с запросом нужных нам данных:
Код: Выделить всё
connect localhost://home/hamlet/.wine/drive_c/Lugasoft/Toros/data/toros.fdb user SYSDBA password masterkey;
set NAMES WIN1251;
SELECT
OGLAV.OPER AS "Operation",
OGLAV.NMR AS "Number",
OGLAV.DATA AS "Data",
OGLAV.TIMN AS "CreationTime",
OGLAV.SUM_R AS "DocSumm",
DOKUM.PRX AS "Quantity",
DOKUM.CEN_R AS "DocPrice",
POSTU.CEN_S AS "PostuPrice",
S_TOVAR.NAMEP AS "Tovar",
S_OBEKT.NAMEP AS "Customer",
"Otpravitel".NAMEP AS "Otpravitel",
S_OBEKT.ADRES AS "Adres",
S_GRUP0.NAMEV AS "TovarParent0",
S_GRUP1.NAMEV AS "TovarParent1"
FROM
OGLAV
LEFT JOIN DOKUM
LEFT JOIN POSTU
LEFT JOIN S_TOVAR
LEFT JOIN S_GRUP0
ON SUBSTRING(S_TOVAR.TOVAR FROM 1 FOR 1) = S_GRUP0.GRUP0
LEFT JOIN S_GRUP1
ON SUBSTRING(S_TOVAR.TOVAR FROM 1 FOR 3) = S_GRUP1.GRUP1
ON S_TOVAR.TOVAR = POSTU.TOVAR
ON POSTU.NTV_S = DOKUM.NTV_S AND POSTU.NMR_S = DOKUM.NMR_S
ON OGLAV.NMR = DOKUM.NMR
LEFT JOIN S_OBEKT
ON OGLAV.OBEKT_P = S_OBEKT.OBEKT
LEFT JOIN S_OBEKT AS "Otpravitel"
ON OGLAV.OBEKT_R = "Otpravitel".OBEKT
WHERE
OGLAV.DATA BETWEEN '01.01.2013' AND '31.12.2013'
;
quit;
3. Пишем скрипт запуска утилиты isql, идущей в комплекте с СУБД, для линукса он выглядит примерно так:
Код: Выделить всё
# Запуск программы
/opt/firebird/bin/isql -q -i ./script.sql -o ./results.txt
4. Уф, самое лёгкое закончилось. Теперь нужно в script.sql выставить нужный период выгрузки и запускаем "script.sh" (в виндовс .cmd или .bat) и получаем результат выгрузки в текстовом файле "results.txt"
5. Теперь самое сложное: написать для бухгалтерии обработку, которая сможет интерпретировать данные из полученного файла в набор объектов 1С. Но, к счастью, обработка такая уже есть и если мне позволит администратор, я хотел бы прикрепить её к сообщению.
Итог
Вот таким нехитрым способом налажен обмен первичными документами между LS Тоговлей и 1C Бухгалтерией. И мы избавлены от необходимости покупать 1С "Управление торговлей" (или "Розницу") и бухгалтера избавлены от ручного набивания документов и справочников.