Cинхронизация 1c C Foxpro2.6

Тема в разделе "1C и всё что с ней связано", создана пользователем xler69, 17 мар 2007.

Статус темы:
Закрыта.
  1. xler69

    xler69 Гость

    Ввиду тотального перехода на платформу 1С нарисовалась проблема синхронизации с уже существующей на данный момент системой построенной на FoxPro2.6. Синхронизация должна быть не риалтайм, а запускаться, скажем, с некоторым интервалом времени. Покопавшись на форумах и почитав доки (то что смог найти) пришел к выводу, что реализация кроется в использовании OLE или написании собственной обработки. Вот только одно НО - знаний в 1с 0 поэтому и непонятно как организовать сам механизм, т.е если в FoxPro это решается путем добавления к каждой из таблиц полей с метаинформацией, то с 1С - непонятно. Если кто-нибудь уже сталкивался с подобной проблемой плиз поделитесь ссылкой или советом.
     
  2. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Идея в том, что от изучения 1С тебе не уйти. Если, конечно не нанимать стороннего спеца. Ты должен понимать, что системы совсем разные (не смотри, что в 1С базы в dbf). В 1С не работают с таблицами, где данные хранятся непосредственно. Я бы на твоем месте не лез сразу в ОЛЕ. Достаточно будет научиться читать таблицы фокса, и писать в объекты 1С ее средствами. И не советую фоксом писать в таблицы 1С, их структура до конца не документирована, и среда может ее менять произвольным образом, при изменении конфигурации. Единственное, что можно сделать в фоксе, это сформировать 1 таблицу, из которой будет удобно читать данные. Т.к. со связями в 1С заколебешся.
     
  3. xler69

    xler69 Гость

    Вы меня немного не правильно поняли речь не идет о том чтобы из фокса писать в таблицы dbf 1c (кстати
    там клиент-сервеный вариант т.е sql server) я с самого начала предполагал, что работать придется с
    объектами 1с. Мне то не понятен сам механизм т.е, например, изменилась/добавилась/удалилась запись в foxPro следовательно она должна измениться и в 1с т.е это еще более менее понятно как сделать, а вот если изменилась она в 1с как мне это узнать? Синхронизация в обоих направлениях нужна! Я вобще предполагал, что это внешняя прога должна быть которая с неким интервалом будет проводить синхронизацию, или так,что никто не делает? Можно ли это реализовать полностью средствами 1С?
     
  4. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Можно. Само отслеживание делается тоже добавлением к каждому синхронизируемому объекту "полей с метаинформацией". Придется дописывать для каждого объекта контроль изменения. На случаи изменения кода(номера) 1С хранит еще для каждого объекта внутренний идентификатор. Недоступный для записи, и однозначно идентифицирующий объект. Но буду проблемы. Придется еще думать систему разрешения коллизий. (в 1С изменили, а в фоксе удалили или наоборот. если добавили синхронно в обе системы) Я в общем случае стараюсь избегать обмена данными в обе стороны.
    Вопрос интересный, держи нас в курсе своих продвижений. Чем смогЁм-помогЁм
     
  5. jj_mail

    jj_mail Гость

    а почему бы не получать из 1С-ки ID объекта, записывая его во внешнюю dbf. А в фоксе отслеживать изменения в этой самой dbf-ке. Мы такую штуку организовали для синхронизации справочников в 2-х разных базах 1с. Пока работает....
     
  6. xler69

    xler69 Гость

    т.е насколько я понимаю у вас синхронизация осуществляется через набор временных dbf-файлов, в принципе я рассматривал подобный вариант, но тогда пришлось бы это вешать на программистов фокса, а их много как и программ и способны они максимум на то чтобы пару полей в таблицы добавить. Ну конечно это возможно, но как в таком случае коллизии отслеживать? Т.е. если на стороне фокса это реализовать: ну синхронизируются они с временной dbf, а изменения и там и там, а нужно возможность выбора дать в таком случае, т.е мы предполагали, что эти функции оператор выполнять будет, а из фокса как? - к 1с доступ получить никак т.е все равно придется синхронизацию FoxPro->1C делать точно не средствами фокса... Или я чего-то не понимаю?
     
  7. jj_mail

    jj_mail Гость

    да, верно. Я так понял, что должны сохраняться последние изменения (не зависимо от платформы). В фоксе все равно нужно будет прописать ID 1с-кого объекта и добавление записей в dbf. В 1с запись в файл прописать через "Попытку" для избежания коллизий, а в фоксе через обработчик ошибок. в 1с можно используя ОбработкуОжидания() проверять содержимое внешнего файла. Вот..
     
  8. xler69

    xler69 Гость

    Нет это исключено решение о приоритетности должен принимать человек (т.е два варианта либо
    принять изменения в 1с либо в фоксе все зависит от того какая из сторон приоритетная).

    Это зачем? могу предположить, что если повешать эту самую ОбработкуОжидания() на файлы
    фокса то можно будет в реальном режиме времени отслеживать изменения в базе. Правильно?!
     
  9. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    Почемуже сразу так мрачно? Как ты писал в первом посте, есть механизм OLE. Но это не избавит тебя от плотного знакомства с 1С...
     
  10. xler69

    xler69 Гость

    Интересно это каким образом я получу доступ к 1С через OLE из FoxPro2.6, даже если это и можно сделать, то заниматься этим придется фокспрошникам, а они этого делать не будут. Вобще я сторонник централизованного подхода т.е синхронизация по моему должна проводится отдельной программой или средой. Если, например из фокса доступ к 1С получить нельзя, то из 1С к базе фокса можно, так почему бы это дело не реализовать, например, в виде внешней обработки 1С? или если уж использовать OLE тогда было бы логично программу на VB или Delphi написать и с пом нее синхронизировать.
     
  11. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    ИМХО, переливаем из пустого в порожнее. Варианты тебе уже обрисовали. Для обсуждения особенностей реализации маловато данных.
     
Статус темы:
Закрыта.

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