Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/115: Рейтинг темы: голосов - 115, средняя оценка - 4.88
xtyr69
0 / 0 / 0
Регистрация: 12.03.2007
Сообщений: 7
1

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

16.03.2007, 09:20. Просмотров 20743. Ответов 10
Метки нет (Все метки)

Ввиду тотального перехода на платформу 1С нарисовалась проблема синхронизации с уже существующей на данный момент системой построенной на FoxPro2.6. Синхронизация должна быть не риалтайм, а запускаться, скажем, с некоторым интервалом времени. Покопавшись на форумах и почитав доки (то что смог найти) пришел к выводу, что реализация кроется в использовании OLE или написании собственной обработки. Вот только одно НО - знаний в 1с 0 поэтому и непонятно как организовать сам механизм, т.е если в FoxPro это решается путем добавления к каждой из таблиц полей с метаинформацией, то с 1С - непонятно. Если кто-нибудь уже сталкивался с подобной проблемой плиз поделитесь ссылкой или советом.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2007, 09:20
Ответы с готовыми решениями:

Переходить с DBF(FoxPro2.6) на MDB или нет?
Мне досталась от предшественника база DBF на FoxPro2.6. Хотел перейти на MDB, но после импорта 1...

Подскажите плиз как связать 3 таблицы базы foxpro2.6
Задача: Нужно из первой базы по одному полю выдернуть личный номер. По этому номеру найти код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Zob
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
17.03.2007, 09:20 2
Идея в том, что от изучения 1С тебе не уйти. Если, конечно не нанимать стороннего спеца. Ты должен понимать, что системы совсем разные (не смотри, что в 1С базы в dbf). В 1С не работают с таблицами, где данные хранятся непосредственно. Я бы на твоем месте не лез сразу в ОЛЕ. Достаточно будет научиться читать таблицы фокса, и писать в объекты 1С ее средствами. И не советую фоксом писать в таблицы 1С, их структура до конца не документирована, и среда может ее менять произвольным образом, при изменении конфигурации. Единственное, что можно сделать в фоксе, это сформировать 1 таблицу, из которой будет удобно читать данные. Т.к. со связями в 1С заколебешся.
0
xtyr69
0 / 0 / 0
Регистрация: 12.03.2007
Сообщений: 7
17.03.2007, 17:20 3
Вы меня немного не правильно поняли речь не идет о том чтобы из фокса писать в таблицы dbf 1c (кстати
там клиент-сервеный вариант т.е sql server) я с самого начала предполагал, что работать придется с
объектами 1с. Мне то не понятен сам механизм т.е, например, изменилась/добавилась/удалилась запись в foxPro следовательно она должна измениться и в 1с т.е это еще более менее понятно как сделать, а вот если изменилась она в 1с как мне это узнать? Синхронизация в обоих направлениях нужна! Я вобще предполагал, что это внешняя прога должна быть которая с неким интервалом будет проводить синхронизацию, или так,что никто не делает? Можно ли это реализовать полностью средствами 1С?
0
Zob
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
18.03.2007, 18:17 4
Можно. Само отслеживание делается тоже добавлением к каждому синхронизируемому объекту "полей с метаинформацией". Придется дописывать для каждого объекта контроль изменения. На случаи изменения кода(номера) 1С хранит еще для каждого объекта внутренний идентификатор. Недоступный для записи, и однозначно идентифицирующий объект. Но буду проблемы. Придется еще думать систему разрешения коллизий. (в 1С изменили, а в фоксе удалили или наоборот. если добавили синхронно в обе системы) Я в общем случае стараюсь избегать обмена данными в обе стороны.
Вопрос интересный, держи нас в курсе своих продвижений. Чем смогЁм-помогЁм
0
jj_moyt
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 88
19.03.2007, 08:31 5
а почему бы не получать из 1С-ки ID объекта, записывая его во внешнюю dbf. А в фоксе отслеживать изменения в этой самой dbf-ке. Мы такую штуку организовали для синхронизации справочников в 2-х разных базах 1с. Пока работает....
0
xtyr69
0 / 0 / 0
Регистрация: 12.03.2007
Сообщений: 7
19.03.2007, 10:16 6
Цитата Сообщение от jj_mail
а почему бы не получать из 1С-ки ID объекта, записывая его во внешнюю dbf. А в фоксе отслеживать изменения в этой самой dbf-ке. Мы такую штуку организовали для синхронизации справочников в 2-х разных базах 1с. Пока работает....
т.е насколько я понимаю у вас синхронизация осуществляется через набор временных dbf-файлов, в принципе я рассматривал подобный вариант, но тогда пришлось бы это вешать на программистов фокса, а их много как и программ и способны они максимум на то чтобы пару полей в таблицы добавить. Ну конечно это возможно, но как в таком случае коллизии отслеживать? Т.е. если на стороне фокса это реализовать: ну синхронизируются они с временной dbf, а изменения и там и там, а нужно возможность выбора дать в таком случае, т.е мы предполагали, что эти функции оператор выполнять будет, а из фокса как? - к 1с доступ получить никак т.е все равно придется синхронизацию FoxPro->1C делать точно не средствами фокса... Или я чего-то не понимаю?
0
jj_moyt
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 88
19.03.2007, 11:00 7
да, верно. Я так понял, что должны сохраняться последние изменения (не зависимо от платформы). В фоксе все равно нужно будет прописать ID 1с-кого объекта и добавление записей в dbf. В 1с запись в файл прописать через "Попытку" для избежания коллизий, а в фоксе через обработчик ошибок. в 1с можно используя ОбработкуОжидания() проверять содержимое внешнего файла. Вот..
0
xtyr69
0 / 0 / 0
Регистрация: 12.03.2007
Сообщений: 7
19.03.2007, 11:55 8
Цитата Сообщение от jj_mail
Я так понял, что должны сохраняться последние изменения (не зависимо от платформы).
Нет это исключено решение о приоритетности должен принимать человек (т.е два варианта либо
принять изменения в 1с либо в фоксе все зависит от того какая из сторон приоритетная).



Цитата Сообщение от jj_mail
в 1с можно используя ОбработкуОжидания() проверять содержимое внешнего файла.
Это зачем? могу предположить, что если повешать эту самую ОбработкуОжидания() на файлы
фокса то можно будет в реальном режиме времени отслеживать изменения в базе. Правильно?!
0
Zob
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
19.03.2007, 12:14 9
Цитата Сообщение от xler69
к 1с доступ получить никак т.е все равно придется синхронизацию FoxPro->1C делать точно не средствами фокса...
Почемуже сразу так мрачно? Как ты писал в первом посте, есть механизм OLE. Но это не избавит тебя от плотного знакомства с 1С...
0
xtyr69
0 / 0 / 0
Регистрация: 12.03.2007
Сообщений: 7
19.03.2007, 13:01 10
Цитата Сообщение от Zab
Почемуже сразу так мрачно? Как ты писал в первом посте, есть механизм OLE. Но это не избавит тебя от плотного знакомства с 1С...
Интересно это каким образом я получу доступ к 1С через OLE из FoxPro2.6, даже если это и можно сделать, то заниматься этим придется фокспрошникам, а они этого делать не будут. Вобще я сторонник централизованного подхода т.е синхронизация по моему должна проводится отдельной программой или средой. Если, например из фокса доступ к 1С получить нельзя, то из 1С к базе фокса можно, так почему бы это дело не реализовать, например, в виде внешней обработки 1С? или если уж использовать OLE тогда было бы логично программу на VB или Delphi написать и с пом нее синхронизировать.
0
Zob
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
20.03.2007, 09:54 11
ИМХО, переливаем из пустого в порожнее. Варианты тебе уже обрисовали. Для обсуждения особенностей реализации маловато данных.
0
20.03.2007, 09:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru