• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы xler69
  • Дата начала
Статус
Закрыто для дальнейших ответов.
X

xler69

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

Zab

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

xler69

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

Zab

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

jj_mail

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

xler69

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

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

jj_mail

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

xler69

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

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

Zab

к 1с доступ получить никак т.е все равно придется синхронизацию FoxPro->1C делать точно не средствами фокса...
Почемуже сразу так мрачно? Как ты писал в первом посте, есть механизм OLE. Но это не избавит тебя от плотного знакомства с 1С...
 
X

xler69

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

Zab

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!