Погода: 6 °C
25.04−2...4пасмурно, небольшие дожди
26.04−1...7облачно, без осадков
  • Господа, подскажите, возможно ли к программе написанной на с# подсоединить базу 1с. Не делая выгрузок из нее, а на прямую...Если да, тогда скажите, как можно узнать о ее формате...и т.п.

  • Тысяча способов. Во первых все 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С и какой формат базы?

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

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

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

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

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

  • Для чего?

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

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

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

    Non solum oportet, sed etiam necessese est

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

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

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

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

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

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

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

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

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

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

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

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

Модератор: