Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > импорт данных в программу на питоне из 1С


Автор: pythonwin 20.12.2006, 10:38
всем привет!

как лучше сделать экспорт импорт данных в программу на питоне из  1С ?
Если 1C-ка "сидит" на MSSQL - это сильно упрощает задачу или нет?
python 2.4.2
1C 8.0

PS сам не 1Сник

Автор: albertn 21.12.2006, 09:29
Хоть я тоже не 1Сник, но если у тебя все данные лежат в MSSQL, то вся проблема заключается в коннекте с MSSQL. Если же нет, то все данные лежат в базах dbf, и просто придется работать напрямую с ними.

Автор: FunnyFalcon 22.12.2006, 10:24
http://sourceforge.net/projects/pywin32/
А дальше ADO.

Я так думаю.

Или/и через bulk copy.

Главное знать, чему какая таблица соответствует.

В догонку: http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html

Автор: pythonwin 2.2.2007, 07:36
проблема ещё сложнее - дергать данные из 1С 8.0+ через MSSQL не получиться, из-за того, что:
1) названия таблиц в MSSQL ну очень матерные - типа document8974 и т.п.
2) при создании новой базы 1С с загрузкой данных из выгрузки названия таблиц генерируются автоматически и произвольно

есть ли какая-нибудь либа, чтобы добраться до 1С через COM?

Автор: diam 2.2.2007, 10:01
Цитата(pythonwin @  2.2.2007,  10:36 Найти цитируемый пост)
проблема ещё сложнее - дергать данные из 1С 8.0+ через MSSQL не получиться, из-за того, что:
1) названия таблиц в MSSQL ну очень матерные - типа document8974 и т.п.
2) при создании новой базы 1С с загрузкой данных из выгрузки названия таблиц генерируются автоматически и произвольно

есть ли какая-нибудь либа, чтобы добраться до 1С через COM? 

Тебе придётся писать самому, скорее всего.
Когда нам понадобился экспорт/импорт "1C - БД биллинговой системы", мы приглашали программистов 1С, и обменивались файликами dbf. К тому же, экспорт/импорт данных сильно будет зависеть как от структуры БД 1С, так и от структуры твоей БД, ты не находишь?

Автор: megaflop 7.2.2007, 18:28
Получить данные из 1С можно двумя основными способами:

1.) Подключившись через COM, как это описано в 1С-ной документации (нужен pywin32)
http://sourceforge.net/projects/pywin32

как это делается можно здесь почитать, общё...
http://www.boddie.org.uk/python/COM.html

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

2) Брать данные прямо из MSSQL-ной базы.
Для этого нужен pymssql
http://pymssql.sourceforge.net/

И ещё ваш программер-1С-ник долженн оттрейсить нужный вам запрос из своего 1С-ного вида в SQL.
ПММ самый лучший и быстрый способ (мой случай).

Удачи.

Автор: pythonwin 8.2.2007, 08:25
Цитата(megaflop @  7.2.2007,  21:28 Найти цитируемый пост)
1.) Подключившись через COM, как это описано в 1С-ной документации (нужен pywin32)

сейчас разбираю именно этот способ? но меня смущает,
Цитата(megaflop @  7.2.2007,  21:28 Найти цитируемый пост)

Но для этого на вашем компе должна быть 1С-ка установлена, что не всегда удобно.
Например мне надо получать инфу из 1С для сайта, причём делает это питоновый скрипт на сервере в локалке по шедулеру. Ставить туда для этого 1С-ку и кажндный раз её грузить - не айс.

хотя если обращаться к 1С один раз в час (реже врятли), то на хорошей 4-ке терпимо (~18Мб ОП + 2-3% процессора)
Цитата(megaflop @  7.2.2007,  21:28 Найти цитируемый пост)

2) Брать данные прямо из MSSQL-ной базы.
Для этого нужен pymssql
http://pymssql.sourceforge.net/

напрямую к 1С-ной базе через MSSQL не подцепишься? т,к. 
Цитата(pythonwin @  2.2.2007,  10:36 Найти цитируемый пост)
2) при создании новой базы 1С с загрузкой данных из выгрузки названия таблиц генерируются автоматически и произвольно


хотя если в 1С-ке дергать данные и записывать в другую БД в MSSQL, то сильно облегчало бы мне задачу:

Цитата(megaflop @  7.2.2007,  21:28 Найти цитируемый пост)

И ещё ваш программер-1С-ник долженн оттрейсить нужный вам запрос из своего 1С-ного вида в SQL.
ПММ самый лучший и быстрый способ (мой случай).


хотя у нас нет 1Сников и я к сожелению не знаю втроенный язык 1С...

если у кого есть, пожалуйста, дайти ссылки на проекты интеграции питона и 1С, а также на эл, книги по встроенному языку 1С

Автор: diam 8.2.2007, 09:33
Цитата(pythonwin @  8.2.2007,  11:25 Найти цитируемый пост)
если у кого есть, пожалуйста, дайти ссылки на проекты интеграции питона и 1С, а также на эл, книги по встроенному языку 1С

Программисты 1С подсказали: http://kb.mista.ru/. Надеюсь, поможет.

Автор: pythonwin 8.2.2007, 09:46
Цитата(diam @  8.2.2007,  12:33 Найти цитируемый пост)
Программисты 1С подсказали: http://kb.mista.ru/. Надеюсь, поможет. 

спасибо smile

Автор: AlexP74 18.7.2010, 22:40
А кто реально пробовал получать данные из 1с77 ?
У меня ошибка pywintypes.com_error: (-2147417851, 'Ошибка на сервере.', None, None) при выполнении: sprSklad.FindByCode(23,1)
Тот же код на Delphi работает без ошибок.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)