Привествую коллеги!
Сразу предупреждаю, не занимаюсь изготовлением аналога 1С 7.7. Пытаюсь сделать удобную библиотеку для работы с базой 7-ки с помощью Python как под windows так и под
Linux, последнее приоритетней. Мне по работе потребовалось для того что бы увязывать 7-ку с 8-кой через
SOAP (чудесная либа
spyne), а так же использовать данные 7-ки на внутреннем сайте написанном на Flask (можно использовать и Django).
Пока что как демонстация возможностей
[IMG SRC=http://f5.s.qip.ru/16IxPIa4Z.png]Особенности:
Главная фича в том что работа идет с 1cv7.md файлом. Считываю информацию о метаданных из него. Для конечного потребления это будет выглядеть так
from v7 import Application, MS_Proxy
v7app = Application()
v7app.load_1cv7_md(default_config.md_path)
v7app.db = MS_Proxy('worktest','192.168.1.30', 'sa', 'xxxxxx')
После этого я могу преобразовать любой запрос и выполнить получая как результат курсор на выборку
v7app.prepare_query(sql) - возращает подготовленный скл выполнения в бд
v7app.query(sql) - преобразует и выполняет запрос, возращая курсор
v7app.metadata.get_by_path("Справочник.Номенклатура.КодПроизводителя") - возращает обьект поля, справочника или документа, смотря куда дойдет рекурсия.
v7app.metadata.getFieldByNameSql('SP101') - находит объект метаданных для скл представления (использую для получения имен полей после запроса)
Пока что запросы достаточно простые, но уже поддерживаются справочники и документы, а так же распознаются поля как шапки так и табличной части через приставку # (так же через нее выбирается ТабличнаяЧасть)
Примеры
"select avto.Наименование, avto.Код from $Справочник.Автомобили avto"
"select d.#Товар * from $Документ.#ИзменениеДопЦен as d "
В планах еще добавить регистры с метаподстановками для запроса остатков.
Ну а в мечтах конечно еще парсить формы и сразу генерировать веб интерфейс и будет управляемое приложение для 7-ки
.
Но никаких конфигураторов я делать конечно же не собираюсь ибо велосипед.
Исходники выложу позже на какой нибудь github.. сейчас еще много надо рефракторинга провести.
Если у кого есть какие велосипеды в этом направлении, поделитель, прикручу ваши колеса к итоговой версии