8.х ОБМЕН Обмен данными со стороними базами

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Bobre, 19 сен 2011.

  1. TopicStarter Overlay
    Bobre
    Offline

    Bobre Опытный в 1С

    Регистрация:
    15 апр 2011
    Сообщения:
    144
    Симпатии:
    0
    Баллы:
    26
    Добрый день.
    У нас возникла необходимость обмена данными с базой 1С из другого приложения.
    Есть база sql с которой хотелось синхронизироваться с 1с-кой (загрузка-выгрузка данных), причем хочется чтоб было все на горячую, без внешних файлов. Пока 2 варианта развития событий - 1С API или же подключаться к базе данных 1С и там уже делать изменения.
    Как вы думаете какой вариант будет наиболее целесообразен и как это реализовать? Спасибо.
  2. рамиль
    Offline

    рамиль Опытный в 1С

    Регистрация:
    12 мар 2006
    Сообщения:
    595
    Симпатии:
    0
    Баллы:
    26
    Подрубайтесь из 1С к SQL и пишите напрямую в базу данных.
  3. StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Ну из 1С в SQL логичнее всего напрямую писать, а вот из sql в 1с проще написать обработку, которая будет из sql подтягивать изменившиеся данные. А какие данные хоть надо передавать?
  4. TopicStarter Overlay
    Bobre
    Offline

    Bobre Опытный в 1С

    Регистрация:
    15 апр 2011
    Сообщения:
    144
    Симпатии:
    0
    Баллы:
    26
    Данные - просто справочник Номенклатура + куча записей как свойста и спецификации в разные справочники, внешнюю обработку делать не хочется, потому что мало кто сможет в конторе сделать это сам (лечше не давать это им желать =) ), и будут задержки, не поставить же сервер на постоянное сканирование папки на наличия файла обмена.
  5. StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    тогда, как вариант, использовать что-то типа шины, куда будет выгружаться только те элементы справочника, в которых было изменение, а регламент их будет считывать и загружать в 1с. А сама база 1с серверная или файловая?
  6. TopicStarter Overlay
    Bobre
    Offline

    Bobre Опытный в 1С

    Регистрация:
    15 апр 2011
    Сообщения:
    144
    Симпатии:
    0
    Баллы:
    26
    сама 1с-ка серверная sql, есть софт который держит держит всю базу номенклатуры, только со своей структурой, пока решение не принято, будет ли этот софт постоянно или послужить только для загрузки первоночальных данных, но он умеет работать с другими базами и выгружать туда свои данные в нужном порядке. Еще интересен и такой вопрос - а не будет ли каких-либо проблем после изменения самой базы sql 1с-ки, не будет ли это нарушением лицензии, как это бывает в других ПО, если капаться в базах напрямую?
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Всю ветку не читал. Думаю, как бы будет.
    http://v8.1c.ru/predpriyatie/questions_licence.htm, 64-й вопрос.
  8. comol
    Offline

    comol Опытный в 1С

    Регистрация:
    8 сен 2011
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    1) Если хочется четсно и надёжно - лучший вариант будет промещуточная база (можно её громко назвать - хранилище данных, если у вас аналитическое средство).
    2) Если хочется быстро и реальный online - лучше всего SSIS _http://comol.livejournal.com/#post-comol-2159
  9. Andy13
    Offline

    Andy13 Опытный в 1С

    Регистрация:
    1 мар 2010
    Сообщения:
    244
    Симпатии:
    2
    Баллы:
    29
    Синхронизировать таблицы баз можно и средствами SQL, вообще без задержек. Но фирма 1С криво смотрит на прямое манипулирование данными базы 1С, о чем уже было упомянуто выше.
    Таким образом решением будет - регламентное задание, запускаемое с большой частотой + план обмена. План обмена фиксирует изменения того что надо для передачи и читает данные для внесения в справочник. В результате имеем синхронизацию, не нарушая ультимативные требования 1С.
  10. StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Я все-таки думаю, что через промежуточную будет самый отличный вариант - если написать в 1с-ке регламент на загрузку из такой базы раз в 15 с (если уж так часто меняют номенклатуру), то задержек по времени не особо видно будет (ну это если там не по 100 000 объектов одновременно пойдут на обмен) + можно написать правила кд, по которым загрузка будет быстрее. Ну это решать автору, но напрямую я бы не стала писать
  11. comol
    Offline

    comol Опытный в 1С

    Регистрация:
    8 сен 2011
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    С промежуточной базой тоже есть хитрости... чтобы всё правильно было нужно бы 2 таблички делать... как только загрузили - перенесли из одной в другую. Таким образом можно и проверять что загрузилось и данные не потерять, да и проверить что повторно не выгрузилось... т.е. обмен с подтверждением, но при таком походе уже нужно транзакции включать... тоже это в принципе не просто.. зато "красиво" :)
  12. TopicStarter Overlay
    Bobre
    Offline

    Bobre Опытный в 1С

    Регистрация:
    15 апр 2011
    Сообщения:
    144
    Симпатии:
    0
    Баллы:
    26
    Вообще по факту нам необходим обмен между SolidWorks и 1C, но у обоих нету по лицензии доступ к базам напряму, SolidWorks хотя бы предлогает за отдельную плату дать инструмент обмена данными, а вот в случает 1С я так понял без какого-либо буфер обмена работа невозможна
  13. comol
    Offline

    comol Опытный в 1С

    Регистрация:
    8 сен 2011
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    Так у вас тогда, как я понимаю данных будет 3 документа в день :). Наверное вам имеет смысл использовать COM соединение с 1C. Все современные состемы поддерживают работу с COM объектами
  14. StarLight
    Offline

    StarLight Опытный в 1С

    Регистрация:
    28 июл 2009
    Сообщения:
    212
    Симпатии:
    0
    Баллы:
    26
    Можно и одной обойтись - просто в таблицу куда будут писаться файлы-обмена добавить поле - ЗагруженоВБазуНазначения - если загружено, то менять индикатор на 2, например, не загружалось ни разу - 0, ну а если ошибки при загрузке - "-1". ну как-то так. Не так уж и сложно реализовать, но в итоге красиво
  15. comol
    Offline

    comol Опытный в 1С

    Регистрация:
    8 сен 2011
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    Так какая разница :). В этом случае всё равно может появиться 2-е желающих поменять одну и ту же строчку :) А если обмен on-line то очень даже часто. Следовательно это при любом раскладе использование транзакций... только в вашем случае будет ещё эскалация блокировок, а в моём её не будет... вернее будет конечно... но она не принципиальна для почти пустой таблице.

Поделиться этой страницей