Мобильная версия форумов
Открыть
 −13°C
завтра: −7°C
Погода в Перми
−13°C
днем−11°C
вечером−8°C
завтра−7°C
Подробно
 65,51
−0.0252
Курс USD ЦБ РФна 23 февраля
65,5149
−0.0252
 74,33
+0.0369
Курс EUR ЦБ РФна 23 февраля
74,3332
+0.0369
  • polius2007

    Анонимный пользователь

    Господа, подскажите, возможно ли к программе написанной на с# подсоединить базу 1с. Не делая выгрузок из нее, а на прямую...Если да, тогда скажите, как можно узнать о ее формате...и т.п.

  • experienced

    Сообщений: 963

    Тысяча способов. Во первых все 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 сервисы которые можно приспособить для получение данных.

    Ну и еще тысяча и один способ....их наверно напишут другие ниже

  • рыжий котэ

    Сообщений: 12083

    да кстати напишите какая 1С и какой формат базы?

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • activist

    Сообщений: 162

    В ответ на: Ну и еще тысяча и один способ....их наверно напишут другие ниже
    Не разрушать моск через попу и сделать через сом-соединение. :yes.gif:

  • рыжий котэ

    Сообщений: 12083

    Если 7-ка и в базе 1с кто-то в этот момент работать должен то не подойдет такой вариант

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • activist

    Сообщений: 289

    Почему вы так решили

  • member

    Сообщений: 97

    Для чего?

    Русские называют дорогой то место,
    где хотят проехать...

  • polius2007

    Анонимный пользователь

    Дело в том, что конкретная версия не известна и требуется универсальность решения! Возможно ли подсоединяться к ней на ходу? В тот момент когда пользователи работают с базой? Как на ходу распознать ее формат...Кто подскажет?

  • guru

    Сообщений: 4281

    в таком случае остается только OLE/COM =) Или мороковать модули под все распознаваемые приложением версии ОдинЭс, работающие с данными напрямую.

    Non solum oportet, sed etiam necessese est

  • polius2007

    Анонимный пользователь

    Ясно, всем спасибо...
    Теперь еще вопрос - сколько это будет стоить сделать на с#? И кто возьмется? polius2007@yandex.ru....пишите...

  • activist

    Сообщений: 277

    вы Специалист 1С?

  • experienced

    Сообщений: 963

    Ну если на секунду забыть про скромность, то я и в 1С и в C# ничего так. А с какой целью интересуетесь? (в личку)

  • activist

    Сообщений: 162

    В ответ на: Если 7-ка и в базе 1с кто-то в этот момент работать должен то не подойдет такой вариант
    Дяденька, не поверите - есть два режима подключения - монопольный и не очень.
    А вот как раз прямой доступ к таблицам базы данных чреват полной блокировкой базы.
    :ухмылка:

  • Аналитик_БД

    Анонимный пользователь

    В ответ на:
    В ответ на: Если 7-ка и в базе 1с кто-то в этот момент работать должен то не подойдет такой вариант
    Дяденька, не поверите - есть два режима подключения - монопольный и не очень.
    А вот как раз прямой доступ к таблицам базы данных чреват полной блокировкой базы.
    :ухмылка:
    Правильно. Поэтому умные товарищи изобрели вот это:
    http://uzhast.fatal.ru/vfpoledb/

  • veteran

    Сообщений: 1978

    В ответ на: Дело в том, что конкретная версия не известна и требуется универсальность решения! Возможно ли подсоединяться к ней на ходу? В тот момент когда пользователи работают с базой? Как на ходу распознать ее формат...Кто подскажет?
    Топикстартер или пошутил, или ...

    Объясните мне - что может понадобиться от неизвестной базы (и конфигурации) 1С (когда конкретная версия и формат неизвестны) и в коде C#?

    А, подключаться надо будет, как к файл-серверной, так и клиент-серверной 1С и заранее неизвестно к какой СУБД (MS Sql Server, Postgresql, DB2)...

    И ещё нужна будет какая-нить artificial intelligence, которая сама будет обучать топикстартера, после подсоединения, азам работы со всеми (не)возможными заведомо неизвестными решениями в 1С

  • activist

    Сообщений: 277

    обычно делают выгрузку в хмл... хотябы для того что-бы посмотреть "что за база"... ну а преобразовать хмл-выгрузку в другую SQL базу думаю не составит большого труда...

Записей на странице:

Перейти в форум

Модератор: