v7py

1C:Enterprice v7.7 MD reader and SQL parser


Keywords
1C, 1C:Enterprise, 7, MD
License
GPL-2.0+
Install
pip install v7py==0.7

Documentation

v7py

ΠœΠΎΠ΄ΡƒΠ»ΠΈ python для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с 1Π‘ 7.7 Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (windows/linux)

Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 1Cv7.md ΠΈ 1Cv7.dba (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ) Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Ρ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π±Π΅Π· OLE, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π° linux

Установка

pip install v7py

ВозмоТности:

  • ОбновлСниС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· сСтСвой ΠΏΠ°ΠΏΠΊΠΈ
  • Π Π°Π·Π±ΠΎΡ€ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² структуру
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ прямыС запросы с мСтаподстановками
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ 1Cv7.DBA
  • ГСнСрация ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ SqlAlchemy (Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅)
  • Доступны справочники, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², рСгистры, ΠΆΡƒΡ€Π½Π°Π», пСрСчислСния

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΈ дорабатываСтся ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

$ - ΠžΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ для подстановки # - ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части case t.#Бтатус $ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.БтатусыЗаказа.case Бтатус позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ строковоС прСдставлСниС пСрСчислСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

from v7 import db_work

q = db_work.db.query(u"""
select top 10
d.НаБайт НаБайт, ΠΆ.НомСрДок НомСрДок, ΠΆ.Π”Π°Ρ‚Π°Π”ΠΎΠΊ Π”Π°Ρ‚Π°Π”ΠΎΠΊ, case t.#Бтатус $ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅.БтатусыЗаказа.case Бтатус, h.НаимСнованиС Π₯арактСристика, t.#ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠ’Π‘Π°Π·Π΅ Π’Π‘Π°Π·Π΅, t.#ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΠ°Π‘Π°ΠΉΡ‚Π΅ НаБайтС, t.#ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΠ°ΡΠ”Π°Ρ‚Π° ОТидаСм

from $Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ d join $Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.#Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ t on d.Код=t.iddoc join $Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.Π₯арактСристикиНомСнклатуры h on t.#Π₯арактСристикаВовара = h.id join $Π–ΡƒΡ€Π½Π°Π» ΠΆ on ΠΆ.IDDOC = d.Код where ΠΆ.Π”Π°Ρ‚Π°Π”ΠΎΠΊ between %(start)s and %(end)s and ΠΆ.Π’ΠΈΠ΄Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° = d.Π’ΠΈΠ΄Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° """)

q.set_param('start', start_date) q.set_param('end', end_date, True)

print unicode(q) # Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ SQL запроса items = q() # Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса for i in items:

print i[1]

Π•Π²Π³Π΅Π½ΠΈΠΉ Бтоянов quick.es@gmail.com skype:quick.2008