Code Monkey home page Code Monkey logo

v7alchemy's Introduction

v7alchemy

Жалкая, но рабочая пародия на sqlalchemy для dbf(1C)

После бесчисленных попыток объяснить штатному программисту 1С формат нужных мне выгрузок, и боли при виде конфигуратора 1с7.7, было решено - брать данные напрямую, так и родилось сиё творенье.

Конфигурация 1С7.7 храниться в файле 1Cv7.DD, там вы можете найти таблицы и имена нужных полей.
Подробнее на http://www.script-coding.com/v77tables.html

Пока сделано, только то, что мне было необходимо, но при этом я выгружаю любые данные.

Таблицы

TableSC = Справочник
TableRG = Регистр
TableRA = Движение регистра

Пример

SC135 Справочник места хранения

class Stocks(TableSC):
    index = 135

SC156 Справочник номенклатура

class Items(TableSC):
    index = 156

RG55503 Регистр остатки

class Lefts(TableRG):
    index = 55503

    stock = Field("SP55613", join=Stocks.id)
    item = Field("SP55504", join=Items.id)
    bottling = Field("SP55505", join=Bottling.id)
    count = Field("SP55506")

RA55503 Регистр остатки (движения)

class LeftsMotion(TableRA):
    index = 55503

    stock = Field("SP55613", join=Stocks.id)
    item = Field("SP55504", join=Items.id)
    bottling = Field("SP55505", join=Bottling.id)
    count = Field("SP55506")

А теперь самое интересное

# Все контрагенты(код, наименование, наименование менеджера)
query = engine.select(Clients,
                      Clients.code.alias("code"),
                      Clients.description.alias("title"),
                      Manager.description.alias("manager"))
query.extend(Clients.manager)
query.all()  # -> [{"code": "0001", "title": "ООО Вектор", manager: "Иванов"}, ...]

# Остатки товара на Основном складе из регистра
query = engine.select(Lefts,
                      Items.code.alias("code"),
                      Lefts.count.alias("count"))
query.extend(Lefts.stock).extend(Lefts.item)
query.where(Lefts.period == datetime.date.today()).where(Stocks.description == "Основной")
query.all()  # -> [{"code": "К001", "count": 90}, ...]

v7alchemy's People

Contributors

iadept avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

pruidzeko

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.