Skip to content

Выполнение запросов к 1С 7.7 (python + linux)

Notifications You must be signed in to change notification settings

WorldException/v7client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Библиотека доступа к базам 1C7.7

Читает 1Cv7.md файл и на основании его структуры парсит sql запросы, заменяя названия метаданных на sql подходящий для выполнения

Установка

pip install v7client

Использование

v7client Парсер запросов.

from v7client import config, base
work_config = Config(
    name='work',
    path_type='smb',
    smb_server=DefaultConfig.SMB_SERVER,
    smb_share=DefaultConfig.SMB_SHARE,
    smb_user=DefaultConfig.SMB_USER,
    smb_pwd=DefaultConfig.SMB_PWD,
    # sql_host=DefaultConfig.SQL_1C_HOST,
    # sql_db=DefaultConfig.SQL_1C_DB,
    # sql_user=DefaultConfig.SQL_1C_USER,
    # sql_pwd=DefaultConfig.SQL_1C_PWD,
    # update_interval=timedelta(days=1),
    path_to_base="/work"
)

db = Base(work_config, caching=True, use_dba=True)

# выборка текущих статусов для обновления в емекс
query_statuses = u"""
select
    d.НаСайт НаСайт,
    ж.НомерДок НомерДок,
    ж.ДатаДок ДатаДок,
    case t.#Статус $Перечисление.СтатусыЗаказа.case Статус,
    h.Наименование Характеристика,
    t.#КоличествоВБазе ВБазе,
    t.#КоличествоНаСайте НаСайте,
    t.#ОжидаемаяДата Ожидаем
from $Документ.Уведомление d (nolock)
    join $Документ.#Уведомление t (nolock) on d.Код=t.iddoc
    join $Справочник.ХарактеристикиНоменклатуры h (nolock) on t.#ХарактеристикаТовара = h.id
    join $Журнал ж (nolock) on ж.IDDOC = d.Код
where ж.ДатаДок between %(start)s and %(end)s
    and ж.ВидДокумента = d.ВидДокумента
    and h.Наименование like 'L%%'
"""

q = db.query(queryr_statuses)
q.set_param('start', start_date)
q.set_param('end_', end_date)
print(q)
for item in q():
    print(item)

v7types Работа с сериализацией во внутренние типы 1С СписокЗначений и ТаблицаЗначений.

import v7types

table_value = v7types.loads(ТЗ_из_строки)

Настройка

Через переменные окружения, либо создание с параметрами config.Config

Пример переменных окружения

V7_SQL_HOST=192.168.xx.xx
V7_SQL_DB=db
V7_SQL_USER=user
V7_SQL_PWD=pwd

V7_PATH_TO_BASE=/path_to_1cmd

V7_SMB_SERVER=192.168.xx.xx
V7_SMB_SHARE=remote_path
V7_SMB_USER=remote_user
V7_SMB_PWD=password

Команды

python -m v7client --help

Usage: python -m v7client [OPTIONS] COMMAND [ARGS]...

Options:
  -p, --path TEXT  Путь к файлам 1Cv7.MD, 1Cv7.DBA
  --help           Show this message and exit.

Commands:
  download  Скачать метаданные во временное хранилище
  info      Получить информацию о базе
  parse     Парсить запрос в готовый sql
  ping      проверить соединение с базой данных
  query     Выполнить запрос и вернуть данные в виде csv

About

Выполнение запросов к 1С 7.7 (python + linux)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages