На информационном ресурсе применяются cookie-файлы. Оставаясь на сайте, вы подтверждаете свое согласие на их использование.
1c БАЗА
4778
15
Господа, подскажите, возможно ли к программе написанной на с# подсоединить базу 1с. Не делая выгрузок из нее, а на прямую...Если да, тогда скажите, как можно узнать о ее формате...и т.п.
Дима553
experienced
Тысяча способов. Во первых все 1С поддерживают внешнее com соединение. Однако этот вариант я думаю уже вы наверняка рассмотрели, слишком просто, все минусы и плюсы понятны - раз создан топик то видимо этот вариант не устроил.
Рассмортим несколько других способов.
1С 7.7. DBF самый тяжелый случай. Придется обращаться к дбф файлам. Структура базы хранится в файле 1Cv7.DD который придется пропарсить. ДБФ файлы при чтении надо не блокировать, чтобы не прерывать работу 1С.
1С 7.7 SQL - уже лучше. Структура базы хранится в файле 1Cv7.DDS, парсим и обращаемся к базе через ADO. Все просто и удобно. Необходимо следить за блокировками, если нужно только чтение базы то лучше обращаться к таблицам со словом nolock(select a.* from table a(nolock))
1C 8.0 SQL- есть много сложностей с получением структуры базы, однако есть способы ее получить, основаны на трассировке sql запросов от 1С - они есть в инете. Можно также создать Views удобно если структура базы предполагается неизменной или редко изменяемой.
1С 8.1. Для получения структуры базы можно вызвать ПолучитьСтруктуруХраненияДанных - функция 1С, после чего обращаться к базе через ADO.
1С 8.х файловая - не вижу способов напрямую обращаться к базе, придется воспользоваться внешним соединением.
Кроме того 1С 8.1 поддерживает web сервисы которые можно приспособить для получение данных.
Ну и еще тысяча и один способ....их наверно напишут другие ниже
Рассмортим несколько других способов.
1С 7.7. DBF самый тяжелый случай. Придется обращаться к дбф файлам. Структура базы хранится в файле 1Cv7.DD который придется пропарсить. ДБФ файлы при чтении надо не блокировать, чтобы не прерывать работу 1С.
1С 7.7 SQL - уже лучше. Структура базы хранится в файле 1Cv7.DDS, парсим и обращаемся к базе через ADO. Все просто и удобно. Необходимо следить за блокировками, если нужно только чтение базы то лучше обращаться к таблицам со словом nolock(select a.* from table a(nolock))
1C 8.0 SQL- есть много сложностей с получением структуры базы, однако есть способы ее получить, основаны на трассировке sql запросов от 1С - они есть в инете. Можно также создать Views удобно если структура базы предполагается неизменной или редко изменяемой.
1С 8.1. Для получения структуры базы можно вызвать ПолучитьСтруктуруХраненияДанных - функция 1С, после чего обращаться к базе через ADO.
1С 8.х файловая - не вижу способов напрямую обращаться к базе, придется воспользоваться внешним соединением.
Кроме того 1С 8.1 поддерживает web сервисы которые можно приспособить для получение данных.
Ну и еще тысяча и один способ....их наверно напишут другие ниже
craxx
рыжий котэ
да кстати напишите какая 1С и какой формат базы?
Ну и еще тысяча и один способ....их наверно напишут другие нижеНе разрушать моск через попу и сделать через сом-соединение.

Если 7-ка и в базе 1с кто-то в этот момент работать должен то не подойдет такой вариант
Сейчас читают
Помеха справа на парковках
13148
181
Аренда квартир (часть 24)
169605
886
Укладка кафеля, керамогранита. Мастера. Вопросы. Расценки. (часть 2)
288271
1000
Дело в том, что конкретная версия не известна и требуется универсальность решения! Возможно ли подсоединяться к ней на ходу? В тот момент когда пользователи работают с базой? Как на ходу распознать ее формат...Кто подскажет?
Mad_Dollar
guru
в таком случае остается только OLE/COM =) Или мороковать модули под все распознаваемые приложением версии ОдинЭс, работающие с данными напрямую.
Ясно, всем спасибо...
Теперь еще вопрос - сколько это будет стоить сделать на с#? И кто возьмется? polius2007@yandex.ru....пишите...
Теперь еще вопрос - сколько это будет стоить сделать на с#? И кто возьмется? polius2007@yandex.ru....пишите...
Ну если на секунду забыть про скромность, то я и в 1С и в C# ничего так. А с какой целью интересуетесь? (в личку)
Если 7-ка и в базе 1с кто-то в этот момент работать должен то не подойдет такой вариантДяденька, не поверите - есть два режима подключения - монопольный и не очень.
А вот как раз прямой доступ к таблицам базы данных чреват полной блокировкой базы.

Правильно. Поэтому умные товарищи изобрели вот это:Если 7-ка и в базе 1с кто-то в этот момент работать должен то не подойдет такой вариантДяденька, не поверите - есть два режима подключения - монопольный и не очень.
А вот как раз прямой доступ к таблицам базы данных чреват полной блокировкой базы.
![]()
http://uzhast.fatal.ru/vfpoledb/
Ananas
veteran
Дело в том, что конкретная версия не известна и требуется универсальность решения! Возможно ли подсоединяться к ней на ходу? В тот момент когда пользователи работают с базой? Как на ходу распознать ее формат...Кто подскажет?Топикстартер или пошутил, или ...
Объясните мне - что может понадобиться от неизвестной базы (и конфигурации) 1С (когда конкретная версия и формат неизвестны) и в коде C#?
А, подключаться надо будет, как к файл-серверной, так и клиент-серверной 1С и заранее неизвестно к какой СУБД (MS Sql Server, Postgresql, DB2)...
И ещё нужна будет какая-нить artificial intelligence, которая сама будет обучать топикстартера, после подсоединения, азам работы со всеми (не)возможными заведомо неизвестными решениями в 1С
обычно делают выгрузку в хмл... хотябы для того что-бы посмотреть "что за база"... ну а преобразовать хмл-выгрузку в другую SQL базу думаю не составит большого труда...
ТОП 5
1
3
4